Merge tag 'ib-mfd-omap-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/lee...
[cascardo/linux.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
7 int libunwind__arch_reg_id(int regnum)
8 {
9         switch (regnum) {
10         case UNW_ARM_R0:
11                 return PERF_REG_ARM_R0;
12         case UNW_ARM_R1:
13                 return PERF_REG_ARM_R1;
14         case UNW_ARM_R2:
15                 return PERF_REG_ARM_R2;
16         case UNW_ARM_R3:
17                 return PERF_REG_ARM_R3;
18         case UNW_ARM_R4:
19                 return PERF_REG_ARM_R4;
20         case UNW_ARM_R5:
21                 return PERF_REG_ARM_R5;
22         case UNW_ARM_R6:
23                 return PERF_REG_ARM_R6;
24         case UNW_ARM_R7:
25                 return PERF_REG_ARM_R7;
26         case UNW_ARM_R8:
27                 return PERF_REG_ARM_R8;
28         case UNW_ARM_R9:
29                 return PERF_REG_ARM_R9;
30         case UNW_ARM_R10:
31                 return PERF_REG_ARM_R10;
32         case UNW_ARM_R11:
33                 return PERF_REG_ARM_FP;
34         case UNW_ARM_R12:
35                 return PERF_REG_ARM_IP;
36         case UNW_ARM_R13:
37                 return PERF_REG_ARM_SP;
38         case UNW_ARM_R14:
39                 return PERF_REG_ARM_LR;
40         case UNW_ARM_R15:
41                 return PERF_REG_ARM_PC;
42         default:
43                 pr_err("unwind: invalid reg id %d\n", regnum);
44                 return -EINVAL;
45         }
46
47         return -EINVAL;
48 }