1 // SPDX-License-Identifier: GPL-2.0 2 #include <elf.h> 3 #ifndef EF_CSKY_ABIMASK 4 #define EF_CSKY_ABIMASK 0XF0000000 5 #endif 6 #ifndef EF_CSKY_ABIV2 7 #define EF_CSKY_ABIV2 0X20000000 8 #endif 9 #include "../perf_regs.h" 10 #undef __CSKYABIV2__ 11 #define __CSKYABIV2__ 1 // Always want the V2 register definitions. 12 #include "../../arch/csky/include/perf_regs.h" 13 __perf_reg_mask_csky(bool intr __maybe_unused)14uint64_t __perf_reg_mask_csky(bool intr __maybe_unused) 15 { 16 return PERF_REGS_MASK; 17 } 18 __perf_reg_name_csky(int id,uint32_t e_flags)19const char *__perf_reg_name_csky(int id, uint32_t e_flags) 20 { 21 if (id >= PERF_REG_CSKY_EXREGS0 && (e_flags & EF_CSKY_ABIMASK) == EF_CSKY_ABIV2) 22 return NULL; 23 24 switch (id) { 25 case PERF_REG_CSKY_A0: 26 return "a0"; 27 case PERF_REG_CSKY_A1: 28 return "a1"; 29 case PERF_REG_CSKY_A2: 30 return "a2"; 31 case PERF_REG_CSKY_A3: 32 return "a3"; 33 case PERF_REG_CSKY_REGS0: 34 return "regs0"; 35 case PERF_REG_CSKY_REGS1: 36 return "regs1"; 37 case PERF_REG_CSKY_REGS2: 38 return "regs2"; 39 case PERF_REG_CSKY_REGS3: 40 return "regs3"; 41 case PERF_REG_CSKY_REGS4: 42 return "regs4"; 43 case PERF_REG_CSKY_REGS5: 44 return "regs5"; 45 case PERF_REG_CSKY_REGS6: 46 return "regs6"; 47 case PERF_REG_CSKY_REGS7: 48 return "regs7"; 49 case PERF_REG_CSKY_REGS8: 50 return "regs8"; 51 case PERF_REG_CSKY_REGS9: 52 return "regs9"; 53 case PERF_REG_CSKY_SP: 54 return "sp"; 55 case PERF_REG_CSKY_LR: 56 return "lr"; 57 case PERF_REG_CSKY_PC: 58 return "pc"; 59 case PERF_REG_CSKY_EXREGS0: 60 return "exregs0"; 61 case PERF_REG_CSKY_EXREGS1: 62 return "exregs1"; 63 case PERF_REG_CSKY_EXREGS2: 64 return "exregs2"; 65 case PERF_REG_CSKY_EXREGS3: 66 return "exregs3"; 67 case PERF_REG_CSKY_EXREGS4: 68 return "exregs4"; 69 case PERF_REG_CSKY_EXREGS5: 70 return "exregs5"; 71 case PERF_REG_CSKY_EXREGS6: 72 return "exregs6"; 73 case PERF_REG_CSKY_EXREGS7: 74 return "exregs7"; 75 case PERF_REG_CSKY_EXREGS8: 76 return "exregs8"; 77 case PERF_REG_CSKY_EXREGS9: 78 return "exregs9"; 79 case PERF_REG_CSKY_EXREGS10: 80 return "exregs10"; 81 case PERF_REG_CSKY_EXREGS11: 82 return "exregs11"; 83 case PERF_REG_CSKY_EXREGS12: 84 return "exregs12"; 85 case PERF_REG_CSKY_EXREGS13: 86 return "exregs13"; 87 case PERF_REG_CSKY_EXREGS14: 88 return "exregs14"; 89 case PERF_REG_CSKY_TLS: 90 return "tls"; 91 case PERF_REG_CSKY_HI: 92 return "hi"; 93 case PERF_REG_CSKY_LO: 94 return "lo"; 95 default: 96 return NULL; 97 } 98 } 99 __perf_reg_ip_csky(void)100uint64_t __perf_reg_ip_csky(void) 101 { 102 return PERF_REG_CSKY_PC; 103 } 104 __perf_reg_sp_csky(void)105uint64_t __perf_reg_sp_csky(void) 106 { 107 return PERF_REG_CSKY_SP; 108 } 109