xref: /linux/tools/perf/arch/arm/include/perf_regs.h (revision c4ee0af3fa0dc65f690fc908f02b8355f9576ea0)
1 #ifndef ARCH_PERF_REGS_H
2 #define ARCH_PERF_REGS_H
3 
4 #include <stdlib.h>
5 #include "../../util/types.h"
6 #include <asm/perf_regs.h>
7 
8 #define PERF_REGS_MASK	((1ULL << PERF_REG_ARM_MAX) - 1)
9 #define PERF_REG_IP	PERF_REG_ARM_PC
10 #define PERF_REG_SP	PERF_REG_ARM_SP
11 
12 static inline const char *perf_reg_name(int id)
13 {
14 	switch (id) {
15 	case PERF_REG_ARM_R0:
16 		return "r0";
17 	case PERF_REG_ARM_R1:
18 		return "r1";
19 	case PERF_REG_ARM_R2:
20 		return "r2";
21 	case PERF_REG_ARM_R3:
22 		return "r3";
23 	case PERF_REG_ARM_R4:
24 		return "r4";
25 	case PERF_REG_ARM_R5:
26 		return "r5";
27 	case PERF_REG_ARM_R6:
28 		return "r6";
29 	case PERF_REG_ARM_R7:
30 		return "r7";
31 	case PERF_REG_ARM_R8:
32 		return "r8";
33 	case PERF_REG_ARM_R9:
34 		return "r9";
35 	case PERF_REG_ARM_R10:
36 		return "r10";
37 	case PERF_REG_ARM_FP:
38 		return "fp";
39 	case PERF_REG_ARM_IP:
40 		return "ip";
41 	case PERF_REG_ARM_SP:
42 		return "sp";
43 	case PERF_REG_ARM_LR:
44 		return "lr";
45 	case PERF_REG_ARM_PC:
46 		return "pc";
47 	default:
48 		return NULL;
49 	}
50 
51 	return NULL;
52 }
53 
54 #endif /* ARCH_PERF_REGS_H */
55