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/arm64/include/uapi/asm/perf_regs.h"
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciconst char *__perf_reg_name_arm64(int id)
962306a36Sopenharmony_ci{
1062306a36Sopenharmony_ci	switch (id) {
1162306a36Sopenharmony_ci	case PERF_REG_ARM64_X0:
1262306a36Sopenharmony_ci		return "x0";
1362306a36Sopenharmony_ci	case PERF_REG_ARM64_X1:
1462306a36Sopenharmony_ci		return "x1";
1562306a36Sopenharmony_ci	case PERF_REG_ARM64_X2:
1662306a36Sopenharmony_ci		return "x2";
1762306a36Sopenharmony_ci	case PERF_REG_ARM64_X3:
1862306a36Sopenharmony_ci		return "x3";
1962306a36Sopenharmony_ci	case PERF_REG_ARM64_X4:
2062306a36Sopenharmony_ci		return "x4";
2162306a36Sopenharmony_ci	case PERF_REG_ARM64_X5:
2262306a36Sopenharmony_ci		return "x5";
2362306a36Sopenharmony_ci	case PERF_REG_ARM64_X6:
2462306a36Sopenharmony_ci		return "x6";
2562306a36Sopenharmony_ci	case PERF_REG_ARM64_X7:
2662306a36Sopenharmony_ci		return "x7";
2762306a36Sopenharmony_ci	case PERF_REG_ARM64_X8:
2862306a36Sopenharmony_ci		return "x8";
2962306a36Sopenharmony_ci	case PERF_REG_ARM64_X9:
3062306a36Sopenharmony_ci		return "x9";
3162306a36Sopenharmony_ci	case PERF_REG_ARM64_X10:
3262306a36Sopenharmony_ci		return "x10";
3362306a36Sopenharmony_ci	case PERF_REG_ARM64_X11:
3462306a36Sopenharmony_ci		return "x11";
3562306a36Sopenharmony_ci	case PERF_REG_ARM64_X12:
3662306a36Sopenharmony_ci		return "x12";
3762306a36Sopenharmony_ci	case PERF_REG_ARM64_X13:
3862306a36Sopenharmony_ci		return "x13";
3962306a36Sopenharmony_ci	case PERF_REG_ARM64_X14:
4062306a36Sopenharmony_ci		return "x14";
4162306a36Sopenharmony_ci	case PERF_REG_ARM64_X15:
4262306a36Sopenharmony_ci		return "x15";
4362306a36Sopenharmony_ci	case PERF_REG_ARM64_X16:
4462306a36Sopenharmony_ci		return "x16";
4562306a36Sopenharmony_ci	case PERF_REG_ARM64_X17:
4662306a36Sopenharmony_ci		return "x17";
4762306a36Sopenharmony_ci	case PERF_REG_ARM64_X18:
4862306a36Sopenharmony_ci		return "x18";
4962306a36Sopenharmony_ci	case PERF_REG_ARM64_X19:
5062306a36Sopenharmony_ci		return "x19";
5162306a36Sopenharmony_ci	case PERF_REG_ARM64_X20:
5262306a36Sopenharmony_ci		return "x20";
5362306a36Sopenharmony_ci	case PERF_REG_ARM64_X21:
5462306a36Sopenharmony_ci		return "x21";
5562306a36Sopenharmony_ci	case PERF_REG_ARM64_X22:
5662306a36Sopenharmony_ci		return "x22";
5762306a36Sopenharmony_ci	case PERF_REG_ARM64_X23:
5862306a36Sopenharmony_ci		return "x23";
5962306a36Sopenharmony_ci	case PERF_REG_ARM64_X24:
6062306a36Sopenharmony_ci		return "x24";
6162306a36Sopenharmony_ci	case PERF_REG_ARM64_X25:
6262306a36Sopenharmony_ci		return "x25";
6362306a36Sopenharmony_ci	case PERF_REG_ARM64_X26:
6462306a36Sopenharmony_ci		return "x26";
6562306a36Sopenharmony_ci	case PERF_REG_ARM64_X27:
6662306a36Sopenharmony_ci		return "x27";
6762306a36Sopenharmony_ci	case PERF_REG_ARM64_X28:
6862306a36Sopenharmony_ci		return "x28";
6962306a36Sopenharmony_ci	case PERF_REG_ARM64_X29:
7062306a36Sopenharmony_ci		return "x29";
7162306a36Sopenharmony_ci	case PERF_REG_ARM64_SP:
7262306a36Sopenharmony_ci		return "sp";
7362306a36Sopenharmony_ci	case PERF_REG_ARM64_LR:
7462306a36Sopenharmony_ci		return "lr";
7562306a36Sopenharmony_ci	case PERF_REG_ARM64_PC:
7662306a36Sopenharmony_ci		return "pc";
7762306a36Sopenharmony_ci	case PERF_REG_ARM64_VG:
7862306a36Sopenharmony_ci		return "vg";
7962306a36Sopenharmony_ci	default:
8062306a36Sopenharmony_ci		return NULL;
8162306a36Sopenharmony_ci	}
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci	return NULL;
8462306a36Sopenharmony_ci}
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ciuint64_t __perf_reg_ip_arm64(void)
8762306a36Sopenharmony_ci{
8862306a36Sopenharmony_ci	return PERF_REG_ARM64_PC;
8962306a36Sopenharmony_ci}
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ciuint64_t __perf_reg_sp_arm64(void)
9262306a36Sopenharmony_ci{
9362306a36Sopenharmony_ci	return PERF_REG_ARM64_SP;
9462306a36Sopenharmony_ci}
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci#endif
97