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