#include <errno.h> | |
#include <libunwind.h> | |
#include "perf_regs.h" | |
#include "../../util/unwind.h" | |
int unwind__arch_reg_id(int regnum) | |
{ | |
switch (regnum) { | |
case UNW_ARM_R0: | |
return PERF_REG_ARM_R0; | |
case UNW_ARM_R1: | |
return PERF_REG_ARM_R1; | |
case UNW_ARM_R2: | |
return PERF_REG_ARM_R2; | |
case UNW_ARM_R3: | |
return PERF_REG_ARM_R3; | |
case UNW_ARM_R4: | |
return PERF_REG_ARM_R4; | |
case UNW_ARM_R5: | |
return PERF_REG_ARM_R5; | |
case UNW_ARM_R6: | |
return PERF_REG_ARM_R6; | |
case UNW_ARM_R7: | |
return PERF_REG_ARM_R7; | |
case UNW_ARM_R8: | |
return PERF_REG_ARM_R8; | |
case UNW_ARM_R9: | |
return PERF_REG_ARM_R9; | |
case UNW_ARM_R10: | |
return PERF_REG_ARM_R10; | |
case UNW_ARM_R11: | |
return PERF_REG_ARM_FP; | |
case UNW_ARM_R12: | |
return PERF_REG_ARM_IP; | |
case UNW_ARM_R13: | |
return PERF_REG_ARM_SP; | |
case UNW_ARM_R14: | |
return PERF_REG_ARM_LR; | |
case UNW_ARM_R15: | |
return PERF_REG_ARM_PC; | |
default: | |
pr_err("unwind: invalid reg id %d\n", regnum); | |
return -EINVAL; | |
} | |
return -EINVAL; | |
} |