1436aa749SJiri Olsa 
2436aa749SJiri Olsa #include <errno.h>
3436aa749SJiri Olsa #include <libunwind.h>
4436aa749SJiri Olsa #include "perf_regs.h"
5436aa749SJiri Olsa #include "../../util/unwind.h"
6436aa749SJiri Olsa 
7436aa749SJiri Olsa int unwind__arch_reg_id(int regnum)
8436aa749SJiri Olsa {
9436aa749SJiri Olsa 	switch (regnum) {
10436aa749SJiri Olsa 	case UNW_ARM_R0:
11436aa749SJiri Olsa 		return PERF_REG_ARM_R0;
12436aa749SJiri Olsa 	case UNW_ARM_R1:
13436aa749SJiri Olsa 		return PERF_REG_ARM_R1;
14436aa749SJiri Olsa 	case UNW_ARM_R2:
15436aa749SJiri Olsa 		return PERF_REG_ARM_R2;
16436aa749SJiri Olsa 	case UNW_ARM_R3:
17436aa749SJiri Olsa 		return PERF_REG_ARM_R3;
18436aa749SJiri Olsa 	case UNW_ARM_R4:
19436aa749SJiri Olsa 		return PERF_REG_ARM_R4;
20436aa749SJiri Olsa 	case UNW_ARM_R5:
21436aa749SJiri Olsa 		return PERF_REG_ARM_R5;
22436aa749SJiri Olsa 	case UNW_ARM_R6:
23436aa749SJiri Olsa 		return PERF_REG_ARM_R6;
24436aa749SJiri Olsa 	case UNW_ARM_R7:
25436aa749SJiri Olsa 		return PERF_REG_ARM_R7;
26436aa749SJiri Olsa 	case UNW_ARM_R8:
27436aa749SJiri Olsa 		return PERF_REG_ARM_R8;
28436aa749SJiri Olsa 	case UNW_ARM_R9:
29436aa749SJiri Olsa 		return PERF_REG_ARM_R9;
30436aa749SJiri Olsa 	case UNW_ARM_R10:
31436aa749SJiri Olsa 		return PERF_REG_ARM_R10;
32436aa749SJiri Olsa 	case UNW_ARM_R11:
33436aa749SJiri Olsa 		return PERF_REG_ARM_FP;
34436aa749SJiri Olsa 	case UNW_ARM_R12:
35436aa749SJiri Olsa 		return PERF_REG_ARM_IP;
36436aa749SJiri Olsa 	case UNW_ARM_R13:
37436aa749SJiri Olsa 		return PERF_REG_ARM_SP;
38436aa749SJiri Olsa 	case UNW_ARM_R14:
39436aa749SJiri Olsa 		return PERF_REG_ARM_LR;
40436aa749SJiri Olsa 	case UNW_ARM_R15:
41436aa749SJiri Olsa 		return PERF_REG_ARM_PC;
42436aa749SJiri Olsa 	default:
43436aa749SJiri Olsa 		pr_err("unwind: invalid reg id %d\n", regnum);
44436aa749SJiri Olsa 		return -EINVAL;
45436aa749SJiri Olsa 	}
46436aa749SJiri Olsa 
47436aa749SJiri Olsa 	return -EINVAL;
48436aa749SJiri Olsa }
49