Path: blob/master/tools/testing/selftests/arm64/bti/assembler.h
26299 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)151617.macro startfn name:req18.globl \name19\name:20.macro endfn21.size \name, . - \name22.type \name, @function23.purgem endfn24.endm25.endm2627.macro emit_aarch64_feature_1_and28.pushsection .note.gnu.property, "a"29.align 330.long 2f - 1f31.long 6f - 3f32.long NT_GNU_PROPERTY_TYPE_0331: .string "GNU"342:35.align 3363: .long GNU_PROPERTY_AARCH64_FEATURE_1_AND37.long 5f - 4f384:39#if BTI40.long GNU_PROPERTY_AARCH64_FEATURE_1_PAC | \41GNU_PROPERTY_AARCH64_FEATURE_1_BTI42#else43.long 044#endif455:46.align 3476:48.popsection49.endm5051.macro paciasp52hint 0x1953.endm5455.macro autiasp56hint 0x1d57.endm5859.macro __bti_60hint 0x2061.endm6263.macro __bti_c64hint 0x2265.endm6667.macro __bti_j68hint 0x2469.endm7071.macro __bti_jc72hint 0x2673.endm7475.macro bti what=76__bti_\what77.endm7879#endif /* ! ASSEMBLER_H */808182