162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci#ifdef HAVE_PERF_REGS_SUPPORT 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci#include "../perf_regs.h" 662306a36Sopenharmony_ci#include "../../../arch/mips/include/uapi/asm/perf_regs.h" 762306a36Sopenharmony_ci 862306a36Sopenharmony_ciconst char *__perf_reg_name_mips(int id) 962306a36Sopenharmony_ci{ 1062306a36Sopenharmony_ci switch (id) { 1162306a36Sopenharmony_ci case PERF_REG_MIPS_PC: 1262306a36Sopenharmony_ci return "PC"; 1362306a36Sopenharmony_ci case PERF_REG_MIPS_R1: 1462306a36Sopenharmony_ci return "$1"; 1562306a36Sopenharmony_ci case PERF_REG_MIPS_R2: 1662306a36Sopenharmony_ci return "$2"; 1762306a36Sopenharmony_ci case PERF_REG_MIPS_R3: 1862306a36Sopenharmony_ci return "$3"; 1962306a36Sopenharmony_ci case PERF_REG_MIPS_R4: 2062306a36Sopenharmony_ci return "$4"; 2162306a36Sopenharmony_ci case PERF_REG_MIPS_R5: 2262306a36Sopenharmony_ci return "$5"; 2362306a36Sopenharmony_ci case PERF_REG_MIPS_R6: 2462306a36Sopenharmony_ci return "$6"; 2562306a36Sopenharmony_ci case PERF_REG_MIPS_R7: 2662306a36Sopenharmony_ci return "$7"; 2762306a36Sopenharmony_ci case PERF_REG_MIPS_R8: 2862306a36Sopenharmony_ci return "$8"; 2962306a36Sopenharmony_ci case PERF_REG_MIPS_R9: 3062306a36Sopenharmony_ci return "$9"; 3162306a36Sopenharmony_ci case PERF_REG_MIPS_R10: 3262306a36Sopenharmony_ci return "$10"; 3362306a36Sopenharmony_ci case PERF_REG_MIPS_R11: 3462306a36Sopenharmony_ci return "$11"; 3562306a36Sopenharmony_ci case PERF_REG_MIPS_R12: 3662306a36Sopenharmony_ci return "$12"; 3762306a36Sopenharmony_ci case PERF_REG_MIPS_R13: 3862306a36Sopenharmony_ci return "$13"; 3962306a36Sopenharmony_ci case PERF_REG_MIPS_R14: 4062306a36Sopenharmony_ci return "$14"; 4162306a36Sopenharmony_ci case PERF_REG_MIPS_R15: 4262306a36Sopenharmony_ci return "$15"; 4362306a36Sopenharmony_ci case PERF_REG_MIPS_R16: 4462306a36Sopenharmony_ci return "$16"; 4562306a36Sopenharmony_ci case PERF_REG_MIPS_R17: 4662306a36Sopenharmony_ci return "$17"; 4762306a36Sopenharmony_ci case PERF_REG_MIPS_R18: 4862306a36Sopenharmony_ci return "$18"; 4962306a36Sopenharmony_ci case PERF_REG_MIPS_R19: 5062306a36Sopenharmony_ci return "$19"; 5162306a36Sopenharmony_ci case PERF_REG_MIPS_R20: 5262306a36Sopenharmony_ci return "$20"; 5362306a36Sopenharmony_ci case PERF_REG_MIPS_R21: 5462306a36Sopenharmony_ci return "$21"; 5562306a36Sopenharmony_ci case PERF_REG_MIPS_R22: 5662306a36Sopenharmony_ci return "$22"; 5762306a36Sopenharmony_ci case PERF_REG_MIPS_R23: 5862306a36Sopenharmony_ci return "$23"; 5962306a36Sopenharmony_ci case PERF_REG_MIPS_R24: 6062306a36Sopenharmony_ci return "$24"; 6162306a36Sopenharmony_ci case PERF_REG_MIPS_R25: 6262306a36Sopenharmony_ci return "$25"; 6362306a36Sopenharmony_ci case PERF_REG_MIPS_R28: 6462306a36Sopenharmony_ci return "$28"; 6562306a36Sopenharmony_ci case PERF_REG_MIPS_R29: 6662306a36Sopenharmony_ci return "$29"; 6762306a36Sopenharmony_ci case PERF_REG_MIPS_R30: 6862306a36Sopenharmony_ci return "$30"; 6962306a36Sopenharmony_ci case PERF_REG_MIPS_R31: 7062306a36Sopenharmony_ci return "$31"; 7162306a36Sopenharmony_ci default: 7262306a36Sopenharmony_ci break; 7362306a36Sopenharmony_ci } 7462306a36Sopenharmony_ci return NULL; 7562306a36Sopenharmony_ci} 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ciuint64_t __perf_reg_ip_mips(void) 7862306a36Sopenharmony_ci{ 7962306a36Sopenharmony_ci return PERF_REG_MIPS_PC; 8062306a36Sopenharmony_ci} 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ciuint64_t __perf_reg_sp_mips(void) 8362306a36Sopenharmony_ci{ 8462306a36Sopenharmony_ci return PERF_REG_MIPS_R29; 8562306a36Sopenharmony_ci} 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci#endif 88