File Index
Files and directories
Sign in
FILE

assembler.h

File preview with syntax highlighting.

linux-6.19.14/tools/testing/selftests/arm64/bti/assembler.h C
 1/* SPDX-License-Identifier: GPL-2.0 */
 2/*
 3 * Copyright (C) 2019  Arm Limited
 4 * Original author: Dave Martin <Dave.Martin@arm.com>
 5 */
 6
 7#ifndef ASSEMBLER_H
 8#define ASSEMBLER_H
 9
10#define NT_GNU_PROPERTY_TYPE_0	5
11#define GNU_PROPERTY_AARCH64_FEATURE_1_AND	0xc0000000
12
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.macro startfn name:req
18	.globl \name
19\name:
20	.macro endfn
21		.size \name, . - \name
22		.type \name, @function
23		.purgem endfn
24	.endm
25.endm
26
27.macro emit_aarch64_feature_1_and
28	.pushsection .note.gnu.property, "a"
29	.align	3
30	.long	2f - 1f
31	.long	6f - 3f
32	.long	NT_GNU_PROPERTY_TYPE_0
331:	.string	"GNU"
342:
35	.align	3
363:	.long	GNU_PROPERTY_AARCH64_FEATURE_1_AND
37	.long	5f - 4f
384:
39#if BTI
40	.long	GNU_PROPERTY_AARCH64_FEATURE_1_PAC | \
41		GNU_PROPERTY_AARCH64_FEATURE_1_BTI
42#else
43	.long	0
44#endif
455:
46	.align	3
476:
48	.popsection
49.endm
50
51.macro paciasp
52	hint	0x19
53.endm
54
55.macro autiasp
56	hint	0x1d
57.endm
58
59.macro __bti_
60	hint	0x20
61.endm
62
63.macro __bti_c
64	hint	0x22
65.endm
66
67.macro __bti_j
68	hint	0x24
69.endm
70
71.macro __bti_jc
72	hint	0x26
73.endm
74
75.macro bti what=
76	__bti_\what
77.endm
78
79#endif /* ! ASSEMBLER_H */
~/ Read-only file preview.