/* SPDX-License-Identifier: BSD-2-Clause */ /* * Copyright (c) 2021, Linaro Limited */ #include /* * This macro emits a program property note section identifying * architecture features which require special handling, mainly for * use in assembly files in the libraries linked with TA's. */ .macro emit_aarch64_feature_1_and, feat .pushsection .note.gnu.property, "a" .align 3 .long 2f - 1f /* n_namesz */ .long 6f - 3f /* n_desc_sz */ .long NT_GNU_PROPERTY_TYPE_0 /* n_type */ 1: .string "GNU" /* name */ 2: .align 3 3: .long GNU_PROPERTY_AARCH64_FEATURE_1_AND /* pr_type */ .long 5f - 4f /* pr_datasz */ 4: /* * This is described with an array of char in the Linux API * spec but the text and all other usage (including binutils, * clang and GCC) treat this as a 32 bit value so no swizzling * is required for big endian. */ .long \feat /* property */ 5: .align 3 6: .popsection .endm