1 #ifndef ARCH_PERF_REGS_H 2 #define ARCH_PERF_REGS_H 3 4 #include <stdlib.h> 5 #include "../../util/types.h" 6 #include <asm/perf_regs.h> 7 8 #define PERF_REGS_MASK ((1ULL << PERF_REG_ARM_MAX) - 1) 9 #define PERF_REG_IP PERF_REG_ARM_PC 10 #define PERF_REG_SP PERF_REG_ARM_SP 11 12 static inline const char *perf_reg_name(int id) 13 { 14 switch (id) { 15 case PERF_REG_ARM_R0: 16 return "r0"; 17 case PERF_REG_ARM_R1: 18 return "r1"; 19 case PERF_REG_ARM_R2: 20 return "r2"; 21 case PERF_REG_ARM_R3: 22 return "r3"; 23 case PERF_REG_ARM_R4: 24 return "r4"; 25 case PERF_REG_ARM_R5: 26 return "r5"; 27 case PERF_REG_ARM_R6: 28 return "r6"; 29 case PERF_REG_ARM_R7: 30 return "r7"; 31 case PERF_REG_ARM_R8: 32 return "r8"; 33 case PERF_REG_ARM_R9: 34 return "r9"; 35 case PERF_REG_ARM_R10: 36 return "r10"; 37 case PERF_REG_ARM_FP: 38 return "fp"; 39 case PERF_REG_ARM_IP: 40 return "ip"; 41 case PERF_REG_ARM_SP: 42 return "sp"; 43 case PERF_REG_ARM_LR: 44 return "lr"; 45 case PERF_REG_ARM_PC: 46 return "pc"; 47 default: 48 return NULL; 49 } 50 51 return NULL; 52 } 53 54 #endif /* ARCH_PERF_REGS_H */ 55