1 // SPDX-License-Identifier: GPL-2.0 2 3 #include "../perf_regs.h" 4 #include "../../../arch/x86/include/uapi/asm/perf_regs.h" 5 6 const char *__perf_reg_name_x86(int id) 7 { 8 switch (id) { 9 case PERF_REG_X86_AX: 10 return "AX"; 11 case PERF_REG_X86_BX: 12 return "BX"; 13 case PERF_REG_X86_CX: 14 return "CX"; 15 case PERF_REG_X86_DX: 16 return "DX"; 17 case PERF_REG_X86_SI: 18 return "SI"; 19 case PERF_REG_X86_DI: 20 return "DI"; 21 case PERF_REG_X86_BP: 22 return "BP"; 23 case PERF_REG_X86_SP: 24 return "SP"; 25 case PERF_REG_X86_IP: 26 return "IP"; 27 case PERF_REG_X86_FLAGS: 28 return "FLAGS"; 29 case PERF_REG_X86_CS: 30 return "CS"; 31 case PERF_REG_X86_SS: 32 return "SS"; 33 case PERF_REG_X86_DS: 34 return "DS"; 35 case PERF_REG_X86_ES: 36 return "ES"; 37 case PERF_REG_X86_FS: 38 return "FS"; 39 case PERF_REG_X86_GS: 40 return "GS"; 41 case PERF_REG_X86_R8: 42 return "R8"; 43 case PERF_REG_X86_R9: 44 return "R9"; 45 case PERF_REG_X86_R10: 46 return "R10"; 47 case PERF_REG_X86_R11: 48 return "R11"; 49 case PERF_REG_X86_R12: 50 return "R12"; 51 case PERF_REG_X86_R13: 52 return "R13"; 53 case PERF_REG_X86_R14: 54 return "R14"; 55 case PERF_REG_X86_R15: 56 return "R15"; 57 58 #define XMM(x) \ 59 case PERF_REG_X86_XMM ## x: \ 60 case PERF_REG_X86_XMM ## x + 1: \ 61 return "XMM" #x; 62 XMM(0) 63 XMM(1) 64 XMM(2) 65 XMM(3) 66 XMM(4) 67 XMM(5) 68 XMM(6) 69 XMM(7) 70 XMM(8) 71 XMM(9) 72 XMM(10) 73 XMM(11) 74 XMM(12) 75 XMM(13) 76 XMM(14) 77 XMM(15) 78 #undef XMM 79 default: 80 return NULL; 81 } 82 83 return NULL; 84 } 85 86 uint64_t __perf_reg_ip_x86(void) 87 { 88 return PERF_REG_X86_IP; 89 } 90 91 uint64_t __perf_reg_sp_x86(void) 92 { 93 return PERF_REG_X86_SP; 94 } 95