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