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