mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

Currently, the macro HAVE_PERF_REGS_SUPPORT is used as a switch to turn on or turn off the code of perf registers. If any architecture cannot support perf register, it disables the perf register parsing, for both the native parsing and cross parsing for other architectures. To support both the native parsing and cross parsing, the tool should always build the perf regs functions. Thus, this patch removes HAVE_PERF_REGS_SUPPORT from the perf regs files. Signed-off-by: Leo Yan <leo.yan@linux.dev> Reviewed-by: Ian Rogers <irogers@google.com> Cc: James Clark <james.clark@arm.com> Cc: Palmer Dabbelt <palmer@dabbelt.com> Cc: Albert Ou <aou@eecs.berkeley.edu> Cc: Huacai Chen <chenhuacai@kernel.org> Cc: Guo Ren <guoren@kernel.org> Cc: Will Deacon <will@kernel.org> Cc: Mike Leach <mike.leach@linaro.org> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Ming Wang <wangming01@loongson.cn> Cc: John Garry <john.g.garry@oracle.com> Cc: Paul Walmsley <paul.walmsley@sifive.com> Cc: linux-csky@vger.kernel.org Cc: linux-riscv@lists.infradead.org Signed-off-by: Namhyung Kim <namhyung@kernel.org> Link: https://lore.kernel.org/r/20240214113947.240957-3-leo.yan@linux.dev
96 lines
1.9 KiB
C
96 lines
1.9 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
|
|
#include "../perf_regs.h"
|
|
#include "../../arch/csky/include/uapi/asm/perf_regs.h"
|
|
|
|
const char *__perf_reg_name_csky(int id)
|
|
{
|
|
switch (id) {
|
|
case PERF_REG_CSKY_A0:
|
|
return "a0";
|
|
case PERF_REG_CSKY_A1:
|
|
return "a1";
|
|
case PERF_REG_CSKY_A2:
|
|
return "a2";
|
|
case PERF_REG_CSKY_A3:
|
|
return "a3";
|
|
case PERF_REG_CSKY_REGS0:
|
|
return "regs0";
|
|
case PERF_REG_CSKY_REGS1:
|
|
return "regs1";
|
|
case PERF_REG_CSKY_REGS2:
|
|
return "regs2";
|
|
case PERF_REG_CSKY_REGS3:
|
|
return "regs3";
|
|
case PERF_REG_CSKY_REGS4:
|
|
return "regs4";
|
|
case PERF_REG_CSKY_REGS5:
|
|
return "regs5";
|
|
case PERF_REG_CSKY_REGS6:
|
|
return "regs6";
|
|
case PERF_REG_CSKY_REGS7:
|
|
return "regs7";
|
|
case PERF_REG_CSKY_REGS8:
|
|
return "regs8";
|
|
case PERF_REG_CSKY_REGS9:
|
|
return "regs9";
|
|
case PERF_REG_CSKY_SP:
|
|
return "sp";
|
|
case PERF_REG_CSKY_LR:
|
|
return "lr";
|
|
case PERF_REG_CSKY_PC:
|
|
return "pc";
|
|
#if defined(__CSKYABIV2__)
|
|
case PERF_REG_CSKY_EXREGS0:
|
|
return "exregs0";
|
|
case PERF_REG_CSKY_EXREGS1:
|
|
return "exregs1";
|
|
case PERF_REG_CSKY_EXREGS2:
|
|
return "exregs2";
|
|
case PERF_REG_CSKY_EXREGS3:
|
|
return "exregs3";
|
|
case PERF_REG_CSKY_EXREGS4:
|
|
return "exregs4";
|
|
case PERF_REG_CSKY_EXREGS5:
|
|
return "exregs5";
|
|
case PERF_REG_CSKY_EXREGS6:
|
|
return "exregs6";
|
|
case PERF_REG_CSKY_EXREGS7:
|
|
return "exregs7";
|
|
case PERF_REG_CSKY_EXREGS8:
|
|
return "exregs8";
|
|
case PERF_REG_CSKY_EXREGS9:
|
|
return "exregs9";
|
|
case PERF_REG_CSKY_EXREGS10:
|
|
return "exregs10";
|
|
case PERF_REG_CSKY_EXREGS11:
|
|
return "exregs11";
|
|
case PERF_REG_CSKY_EXREGS12:
|
|
return "exregs12";
|
|
case PERF_REG_CSKY_EXREGS13:
|
|
return "exregs13";
|
|
case PERF_REG_CSKY_EXREGS14:
|
|
return "exregs14";
|
|
case PERF_REG_CSKY_TLS:
|
|
return "tls";
|
|
case PERF_REG_CSKY_HI:
|
|
return "hi";
|
|
case PERF_REG_CSKY_LO:
|
|
return "lo";
|
|
#endif
|
|
default:
|
|
return NULL;
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
uint64_t __perf_reg_ip_csky(void)
|
|
{
|
|
return PERF_REG_CSKY_PC;
|
|
}
|
|
|
|
uint64_t __perf_reg_sp_csky(void)
|
|
{
|
|
return PERF_REG_CSKY_SP;
|
|
}
|