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