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