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 7ea3da69dSJiri Olsa int libunwind__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