| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd. */ |
| |
| #ifndef ARCH_PERF_REGS_H |
| #define ARCH_PERF_REGS_H |
| |
| #include <stdlib.h> |
| #include <linux/types.h> |
| #include <asm/perf_regs.h> |
| |
| #define PERF_REGS_MASK ((1ULL << PERF_REG_RISCV_MAX) - 1) |
| #define PERF_REGS_MAX PERF_REG_RISCV_MAX |
| #if __riscv_xlen == 64 |
| #define PERF_SAMPLE_REGS_ABI PERF_SAMPLE_REGS_ABI_64 |
| #else |
| #define PERF_SAMPLE_REGS_ABI PERF_SAMPLE_REGS_ABI_32 |
| #endif |
| |
| #define PERF_REG_IP PERF_REG_RISCV_PC |
| #define PERF_REG_SP PERF_REG_RISCV_SP |
| |
| static inline const char *perf_reg_name(int id) |
| { |
| switch (id) { |
| case PERF_REG_RISCV_PC: |
| return "pc"; |
| case PERF_REG_RISCV_RA: |
| return "ra"; |
| case PERF_REG_RISCV_SP: |
| return "sp"; |
| case PERF_REG_RISCV_GP: |
| return "gp"; |
| case PERF_REG_RISCV_TP: |
| return "tp"; |
| case PERF_REG_RISCV_T0: |
| return "t0"; |
| case PERF_REG_RISCV_T1: |
| return "t1"; |
| case PERF_REG_RISCV_T2: |
| return "t2"; |
| case PERF_REG_RISCV_S0: |
| return "s0"; |
| case PERF_REG_RISCV_S1: |
| return "s1"; |
| case PERF_REG_RISCV_A0: |
| return "a0"; |
| case PERF_REG_RISCV_A1: |
| return "a1"; |
| case PERF_REG_RISCV_A2: |
| return "a2"; |
| case PERF_REG_RISCV_A3: |
| return "a3"; |
| case PERF_REG_RISCV_A4: |
| return "a4"; |
| case PERF_REG_RISCV_A5: |
| return "a5"; |
| case PERF_REG_RISCV_A6: |
| return "a6"; |
| case PERF_REG_RISCV_A7: |
| return "a7"; |
| case PERF_REG_RISCV_S2: |
| return "s2"; |
| case PERF_REG_RISCV_S3: |
| return "s3"; |
| case PERF_REG_RISCV_S4: |
| return "s4"; |
| case PERF_REG_RISCV_S5: |
| return "s5"; |
| case PERF_REG_RISCV_S6: |
| return "s6"; |
| case PERF_REG_RISCV_S7: |
| return "s7"; |
| case PERF_REG_RISCV_S8: |
| return "s8"; |
| case PERF_REG_RISCV_S9: |
| return "s9"; |
| case PERF_REG_RISCV_S10: |
| return "s10"; |
| case PERF_REG_RISCV_S11: |
| return "s11"; |
| case PERF_REG_RISCV_T3: |
| return "t3"; |
| case PERF_REG_RISCV_T4: |
| return "t4"; |
| case PERF_REG_RISCV_T5: |
| return "t5"; |
| case PERF_REG_RISCV_T6: |
| return "t6"; |
| default: |
| return NULL; |
| } |
| |
| return NULL; |
| } |
| |
| #endif /* ARCH_PERF_REGS_H */ |