| 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 | SYM_FUNC_START(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 | SYM_FUNC_END(perf_regs_load) |
| 48 | |