GNU Linux-libre 4.14.328-gnu1
[releases.git] / tools / perf / arch / arm64 / tests / regs_load.S
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #include <linux/linkage.h>
3
4 .text
5 .type perf_regs_load,%function
6 #define STR_REG(r)      str x##r, [x0, 8 * r]
7 #define LDR_REG(r)      ldr x##r, [x0, 8 * r]
8 #define SP      (8 * 31)
9 #define PC      (8 * 32)
10 ENTRY(perf_regs_load)
11         STR_REG(0)
12         STR_REG(1)
13         STR_REG(2)
14         STR_REG(3)
15         STR_REG(4)
16         STR_REG(5)
17         STR_REG(6)
18         STR_REG(7)
19         STR_REG(8)
20         STR_REG(9)
21         STR_REG(10)
22         STR_REG(11)
23         STR_REG(12)
24         STR_REG(13)
25         STR_REG(14)
26         STR_REG(15)
27         STR_REG(16)
28         STR_REG(17)
29         STR_REG(18)
30         STR_REG(19)
31         STR_REG(20)
32         STR_REG(21)
33         STR_REG(22)
34         STR_REG(23)
35         STR_REG(24)
36         STR_REG(25)
37         STR_REG(26)
38         STR_REG(27)
39         STR_REG(28)
40         STR_REG(29)
41         STR_REG(30)
42         mov x1, sp
43         str x1, [x0, #SP]
44         str x30, [x0, #PC]
45         LDR_REG(1)
46         ret
47 ENDPROC(perf_regs_load)