Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux...
[linux/fpc-iii.git] / tools / perf / arch / arm / util / unwind-libunwind.c
blob62c397ed3d97868bb979d32815f066dd6e1cb2b5
2 #include <errno.h>
3 #include <libunwind.h>
4 #include "perf_regs.h"
5 #include "../../util/unwind.h"
6 #include "../../util/debug.h"
8 int libunwind__arch_reg_id(int regnum)
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;
48 return -EINVAL;