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 18 static inline const char *perf_reg_name(int id) 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 */ 101