xref: /linux/tools/perf/arch/arm64/include/perf_regs.h (revision ca55b2fef3a9373fcfc30f82fd26bc7fccbda732)
1 #ifndef ARCH_PERF_REGS_H
2 #define ARCH_PERF_REGS_H
3 
4 #include <stdlib.h>
5 #include <linux/types.h>
6 #include <asm/perf_regs.h>
7 
8 void perf_regs_load(u64 *regs);
9 
10 #define PERF_REGS_MASK	((1ULL << PERF_REG_ARM64_MAX) - 1)
11 #define PERF_REGS_MAX	PERF_REG_ARM64_MAX
12 #define PERF_SAMPLE_REGS_ABI	PERF_SAMPLE_REGS_ABI_64
13 
14 #define PERF_REG_IP	PERF_REG_ARM64_PC
15 #define PERF_REG_SP	PERF_REG_ARM64_SP
16 
17 static inline const char *perf_reg_name(int id)
18 {
19 	switch (id) {
20 	case PERF_REG_ARM64_X0:
21 		return "x0";
22 	case PERF_REG_ARM64_X1:
23 		return "x1";
24 	case PERF_REG_ARM64_X2:
25 		return "x2";
26 	case PERF_REG_ARM64_X3:
27 		return "x3";
28 	case PERF_REG_ARM64_X4:
29 		return "x4";
30 	case PERF_REG_ARM64_X5:
31 		return "x5";
32 	case PERF_REG_ARM64_X6:
33 		return "x6";
34 	case PERF_REG_ARM64_X7:
35 		return "x7";
36 	case PERF_REG_ARM64_X8:
37 		return "x8";
38 	case PERF_REG_ARM64_X9:
39 		return "x9";
40 	case PERF_REG_ARM64_X10:
41 		return "x10";
42 	case PERF_REG_ARM64_X11:
43 		return "x11";
44 	case PERF_REG_ARM64_X12:
45 		return "x12";
46 	case PERF_REG_ARM64_X13:
47 		return "x13";
48 	case PERF_REG_ARM64_X14:
49 		return "x14";
50 	case PERF_REG_ARM64_X15:
51 		return "x15";
52 	case PERF_REG_ARM64_X16:
53 		return "x16";
54 	case PERF_REG_ARM64_X17:
55 		return "x17";
56 	case PERF_REG_ARM64_X18:
57 		return "x18";
58 	case PERF_REG_ARM64_X19:
59 		return "x19";
60 	case PERF_REG_ARM64_X20:
61 		return "x20";
62 	case PERF_REG_ARM64_X21:
63 		return "x21";
64 	case PERF_REG_ARM64_X22:
65 		return "x22";
66 	case PERF_REG_ARM64_X23:
67 		return "x23";
68 	case PERF_REG_ARM64_X24:
69 		return "x24";
70 	case PERF_REG_ARM64_X25:
71 		return "x25";
72 	case PERF_REG_ARM64_X26:
73 		return "x26";
74 	case PERF_REG_ARM64_X27:
75 		return "x27";
76 	case PERF_REG_ARM64_X28:
77 		return "x28";
78 	case PERF_REG_ARM64_X29:
79 		return "x29";
80 	case PERF_REG_ARM64_SP:
81 		return "sp";
82 	case PERF_REG_ARM64_LR:
83 		return "lr";
84 	case PERF_REG_ARM64_PC:
85 		return "pc";
86 	default:
87 		return NULL;
88 	}
89 
90 	return NULL;
91 }
92 
93 #endif /* ARCH_PERF_REGS_H */
94