xref: /linux/tools/perf/arch/arm/include/perf_regs.h (revision 3418f9667e8cc4070a86215e6c12baa5bc2f2799)
17495f374SWill Deacon #ifndef ARCH_PERF_REGS_H
27495f374SWill Deacon #define ARCH_PERF_REGS_H
37495f374SWill Deacon 
47495f374SWill Deacon #include <stdlib.h>
521a8b756SJean Pihet #include <linux/types.h>
67495f374SWill Deacon #include <asm/perf_regs.h>
77495f374SWill Deacon 
8*3418f966SJean Pihet void perf_regs_load(u64 *regs);
9*3418f966SJean Pihet 
107495f374SWill Deacon #define PERF_REGS_MASK	((1ULL << PERF_REG_ARM_MAX) - 1)
117495f374SWill Deacon #define PERF_REG_IP	PERF_REG_ARM_PC
127495f374SWill Deacon #define PERF_REG_SP	PERF_REG_ARM_SP
137495f374SWill Deacon 
147495f374SWill Deacon static inline const char *perf_reg_name(int id)
157495f374SWill Deacon {
167495f374SWill Deacon 	switch (id) {
177495f374SWill Deacon 	case PERF_REG_ARM_R0:
187495f374SWill Deacon 		return "r0";
197495f374SWill Deacon 	case PERF_REG_ARM_R1:
207495f374SWill Deacon 		return "r1";
217495f374SWill Deacon 	case PERF_REG_ARM_R2:
227495f374SWill Deacon 		return "r2";
237495f374SWill Deacon 	case PERF_REG_ARM_R3:
247495f374SWill Deacon 		return "r3";
257495f374SWill Deacon 	case PERF_REG_ARM_R4:
267495f374SWill Deacon 		return "r4";
277495f374SWill Deacon 	case PERF_REG_ARM_R5:
287495f374SWill Deacon 		return "r5";
297495f374SWill Deacon 	case PERF_REG_ARM_R6:
307495f374SWill Deacon 		return "r6";
317495f374SWill Deacon 	case PERF_REG_ARM_R7:
327495f374SWill Deacon 		return "r7";
337495f374SWill Deacon 	case PERF_REG_ARM_R8:
347495f374SWill Deacon 		return "r8";
357495f374SWill Deacon 	case PERF_REG_ARM_R9:
367495f374SWill Deacon 		return "r9";
377495f374SWill Deacon 	case PERF_REG_ARM_R10:
387495f374SWill Deacon 		return "r10";
397495f374SWill Deacon 	case PERF_REG_ARM_FP:
407495f374SWill Deacon 		return "fp";
417495f374SWill Deacon 	case PERF_REG_ARM_IP:
427495f374SWill Deacon 		return "ip";
437495f374SWill Deacon 	case PERF_REG_ARM_SP:
447495f374SWill Deacon 		return "sp";
457495f374SWill Deacon 	case PERF_REG_ARM_LR:
467495f374SWill Deacon 		return "lr";
477495f374SWill Deacon 	case PERF_REG_ARM_PC:
487495f374SWill Deacon 		return "pc";
497495f374SWill Deacon 	default:
507495f374SWill Deacon 		return NULL;
517495f374SWill Deacon 	}
527495f374SWill Deacon 
537495f374SWill Deacon 	return NULL;
547495f374SWill Deacon }
557495f374SWill Deacon 
567495f374SWill Deacon #endif /* ARCH_PERF_REGS_H */
57