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