xref: /linux/tools/perf/util/perf-regs-arch/perf_regs_powerpc.c (revision 79790b6818e96c58fe2bffee1b418c16e64e7b80)
15000e7f6SLeo Yan // SPDX-License-Identifier: GPL-2.0
25000e7f6SLeo Yan 
35000e7f6SLeo Yan #include "../perf_regs.h"
45000e7f6SLeo Yan #include "../../../arch/powerpc/include/uapi/asm/perf_regs.h"
55000e7f6SLeo Yan 
__perf_reg_name_powerpc(int id)65000e7f6SLeo Yan const char *__perf_reg_name_powerpc(int id)
75000e7f6SLeo Yan {
85000e7f6SLeo Yan 	switch (id) {
95000e7f6SLeo Yan 	case PERF_REG_POWERPC_R0:
105000e7f6SLeo Yan 		return "r0";
115000e7f6SLeo Yan 	case PERF_REG_POWERPC_R1:
125000e7f6SLeo Yan 		return "r1";
135000e7f6SLeo Yan 	case PERF_REG_POWERPC_R2:
145000e7f6SLeo Yan 		return "r2";
155000e7f6SLeo Yan 	case PERF_REG_POWERPC_R3:
165000e7f6SLeo Yan 		return "r3";
175000e7f6SLeo Yan 	case PERF_REG_POWERPC_R4:
185000e7f6SLeo Yan 		return "r4";
195000e7f6SLeo Yan 	case PERF_REG_POWERPC_R5:
205000e7f6SLeo Yan 		return "r5";
215000e7f6SLeo Yan 	case PERF_REG_POWERPC_R6:
225000e7f6SLeo Yan 		return "r6";
235000e7f6SLeo Yan 	case PERF_REG_POWERPC_R7:
245000e7f6SLeo Yan 		return "r7";
255000e7f6SLeo Yan 	case PERF_REG_POWERPC_R8:
265000e7f6SLeo Yan 		return "r8";
275000e7f6SLeo Yan 	case PERF_REG_POWERPC_R9:
285000e7f6SLeo Yan 		return "r9";
295000e7f6SLeo Yan 	case PERF_REG_POWERPC_R10:
305000e7f6SLeo Yan 		return "r10";
315000e7f6SLeo Yan 	case PERF_REG_POWERPC_R11:
325000e7f6SLeo Yan 		return "r11";
335000e7f6SLeo Yan 	case PERF_REG_POWERPC_R12:
345000e7f6SLeo Yan 		return "r12";
355000e7f6SLeo Yan 	case PERF_REG_POWERPC_R13:
365000e7f6SLeo Yan 		return "r13";
375000e7f6SLeo Yan 	case PERF_REG_POWERPC_R14:
385000e7f6SLeo Yan 		return "r14";
395000e7f6SLeo Yan 	case PERF_REG_POWERPC_R15:
405000e7f6SLeo Yan 		return "r15";
415000e7f6SLeo Yan 	case PERF_REG_POWERPC_R16:
425000e7f6SLeo Yan 		return "r16";
435000e7f6SLeo Yan 	case PERF_REG_POWERPC_R17:
445000e7f6SLeo Yan 		return "r17";
455000e7f6SLeo Yan 	case PERF_REG_POWERPC_R18:
465000e7f6SLeo Yan 		return "r18";
475000e7f6SLeo Yan 	case PERF_REG_POWERPC_R19:
485000e7f6SLeo Yan 		return "r19";
495000e7f6SLeo Yan 	case PERF_REG_POWERPC_R20:
505000e7f6SLeo Yan 		return "r20";
515000e7f6SLeo Yan 	case PERF_REG_POWERPC_R21:
525000e7f6SLeo Yan 		return "r21";
535000e7f6SLeo Yan 	case PERF_REG_POWERPC_R22:
545000e7f6SLeo Yan 		return "r22";
555000e7f6SLeo Yan 	case PERF_REG_POWERPC_R23:
565000e7f6SLeo Yan 		return "r23";
575000e7f6SLeo Yan 	case PERF_REG_POWERPC_R24:
585000e7f6SLeo Yan 		return "r24";
595000e7f6SLeo Yan 	case PERF_REG_POWERPC_R25:
605000e7f6SLeo Yan 		return "r25";
615000e7f6SLeo Yan 	case PERF_REG_POWERPC_R26:
625000e7f6SLeo Yan 		return "r26";
635000e7f6SLeo Yan 	case PERF_REG_POWERPC_R27:
645000e7f6SLeo Yan 		return "r27";
655000e7f6SLeo Yan 	case PERF_REG_POWERPC_R28:
665000e7f6SLeo Yan 		return "r28";
675000e7f6SLeo Yan 	case PERF_REG_POWERPC_R29:
685000e7f6SLeo Yan 		return "r29";
695000e7f6SLeo Yan 	case PERF_REG_POWERPC_R30:
705000e7f6SLeo Yan 		return "r30";
715000e7f6SLeo Yan 	case PERF_REG_POWERPC_R31:
725000e7f6SLeo Yan 		return "r31";
735000e7f6SLeo Yan 	case PERF_REG_POWERPC_NIP:
745000e7f6SLeo Yan 		return "nip";
755000e7f6SLeo Yan 	case PERF_REG_POWERPC_MSR:
765000e7f6SLeo Yan 		return "msr";
775000e7f6SLeo Yan 	case PERF_REG_POWERPC_ORIG_R3:
785000e7f6SLeo Yan 		return "orig_r3";
795000e7f6SLeo Yan 	case PERF_REG_POWERPC_CTR:
805000e7f6SLeo Yan 		return "ctr";
815000e7f6SLeo Yan 	case PERF_REG_POWERPC_LINK:
825000e7f6SLeo Yan 		return "link";
835000e7f6SLeo Yan 	case PERF_REG_POWERPC_XER:
845000e7f6SLeo Yan 		return "xer";
855000e7f6SLeo Yan 	case PERF_REG_POWERPC_CCR:
865000e7f6SLeo Yan 		return "ccr";
875000e7f6SLeo Yan 	case PERF_REG_POWERPC_SOFTE:
885000e7f6SLeo Yan 		return "softe";
895000e7f6SLeo Yan 	case PERF_REG_POWERPC_TRAP:
905000e7f6SLeo Yan 		return "trap";
915000e7f6SLeo Yan 	case PERF_REG_POWERPC_DAR:
925000e7f6SLeo Yan 		return "dar";
935000e7f6SLeo Yan 	case PERF_REG_POWERPC_DSISR:
945000e7f6SLeo Yan 		return "dsisr";
955000e7f6SLeo Yan 	case PERF_REG_POWERPC_SIER:
965000e7f6SLeo Yan 		return "sier";
975000e7f6SLeo Yan 	case PERF_REG_POWERPC_MMCRA:
985000e7f6SLeo Yan 		return "mmcra";
995000e7f6SLeo Yan 	case PERF_REG_POWERPC_MMCR0:
1005000e7f6SLeo Yan 		return "mmcr0";
1015000e7f6SLeo Yan 	case PERF_REG_POWERPC_MMCR1:
1025000e7f6SLeo Yan 		return "mmcr1";
1035000e7f6SLeo Yan 	case PERF_REG_POWERPC_MMCR2:
1045000e7f6SLeo Yan 		return "mmcr2";
1055000e7f6SLeo Yan 	case PERF_REG_POWERPC_MMCR3:
1065000e7f6SLeo Yan 		return "mmcr3";
1075000e7f6SLeo Yan 	case PERF_REG_POWERPC_SIER2:
1085000e7f6SLeo Yan 		return "sier2";
1095000e7f6SLeo Yan 	case PERF_REG_POWERPC_SIER3:
1105000e7f6SLeo Yan 		return "sier3";
1115000e7f6SLeo Yan 	case PERF_REG_POWERPC_PMC1:
1125000e7f6SLeo Yan 		return "pmc1";
1135000e7f6SLeo Yan 	case PERF_REG_POWERPC_PMC2:
1145000e7f6SLeo Yan 		return "pmc2";
1155000e7f6SLeo Yan 	case PERF_REG_POWERPC_PMC3:
1165000e7f6SLeo Yan 		return "pmc3";
1175000e7f6SLeo Yan 	case PERF_REG_POWERPC_PMC4:
1185000e7f6SLeo Yan 		return "pmc4";
1195000e7f6SLeo Yan 	case PERF_REG_POWERPC_PMC5:
1205000e7f6SLeo Yan 		return "pmc5";
1215000e7f6SLeo Yan 	case PERF_REG_POWERPC_PMC6:
1225000e7f6SLeo Yan 		return "pmc6";
1235000e7f6SLeo Yan 	case PERF_REG_POWERPC_SDAR:
1245000e7f6SLeo Yan 		return "sdar";
1255000e7f6SLeo Yan 	case PERF_REG_POWERPC_SIAR:
1265000e7f6SLeo Yan 		return "siar";
1275000e7f6SLeo Yan 	default:
1285000e7f6SLeo Yan 		break;
1295000e7f6SLeo Yan 	}
1305000e7f6SLeo Yan 	return NULL;
1315000e7f6SLeo Yan }
1325000e7f6SLeo Yan 
__perf_reg_ip_powerpc(void)133*34af56afSLeo Yan uint64_t __perf_reg_ip_powerpc(void)
134*34af56afSLeo Yan {
135*34af56afSLeo Yan 	return PERF_REG_POWERPC_NIP;
136*34af56afSLeo Yan }
137*34af56afSLeo Yan 
__perf_reg_sp_powerpc(void)138*34af56afSLeo Yan uint64_t __perf_reg_sp_powerpc(void)
139*34af56afSLeo Yan {
140*34af56afSLeo Yan 	return PERF_REG_POWERPC_R1;
141*34af56afSLeo Yan }
142