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/arm/include/uapi/asm/perf_regs.h" 762306a36Sopenharmony_ci 862306a36Sopenharmony_ciconst char *__perf_reg_name_arm(int id) 962306a36Sopenharmony_ci{ 1062306a36Sopenharmony_ci switch (id) { 1162306a36Sopenharmony_ci case PERF_REG_ARM_R0: 1262306a36Sopenharmony_ci return "r0"; 1362306a36Sopenharmony_ci case PERF_REG_ARM_R1: 1462306a36Sopenharmony_ci return "r1"; 1562306a36Sopenharmony_ci case PERF_REG_ARM_R2: 1662306a36Sopenharmony_ci return "r2"; 1762306a36Sopenharmony_ci case PERF_REG_ARM_R3: 1862306a36Sopenharmony_ci return "r3"; 1962306a36Sopenharmony_ci case PERF_REG_ARM_R4: 2062306a36Sopenharmony_ci return "r4"; 2162306a36Sopenharmony_ci case PERF_REG_ARM_R5: 2262306a36Sopenharmony_ci return "r5"; 2362306a36Sopenharmony_ci case PERF_REG_ARM_R6: 2462306a36Sopenharmony_ci return "r6"; 2562306a36Sopenharmony_ci case PERF_REG_ARM_R7: 2662306a36Sopenharmony_ci return "r7"; 2762306a36Sopenharmony_ci case PERF_REG_ARM_R8: 2862306a36Sopenharmony_ci return "r8"; 2962306a36Sopenharmony_ci case PERF_REG_ARM_R9: 3062306a36Sopenharmony_ci return "r9"; 3162306a36Sopenharmony_ci case PERF_REG_ARM_R10: 3262306a36Sopenharmony_ci return "r10"; 3362306a36Sopenharmony_ci case PERF_REG_ARM_FP: 3462306a36Sopenharmony_ci return "fp"; 3562306a36Sopenharmony_ci case PERF_REG_ARM_IP: 3662306a36Sopenharmony_ci return "ip"; 3762306a36Sopenharmony_ci case PERF_REG_ARM_SP: 3862306a36Sopenharmony_ci return "sp"; 3962306a36Sopenharmony_ci case PERF_REG_ARM_LR: 4062306a36Sopenharmony_ci return "lr"; 4162306a36Sopenharmony_ci case PERF_REG_ARM_PC: 4262306a36Sopenharmony_ci return "pc"; 4362306a36Sopenharmony_ci default: 4462306a36Sopenharmony_ci return NULL; 4562306a36Sopenharmony_ci } 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci return NULL; 4862306a36Sopenharmony_ci} 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ciuint64_t __perf_reg_ip_arm(void) 5162306a36Sopenharmony_ci{ 5262306a36Sopenharmony_ci return PERF_REG_ARM_PC; 5362306a36Sopenharmony_ci} 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ciuint64_t __perf_reg_sp_arm(void) 5662306a36Sopenharmony_ci{ 5762306a36Sopenharmony_ci return PERF_REG_ARM_SP; 5862306a36Sopenharmony_ci} 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci#endif 61