]>
Commit | Line | Data |
---|---|---|
3213486f MH |
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | // Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd. | |
3 | ||
4 | #ifndef ARCH_PERF_REGS_H | |
5 | #define ARCH_PERF_REGS_H | |
6 | ||
7 | #include <stdlib.h> | |
8 | #include <linux/types.h> | |
9 | #include <asm/perf_regs.h> | |
10 | ||
11 | #define PERF_REGS_MASK ((1ULL << PERF_REG_CSKY_MAX) - 1) | |
12 | #define PERF_REGS_MAX PERF_REG_CSKY_MAX | |
13 | #define PERF_SAMPLE_REGS_ABI PERF_SAMPLE_REGS_ABI_32 | |
14 | ||
15 | #define PERF_REG_IP PERF_REG_CSKY_PC | |
16 | #define PERF_REG_SP PERF_REG_CSKY_SP | |
17 | ||
92186c88 | 18 | static inline const char *__perf_reg_name(int id) |
3213486f MH |
19 | { |
20 | switch (id) { | |
21 | case PERF_REG_CSKY_A0: | |
22 | return "a0"; | |
23 | case PERF_REG_CSKY_A1: | |
24 | return "a1"; | |
25 | case PERF_REG_CSKY_A2: | |
26 | return "a2"; | |
27 | case PERF_REG_CSKY_A3: | |
28 | return "a3"; | |
29 | case PERF_REG_CSKY_REGS0: | |
30 | return "regs0"; | |
31 | case PERF_REG_CSKY_REGS1: | |
32 | return "regs1"; | |
33 | case PERF_REG_CSKY_REGS2: | |
34 | return "regs2"; | |
35 | case PERF_REG_CSKY_REGS3: | |
36 | return "regs3"; | |
37 | case PERF_REG_CSKY_REGS4: | |
38 | return "regs4"; | |
39 | case PERF_REG_CSKY_REGS5: | |
40 | return "regs5"; | |
41 | case PERF_REG_CSKY_REGS6: | |
42 | return "regs6"; | |
43 | case PERF_REG_CSKY_REGS7: | |
44 | return "regs7"; | |
45 | case PERF_REG_CSKY_REGS8: | |
46 | return "regs8"; | |
47 | case PERF_REG_CSKY_REGS9: | |
48 | return "regs9"; | |
49 | case PERF_REG_CSKY_SP: | |
50 | return "sp"; | |
51 | case PERF_REG_CSKY_LR: | |
52 | return "lr"; | |
53 | case PERF_REG_CSKY_PC: | |
54 | return "pc"; | |
55 | #if defined(__CSKYABIV2__) | |
56 | case PERF_REG_CSKY_EXREGS0: | |
57 | return "exregs0"; | |
58 | case PERF_REG_CSKY_EXREGS1: | |
59 | return "exregs1"; | |
60 | case PERF_REG_CSKY_EXREGS2: | |
61 | return "exregs2"; | |
62 | case PERF_REG_CSKY_EXREGS3: | |
63 | return "exregs3"; | |
64 | case PERF_REG_CSKY_EXREGS4: | |
65 | return "exregs4"; | |
66 | case PERF_REG_CSKY_EXREGS5: | |
67 | return "exregs5"; | |
68 | case PERF_REG_CSKY_EXREGS6: | |
69 | return "exregs6"; | |
70 | case PERF_REG_CSKY_EXREGS7: | |
71 | return "exregs7"; | |
72 | case PERF_REG_CSKY_EXREGS8: | |
73 | return "exregs8"; | |
74 | case PERF_REG_CSKY_EXREGS9: | |
75 | return "exregs9"; | |
76 | case PERF_REG_CSKY_EXREGS10: | |
77 | return "exregs10"; | |
78 | case PERF_REG_CSKY_EXREGS11: | |
79 | return "exregs11"; | |
80 | case PERF_REG_CSKY_EXREGS12: | |
81 | return "exregs12"; | |
82 | case PERF_REG_CSKY_EXREGS13: | |
83 | return "exregs13"; | |
84 | case PERF_REG_CSKY_EXREGS14: | |
85 | return "exregs14"; | |
86 | case PERF_REG_CSKY_TLS: | |
87 | return "tls"; | |
88 | case PERF_REG_CSKY_HI: | |
89 | return "hi"; | |
90 | case PERF_REG_CSKY_LO: | |
91 | return "lo"; | |
92 | #endif | |
93 | default: | |
94 | return NULL; | |
95 | } | |
96 | ||
97 | return NULL; | |
98 | } | |
99 | ||
100 | #endif /* ARCH_PERF_REGS_H */ |