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