]> git.ipfire.org Git - thirdparty/kernel/linux.git/blob - tools/perf/arch/arm/util/unwind-libunwind.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
[thirdparty/kernel/linux.git] / tools / perf / arch / arm / util / unwind-libunwind.c
1 // SPDX-License-Identifier: GPL-2.0
2
3 #include <errno.h>
4 #include <libunwind.h>
5 #include "perf_regs.h"
6 #include "../../util/unwind.h"
7 #include "../../util/debug.h"
8
9 int libunwind__arch_reg_id(int regnum)
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 }