xref: /linux/tools/perf/util/perf-regs-arch/perf_regs_powerpc.c (revision 5000e7f61a1eb82fed98d5d0c8f19477033f0914)
1*5000e7f6SLeo Yan // SPDX-License-Identifier: GPL-2.0
2*5000e7f6SLeo Yan 
3*5000e7f6SLeo Yan #ifdef HAVE_PERF_REGS_SUPPORT
4*5000e7f6SLeo Yan 
5*5000e7f6SLeo Yan #include "../perf_regs.h"
6*5000e7f6SLeo Yan #include "../../../arch/powerpc/include/uapi/asm/perf_regs.h"
7*5000e7f6SLeo Yan 
8*5000e7f6SLeo Yan const char *__perf_reg_name_powerpc(int id)
9*5000e7f6SLeo Yan {
10*5000e7f6SLeo Yan 	switch (id) {
11*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R0:
12*5000e7f6SLeo Yan 		return "r0";
13*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R1:
14*5000e7f6SLeo Yan 		return "r1";
15*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R2:
16*5000e7f6SLeo Yan 		return "r2";
17*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R3:
18*5000e7f6SLeo Yan 		return "r3";
19*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R4:
20*5000e7f6SLeo Yan 		return "r4";
21*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R5:
22*5000e7f6SLeo Yan 		return "r5";
23*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R6:
24*5000e7f6SLeo Yan 		return "r6";
25*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R7:
26*5000e7f6SLeo Yan 		return "r7";
27*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R8:
28*5000e7f6SLeo Yan 		return "r8";
29*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R9:
30*5000e7f6SLeo Yan 		return "r9";
31*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R10:
32*5000e7f6SLeo Yan 		return "r10";
33*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R11:
34*5000e7f6SLeo Yan 		return "r11";
35*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R12:
36*5000e7f6SLeo Yan 		return "r12";
37*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R13:
38*5000e7f6SLeo Yan 		return "r13";
39*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R14:
40*5000e7f6SLeo Yan 		return "r14";
41*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R15:
42*5000e7f6SLeo Yan 		return "r15";
43*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R16:
44*5000e7f6SLeo Yan 		return "r16";
45*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R17:
46*5000e7f6SLeo Yan 		return "r17";
47*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R18:
48*5000e7f6SLeo Yan 		return "r18";
49*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R19:
50*5000e7f6SLeo Yan 		return "r19";
51*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R20:
52*5000e7f6SLeo Yan 		return "r20";
53*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R21:
54*5000e7f6SLeo Yan 		return "r21";
55*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R22:
56*5000e7f6SLeo Yan 		return "r22";
57*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R23:
58*5000e7f6SLeo Yan 		return "r23";
59*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R24:
60*5000e7f6SLeo Yan 		return "r24";
61*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R25:
62*5000e7f6SLeo Yan 		return "r25";
63*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R26:
64*5000e7f6SLeo Yan 		return "r26";
65*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R27:
66*5000e7f6SLeo Yan 		return "r27";
67*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R28:
68*5000e7f6SLeo Yan 		return "r28";
69*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R29:
70*5000e7f6SLeo Yan 		return "r29";
71*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R30:
72*5000e7f6SLeo Yan 		return "r30";
73*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_R31:
74*5000e7f6SLeo Yan 		return "r31";
75*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_NIP:
76*5000e7f6SLeo Yan 		return "nip";
77*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_MSR:
78*5000e7f6SLeo Yan 		return "msr";
79*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_ORIG_R3:
80*5000e7f6SLeo Yan 		return "orig_r3";
81*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_CTR:
82*5000e7f6SLeo Yan 		return "ctr";
83*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_LINK:
84*5000e7f6SLeo Yan 		return "link";
85*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_XER:
86*5000e7f6SLeo Yan 		return "xer";
87*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_CCR:
88*5000e7f6SLeo Yan 		return "ccr";
89*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_SOFTE:
90*5000e7f6SLeo Yan 		return "softe";
91*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_TRAP:
92*5000e7f6SLeo Yan 		return "trap";
93*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_DAR:
94*5000e7f6SLeo Yan 		return "dar";
95*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_DSISR:
96*5000e7f6SLeo Yan 		return "dsisr";
97*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_SIER:
98*5000e7f6SLeo Yan 		return "sier";
99*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_MMCRA:
100*5000e7f6SLeo Yan 		return "mmcra";
101*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_MMCR0:
102*5000e7f6SLeo Yan 		return "mmcr0";
103*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_MMCR1:
104*5000e7f6SLeo Yan 		return "mmcr1";
105*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_MMCR2:
106*5000e7f6SLeo Yan 		return "mmcr2";
107*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_MMCR3:
108*5000e7f6SLeo Yan 		return "mmcr3";
109*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_SIER2:
110*5000e7f6SLeo Yan 		return "sier2";
111*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_SIER3:
112*5000e7f6SLeo Yan 		return "sier3";
113*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_PMC1:
114*5000e7f6SLeo Yan 		return "pmc1";
115*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_PMC2:
116*5000e7f6SLeo Yan 		return "pmc2";
117*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_PMC3:
118*5000e7f6SLeo Yan 		return "pmc3";
119*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_PMC4:
120*5000e7f6SLeo Yan 		return "pmc4";
121*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_PMC5:
122*5000e7f6SLeo Yan 		return "pmc5";
123*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_PMC6:
124*5000e7f6SLeo Yan 		return "pmc6";
125*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_SDAR:
126*5000e7f6SLeo Yan 		return "sdar";
127*5000e7f6SLeo Yan 	case PERF_REG_POWERPC_SIAR:
128*5000e7f6SLeo Yan 		return "siar";
129*5000e7f6SLeo Yan 	default:
130*5000e7f6SLeo Yan 		break;
131*5000e7f6SLeo Yan 	}
132*5000e7f6SLeo Yan 	return NULL;
133*5000e7f6SLeo Yan }
134*5000e7f6SLeo Yan 
135*5000e7f6SLeo Yan #endif
136