1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#ifndef __ASM_ARM_ARM64_MACROS_H
#define __ASM_ARM_ARM64_MACROS_H
/*
* @dst: Result of get_cpu_info()
*/
.macro adr_cpu_info, dst
add \dst, sp, #STACK_SIZE
and \dst, \dst, #~(STACK_SIZE - 1)
sub \dst, \dst, #CPUINFO_sizeof
.endm
/*
* @dst: Result of READ_ONCE(per_cpu(sym, smp_processor_id()))
* @sym: The name of the per-cpu variable
* @tmp: scratch register
*/
.macro ldr_this_cpu, dst, sym, tmp
ldr \dst, =per_cpu__\sym
mrs \tmp, tpidr_el2
ldr \dst, [\dst, \tmp]
.endm
.macro ret
/* ret opcode */
.inst 0xd65f03c0
sb
.endm
/* clearbhb instruction clearing the branch history */
.macro clearbhb
hint #22
.endm
/*
* Register aliases.
*/
lr .req x30 /* link register */
#endif /* __ASM_ARM_ARM64_MACROS_H */
|