forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
1.9 KiB
96 lines
1.9 KiB
/* 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 */
|
|
|