Commit | Line | Data |
---|---|---|
b2441318 | 1 | // SPDX-License-Identifier: GPL-2.0 |
7495f374 WD |
2 | |
3 | #include <errno.h> | |
4 | #include <libunwind.h> | |
5 | #include "perf_regs.h" | |
6 | #include "../../util/unwind.h" | |
29a3ce31 | 7 | #include "../../util/debug.h" |
7495f374 | 8 | |
ea3da69d | 9 | int libunwind__arch_reg_id(int regnum) |
7495f374 WD |
10 | { |
11 | switch (regnum) { | |
12 | case UNW_ARM_R0: | |
13 | return PERF_REG_ARM_R0; | |
14 | case UNW_ARM_R1: | |
15 | return PERF_REG_ARM_R1; | |
16 | case UNW_ARM_R2: | |
17 | return PERF_REG_ARM_R2; | |
18 | case UNW_ARM_R3: | |
19 | return PERF_REG_ARM_R3; | |
20 | case UNW_ARM_R4: | |
21 | return PERF_REG_ARM_R4; | |
22 | case UNW_ARM_R5: | |
23 | return PERF_REG_ARM_R5; | |
24 | case UNW_ARM_R6: | |
25 | return PERF_REG_ARM_R6; | |
26 | case UNW_ARM_R7: | |
27 | return PERF_REG_ARM_R7; | |
28 | case UNW_ARM_R8: | |
29 | return PERF_REG_ARM_R8; | |
30 | case UNW_ARM_R9: | |
31 | return PERF_REG_ARM_R9; | |
32 | case UNW_ARM_R10: | |
33 | return PERF_REG_ARM_R10; | |
34 | case UNW_ARM_R11: | |
35 | return PERF_REG_ARM_FP; | |
36 | case UNW_ARM_R12: | |
37 | return PERF_REG_ARM_IP; | |
38 | case UNW_ARM_R13: | |
39 | return PERF_REG_ARM_SP; | |
40 | case UNW_ARM_R14: | |
41 | return PERF_REG_ARM_LR; | |
42 | case UNW_ARM_R15: | |
43 | return PERF_REG_ARM_PC; | |
44 | default: | |
45 | pr_err("unwind: invalid reg id %d\n", regnum); | |
46 | return -EINVAL; | |
47 | } | |
48 | ||
49 | return -EINVAL; | |
50 | } |