0001
0002
0003 #include <errno.h>
0004 #include <libunwind.h>
0005 #include "perf_regs.h"
0006 #include "../../util/unwind.h"
0007 #include "util/debug.h"
0008
0009 int libunwind__arch_reg_id(int regnum)
0010 {
0011 switch (regnum) {
0012 case UNW_MIPS_R1 ... UNW_MIPS_R25:
0013 return regnum - UNW_MIPS_R1 + PERF_REG_MIPS_R1;
0014 case UNW_MIPS_R28 ... UNW_MIPS_R31:
0015 return regnum - UNW_MIPS_R28 + PERF_REG_MIPS_R28;
0016 case UNW_MIPS_PC:
0017 return PERF_REG_MIPS_PC;
0018 default:
0019 pr_err("unwind: invalid reg id %d\n", regnum);
0020 return -EINVAL;
0021 }
0022 }