1 // SPDX-License-Identifier: GPL-2.0-only
2 // Copyright (C) 2015-2019 ARM Limited.
3 // Original author: Dave Martin <Dave.Martin@arm.com>
8 .macro __for from
:req
, to
:req
12 __for
\from
, %(\from
) + ((\to
) - (\from
)) / 2
13 __for
%(\from
) + ((\to
) - (\from
)) / 2 + 1, \to
17 .macro _for var
:req
, from
:req
, to
:req
, insn
:vararg
18 .macro _for__body
\var
:req
33 .type
\name
, @function
39 .macro define_accessor name
, num
, insn
40 .macro
\name\
()_entry n
46 adr x2
, .L__accessor_tbl\@
47 add x2
, x2
, x0
, lsl
#3
51 _for x
, 0, (\num
) - 1, \name\
()_entry \x
54 .purgem
\name\
()_entry
57 // Utility macro to print a literal string
60 .pushsection
.rodata
.str1
.1
, "aMS", @progbits
, 1
61 .L__puts_literal\@
: .string
"\string"
64 ldr x0
, =.L__puts_literal\@
68 #define PR_SET_SHADOW_STACK_STATUS 75
69 # define PR_SHADOW_STACK_ENABLE (1UL << 0)
73 mov x0
, PR_SET_SHADOW_STACK_STATUS
74 mov x1
, PR_SHADOW_STACK_ENABLE
83 #endif /* ! ASSEMBLER_H */