15000e7f6SLeo Yan // SPDX-License-Identifier: GPL-2.0 25000e7f6SLeo Yan 35000e7f6SLeo Yan #include "../perf_regs.h" 45000e7f6SLeo Yan #include "../../../arch/x86/include/uapi/asm/perf_regs.h" 55000e7f6SLeo Yan __perf_reg_name_x86(int id)65000e7f6SLeo Yanconst char *__perf_reg_name_x86(int id) 75000e7f6SLeo Yan { 85000e7f6SLeo Yan switch (id) { 95000e7f6SLeo Yan case PERF_REG_X86_AX: 105000e7f6SLeo Yan return "AX"; 115000e7f6SLeo Yan case PERF_REG_X86_BX: 125000e7f6SLeo Yan return "BX"; 135000e7f6SLeo Yan case PERF_REG_X86_CX: 145000e7f6SLeo Yan return "CX"; 155000e7f6SLeo Yan case PERF_REG_X86_DX: 165000e7f6SLeo Yan return "DX"; 175000e7f6SLeo Yan case PERF_REG_X86_SI: 185000e7f6SLeo Yan return "SI"; 195000e7f6SLeo Yan case PERF_REG_X86_DI: 205000e7f6SLeo Yan return "DI"; 215000e7f6SLeo Yan case PERF_REG_X86_BP: 225000e7f6SLeo Yan return "BP"; 235000e7f6SLeo Yan case PERF_REG_X86_SP: 245000e7f6SLeo Yan return "SP"; 255000e7f6SLeo Yan case PERF_REG_X86_IP: 265000e7f6SLeo Yan return "IP"; 275000e7f6SLeo Yan case PERF_REG_X86_FLAGS: 285000e7f6SLeo Yan return "FLAGS"; 295000e7f6SLeo Yan case PERF_REG_X86_CS: 305000e7f6SLeo Yan return "CS"; 315000e7f6SLeo Yan case PERF_REG_X86_SS: 325000e7f6SLeo Yan return "SS"; 335000e7f6SLeo Yan case PERF_REG_X86_DS: 345000e7f6SLeo Yan return "DS"; 355000e7f6SLeo Yan case PERF_REG_X86_ES: 365000e7f6SLeo Yan return "ES"; 375000e7f6SLeo Yan case PERF_REG_X86_FS: 385000e7f6SLeo Yan return "FS"; 395000e7f6SLeo Yan case PERF_REG_X86_GS: 405000e7f6SLeo Yan return "GS"; 415000e7f6SLeo Yan case PERF_REG_X86_R8: 425000e7f6SLeo Yan return "R8"; 435000e7f6SLeo Yan case PERF_REG_X86_R9: 445000e7f6SLeo Yan return "R9"; 455000e7f6SLeo Yan case PERF_REG_X86_R10: 465000e7f6SLeo Yan return "R10"; 475000e7f6SLeo Yan case PERF_REG_X86_R11: 485000e7f6SLeo Yan return "R11"; 495000e7f6SLeo Yan case PERF_REG_X86_R12: 505000e7f6SLeo Yan return "R12"; 515000e7f6SLeo Yan case PERF_REG_X86_R13: 525000e7f6SLeo Yan return "R13"; 535000e7f6SLeo Yan case PERF_REG_X86_R14: 545000e7f6SLeo Yan return "R14"; 555000e7f6SLeo Yan case PERF_REG_X86_R15: 565000e7f6SLeo Yan return "R15"; 575000e7f6SLeo Yan 585000e7f6SLeo Yan #define XMM(x) \ 595000e7f6SLeo Yan case PERF_REG_X86_XMM ## x: \ 605000e7f6SLeo Yan case PERF_REG_X86_XMM ## x + 1: \ 615000e7f6SLeo Yan return "XMM" #x; 625000e7f6SLeo Yan XMM(0) 635000e7f6SLeo Yan XMM(1) 645000e7f6SLeo Yan XMM(2) 655000e7f6SLeo Yan XMM(3) 665000e7f6SLeo Yan XMM(4) 675000e7f6SLeo Yan XMM(5) 685000e7f6SLeo Yan XMM(6) 695000e7f6SLeo Yan XMM(7) 705000e7f6SLeo Yan XMM(8) 715000e7f6SLeo Yan XMM(9) 725000e7f6SLeo Yan XMM(10) 735000e7f6SLeo Yan XMM(11) 745000e7f6SLeo Yan XMM(12) 755000e7f6SLeo Yan XMM(13) 765000e7f6SLeo Yan XMM(14) 775000e7f6SLeo Yan XMM(15) 785000e7f6SLeo Yan #undef XMM 795000e7f6SLeo Yan default: 805000e7f6SLeo Yan return NULL; 815000e7f6SLeo Yan } 825000e7f6SLeo Yan 835000e7f6SLeo Yan return NULL; 845000e7f6SLeo Yan } 855000e7f6SLeo Yan __perf_reg_ip_x86(void)8634af56afSLeo Yanuint64_t __perf_reg_ip_x86(void) 8734af56afSLeo Yan { 8834af56afSLeo Yan return PERF_REG_X86_IP; 8934af56afSLeo Yan } 9034af56afSLeo Yan __perf_reg_sp_x86(void)9134af56afSLeo Yanuint64_t __perf_reg_sp_x86(void) 9234af56afSLeo Yan { 9334af56afSLeo Yan return PERF_REG_X86_SP; 9434af56afSLeo Yan } 95