b415dfdbcccabadfce60eebfa2e0fd7bcef37fcd
[sfrench/cifs-2.6.git] / tools / perf / arch / arm64 / util / unwind-libunwind.c
1 #include <errno.h>
2
3 #ifndef REMOTE_UNWIND_LIBUNWIND
4 #include <libunwind.h>
5 #include "perf_regs.h"
6 #include "../../util/unwind.h"
7 #include "../../util/debug.h"
8 #endif
9
10 int LIBUNWIND__ARCH_REG_ID(int regnum)
11 {
12         switch (regnum) {
13         case UNW_AARCH64_X0:
14                 return PERF_REG_ARM64_X0;
15         case UNW_AARCH64_X1:
16                 return PERF_REG_ARM64_X1;
17         case UNW_AARCH64_X2:
18                 return PERF_REG_ARM64_X2;
19         case UNW_AARCH64_X3:
20                 return PERF_REG_ARM64_X3;
21         case UNW_AARCH64_X4:
22                 return PERF_REG_ARM64_X4;
23         case UNW_AARCH64_X5:
24                 return PERF_REG_ARM64_X5;
25         case UNW_AARCH64_X6:
26                 return PERF_REG_ARM64_X6;
27         case UNW_AARCH64_X7:
28                 return PERF_REG_ARM64_X7;
29         case UNW_AARCH64_X8:
30                 return PERF_REG_ARM64_X8;
31         case UNW_AARCH64_X9:
32                 return PERF_REG_ARM64_X9;
33         case UNW_AARCH64_X10:
34                 return PERF_REG_ARM64_X10;
35         case UNW_AARCH64_X11:
36                 return PERF_REG_ARM64_X11;
37         case UNW_AARCH64_X12:
38                 return PERF_REG_ARM64_X12;
39         case UNW_AARCH64_X13:
40                 return PERF_REG_ARM64_X13;
41         case UNW_AARCH64_X14:
42                 return PERF_REG_ARM64_X14;
43         case UNW_AARCH64_X15:
44                 return PERF_REG_ARM64_X15;
45         case UNW_AARCH64_X16:
46                 return PERF_REG_ARM64_X16;
47         case UNW_AARCH64_X17:
48                 return PERF_REG_ARM64_X17;
49         case UNW_AARCH64_X18:
50                 return PERF_REG_ARM64_X18;
51         case UNW_AARCH64_X19:
52                 return PERF_REG_ARM64_X19;
53         case UNW_AARCH64_X20:
54                 return PERF_REG_ARM64_X20;
55         case UNW_AARCH64_X21:
56                 return PERF_REG_ARM64_X21;
57         case UNW_AARCH64_X22:
58                 return PERF_REG_ARM64_X22;
59         case UNW_AARCH64_X23:
60                 return PERF_REG_ARM64_X23;
61         case UNW_AARCH64_X24:
62                 return PERF_REG_ARM64_X24;
63         case UNW_AARCH64_X25:
64                 return PERF_REG_ARM64_X25;
65         case UNW_AARCH64_X26:
66                 return PERF_REG_ARM64_X26;
67         case UNW_AARCH64_X27:
68                 return PERF_REG_ARM64_X27;
69         case UNW_AARCH64_X28:
70                 return PERF_REG_ARM64_X28;
71         case UNW_AARCH64_X29:
72                 return PERF_REG_ARM64_X29;
73         case UNW_AARCH64_X30:
74                 return PERF_REG_ARM64_LR;
75         case UNW_AARCH64_SP:
76                 return PERF_REG_ARM64_SP;
77         case UNW_AARCH64_PC:
78                 return PERF_REG_ARM64_PC;
79         default:
80                 pr_err("unwind: invalid reg id %d\n", regnum);
81                 return -EINVAL;
82         }
83
84         return -EINVAL;
85 }