1 #ifndef ARCH_PERF_REGS_H 2 #define ARCH_PERF_REGS_H 3 4 #include <stdlib.h> 5 #include <linux/types.h> 6 #include <asm/perf_regs.h> 7 8 void perf_regs_load(u64 *regs); 9 10 #ifndef HAVE_ARCH_X86_64_SUPPORT 11 #define PERF_REGS_MASK ((1ULL << PERF_REG_X86_32_MAX) - 1) 12 #define PERF_REGS_MAX PERF_REG_X86_32_MAX 13 #define PERF_SAMPLE_REGS_ABI PERF_SAMPLE_REGS_ABI_32 14 #else 15 #define REG_NOSUPPORT ((1ULL << PERF_REG_X86_DS) | \ 16 (1ULL << PERF_REG_X86_ES) | \ 17 (1ULL << PERF_REG_X86_FS) | \ 18 (1ULL << PERF_REG_X86_GS)) 19 #define PERF_REGS_MASK (((1ULL << PERF_REG_X86_64_MAX) - 1) & ~REG_NOSUPPORT) 20 #define PERF_REGS_MAX PERF_REG_X86_64_MAX 21 #define PERF_SAMPLE_REGS_ABI PERF_SAMPLE_REGS_ABI_64 22 #endif 23 #define PERF_REG_IP PERF_REG_X86_IP 24 #define PERF_REG_SP PERF_REG_X86_SP 25 26 static inline const char *perf_reg_name(int id) 27 { 28 switch (id) { 29 case PERF_REG_X86_AX: 30 return "AX"; 31 case PERF_REG_X86_BX: 32 return "BX"; 33 case PERF_REG_X86_CX: 34 return "CX"; 35 case PERF_REG_X86_DX: 36 return "DX"; 37 case PERF_REG_X86_SI: 38 return "SI"; 39 case PERF_REG_X86_DI: 40 return "DI"; 41 case PERF_REG_X86_BP: 42 return "BP"; 43 case PERF_REG_X86_SP: 44 return "SP"; 45 case PERF_REG_X86_IP: 46 return "IP"; 47 case PERF_REG_X86_FLAGS: 48 return "FLAGS"; 49 case PERF_REG_X86_CS: 50 return "CS"; 51 case PERF_REG_X86_SS: 52 return "SS"; 53 case PERF_REG_X86_DS: 54 return "DS"; 55 case PERF_REG_X86_ES: 56 return "ES"; 57 case PERF_REG_X86_FS: 58 return "FS"; 59 case PERF_REG_X86_GS: 60 return "GS"; 61 #ifdef HAVE_ARCH_X86_64_SUPPORT 62 case PERF_REG_X86_R8: 63 return "R8"; 64 case PERF_REG_X86_R9: 65 return "R9"; 66 case PERF_REG_X86_R10: 67 return "R10"; 68 case PERF_REG_X86_R11: 69 return "R11"; 70 case PERF_REG_X86_R12: 71 return "R12"; 72 case PERF_REG_X86_R13: 73 return "R13"; 74 case PERF_REG_X86_R14: 75 return "R14"; 76 case PERF_REG_X86_R15: 77 return "R15"; 78 #endif /* HAVE_ARCH_X86_64_SUPPORT */ 79 default: 80 return NULL; 81 } 82 83 return NULL; 84 } 85 86 #endif /* ARCH_PERF_REGS_H */ 87