Path: blob/master/tools/testing/selftests/arm64/bti/assembler.h
29270 views
/* SPDX-License-Identifier: GPL-2.0 */1/*2* Copyright (C) 2019 Arm Limited3* Original author: Dave Martin <[email protected]>4*/56#ifndef ASSEMBLER_H7#define ASSEMBLER_H89#define NT_GNU_PROPERTY_TYPE_0 510#define GNU_PROPERTY_AARCH64_FEATURE_1_AND 0xc00000001112/* Bits for GNU_PROPERTY_AARCH64_FEATURE_1_BTI */13#define GNU_PROPERTY_AARCH64_FEATURE_1_BTI (1U << 0)14#define GNU_PROPERTY_AARCH64_FEATURE_1_PAC (1U << 1)1516.macro startfn name:req17.globl \name18\name:19.macro endfn20.size \name, . - \name21.type \name, @function22.purgem endfn23.endm24.endm2526.macro emit_aarch64_feature_1_and27.pushsection .note.gnu.property, "a"28.align 329.long 2f - 1f30.long 6f - 3f31.long NT_GNU_PROPERTY_TYPE_0321: .string "GNU"332:34.align 3353: .long GNU_PROPERTY_AARCH64_FEATURE_1_AND36.long 5f - 4f374:38#if BTI39.long GNU_PROPERTY_AARCH64_FEATURE_1_PAC | \40GNU_PROPERTY_AARCH64_FEATURE_1_BTI41#else42.long 043#endif445:45.align 3466:47.popsection48.endm4950.macro paciasp51hint 0x1952.endm5354.macro autiasp55hint 0x1d56.endm5758.macro __bti_59hint 0x2060.endm6162.macro __bti_c63hint 0x2264.endm6566.macro __bti_j67hint 0x2468.endm6970.macro __bti_jc71hint 0x2672.endm7374.macro bti what=75__bti_\what76.endm7778#endif /* ! ASSEMBLER_H */798081