]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blob - tools/perf/arch/arm/util/unwind-libunwind.c
Merge tag 'v3.18-rc1' into v4l_for_linus
[mirror_ubuntu-hirsute-kernel.git] / tools / perf / arch / arm / util / unwind-libunwind.c
1
2 #include <errno.h>
3 #include <libunwind.h>
4 #include "perf_regs.h"
5 #include "../../util/unwind.h"
6 #include "../../util/debug.h"
7
8 int libunwind__arch_reg_id(int regnum)
9 {
10 switch (regnum) {
11 case UNW_ARM_R0:
12 return PERF_REG_ARM_R0;
13 case UNW_ARM_R1:
14 return PERF_REG_ARM_R1;
15 case UNW_ARM_R2:
16 return PERF_REG_ARM_R2;
17 case UNW_ARM_R3:
18 return PERF_REG_ARM_R3;
19 case UNW_ARM_R4:
20 return PERF_REG_ARM_R4;
21 case UNW_ARM_R5:
22 return PERF_REG_ARM_R5;
23 case UNW_ARM_R6:
24 return PERF_REG_ARM_R6;
25 case UNW_ARM_R7:
26 return PERF_REG_ARM_R7;
27 case UNW_ARM_R8:
28 return PERF_REG_ARM_R8;
29 case UNW_ARM_R9:
30 return PERF_REG_ARM_R9;
31 case UNW_ARM_R10:
32 return PERF_REG_ARM_R10;
33 case UNW_ARM_R11:
34 return PERF_REG_ARM_FP;
35 case UNW_ARM_R12:
36 return PERF_REG_ARM_IP;
37 case UNW_ARM_R13:
38 return PERF_REG_ARM_SP;
39 case UNW_ARM_R14:
40 return PERF_REG_ARM_LR;
41 case UNW_ARM_R15:
42 return PERF_REG_ARM_PC;
43 default:
44 pr_err("unwind: invalid reg id %d\n", regnum);
45 return -EINVAL;
46 }
47
48 return -EINVAL;
49 }