Merge tag 'block-5.11-2021-01-10' of git://git.kernel.dk/linux-block
[linux/fpc-iii.git] / tools / perf / arch / arm / util / unwind-libunwind.c
blob3a550225dfafd37d579ba0a464e9ec067485660d
1 // SPDX-License-Identifier: GPL-2.0
3 #include <errno.h>
4 #include <libunwind.h>
5 #include "perf_regs.h"
6 #include "../../util/unwind.h"
7 #include "../../util/debug.h"
9 int libunwind__arch_reg_id(int regnum)
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;
49 return -EINVAL;