brintos

brintos / linux-shallow public Read only

0
0
Text · 1.2 KiB · 04e7b72 Raw
81 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/*3 * Copyright (C) 2019  Arm Limited4 * Original author: Dave Martin <Dave.Martin@arm.com>5 */6 7#ifndef ASSEMBLER_H8#define ASSEMBLER_H9 10#define NT_GNU_PROPERTY_TYPE_0	511#define GNU_PROPERTY_AARCH64_FEATURE_1_AND	0xc000000012 13/* Bits for GNU_PROPERTY_AARCH64_FEATURE_1_BTI */14#define GNU_PROPERTY_AARCH64_FEATURE_1_BTI	(1U << 0)15#define GNU_PROPERTY_AARCH64_FEATURE_1_PAC	(1U << 1)16 17 18.macro startfn name:req19	.globl \name20\name:21	.macro endfn22		.size \name, . - \name23		.type \name, @function24		.purgem endfn25	.endm26.endm27 28.macro emit_aarch64_feature_1_and29	.pushsection .note.gnu.property, "a"30	.align	331	.long	2f - 1f32	.long	6f - 3f33	.long	NT_GNU_PROPERTY_TYPE_0341:	.string	"GNU"352:36	.align	3373:	.long	GNU_PROPERTY_AARCH64_FEATURE_1_AND38	.long	5f - 4f394:40#if BTI41	.long	GNU_PROPERTY_AARCH64_FEATURE_1_PAC | \42		GNU_PROPERTY_AARCH64_FEATURE_1_BTI43#else44	.long	045#endif465:47	.align	3486:49	.popsection50.endm51 52.macro paciasp53	hint	0x1954.endm55 56.macro autiasp57	hint	0x1d58.endm59 60.macro __bti_61	hint	0x2062.endm63 64.macro __bti_c65	hint	0x2266.endm67 68.macro __bti_j69	hint	0x2470.endm71 72.macro __bti_jc73	hint	0x2674.endm75 76.macro bti what=77	__bti_\what78.endm79 80#endif /* ! ASSEMBLER_H */81