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/s390/include/uapi/asm/perf_regs.h"
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciconst char *__perf_reg_name_s390(int id)
962306a36Sopenharmony_ci{
1062306a36Sopenharmony_ci	switch (id) {
1162306a36Sopenharmony_ci	case PERF_REG_S390_R0:
1262306a36Sopenharmony_ci		return "R0";
1362306a36Sopenharmony_ci	case PERF_REG_S390_R1:
1462306a36Sopenharmony_ci		return "R1";
1562306a36Sopenharmony_ci	case PERF_REG_S390_R2:
1662306a36Sopenharmony_ci		return "R2";
1762306a36Sopenharmony_ci	case PERF_REG_S390_R3:
1862306a36Sopenharmony_ci		return "R3";
1962306a36Sopenharmony_ci	case PERF_REG_S390_R4:
2062306a36Sopenharmony_ci		return "R4";
2162306a36Sopenharmony_ci	case PERF_REG_S390_R5:
2262306a36Sopenharmony_ci		return "R5";
2362306a36Sopenharmony_ci	case PERF_REG_S390_R6:
2462306a36Sopenharmony_ci		return "R6";
2562306a36Sopenharmony_ci	case PERF_REG_S390_R7:
2662306a36Sopenharmony_ci		return "R7";
2762306a36Sopenharmony_ci	case PERF_REG_S390_R8:
2862306a36Sopenharmony_ci		return "R8";
2962306a36Sopenharmony_ci	case PERF_REG_S390_R9:
3062306a36Sopenharmony_ci		return "R9";
3162306a36Sopenharmony_ci	case PERF_REG_S390_R10:
3262306a36Sopenharmony_ci		return "R10";
3362306a36Sopenharmony_ci	case PERF_REG_S390_R11:
3462306a36Sopenharmony_ci		return "R11";
3562306a36Sopenharmony_ci	case PERF_REG_S390_R12:
3662306a36Sopenharmony_ci		return "R12";
3762306a36Sopenharmony_ci	case PERF_REG_S390_R13:
3862306a36Sopenharmony_ci		return "R13";
3962306a36Sopenharmony_ci	case PERF_REG_S390_R14:
4062306a36Sopenharmony_ci		return "R14";
4162306a36Sopenharmony_ci	case PERF_REG_S390_R15:
4262306a36Sopenharmony_ci		return "R15";
4362306a36Sopenharmony_ci	case PERF_REG_S390_FP0:
4462306a36Sopenharmony_ci		return "FP0";
4562306a36Sopenharmony_ci	case PERF_REG_S390_FP1:
4662306a36Sopenharmony_ci		return "FP1";
4762306a36Sopenharmony_ci	case PERF_REG_S390_FP2:
4862306a36Sopenharmony_ci		return "FP2";
4962306a36Sopenharmony_ci	case PERF_REG_S390_FP3:
5062306a36Sopenharmony_ci		return "FP3";
5162306a36Sopenharmony_ci	case PERF_REG_S390_FP4:
5262306a36Sopenharmony_ci		return "FP4";
5362306a36Sopenharmony_ci	case PERF_REG_S390_FP5:
5462306a36Sopenharmony_ci		return "FP5";
5562306a36Sopenharmony_ci	case PERF_REG_S390_FP6:
5662306a36Sopenharmony_ci		return "FP6";
5762306a36Sopenharmony_ci	case PERF_REG_S390_FP7:
5862306a36Sopenharmony_ci		return "FP7";
5962306a36Sopenharmony_ci	case PERF_REG_S390_FP8:
6062306a36Sopenharmony_ci		return "FP8";
6162306a36Sopenharmony_ci	case PERF_REG_S390_FP9:
6262306a36Sopenharmony_ci		return "FP9";
6362306a36Sopenharmony_ci	case PERF_REG_S390_FP10:
6462306a36Sopenharmony_ci		return "FP10";
6562306a36Sopenharmony_ci	case PERF_REG_S390_FP11:
6662306a36Sopenharmony_ci		return "FP11";
6762306a36Sopenharmony_ci	case PERF_REG_S390_FP12:
6862306a36Sopenharmony_ci		return "FP12";
6962306a36Sopenharmony_ci	case PERF_REG_S390_FP13:
7062306a36Sopenharmony_ci		return "FP13";
7162306a36Sopenharmony_ci	case PERF_REG_S390_FP14:
7262306a36Sopenharmony_ci		return "FP14";
7362306a36Sopenharmony_ci	case PERF_REG_S390_FP15:
7462306a36Sopenharmony_ci		return "FP15";
7562306a36Sopenharmony_ci	case PERF_REG_S390_MASK:
7662306a36Sopenharmony_ci		return "MASK";
7762306a36Sopenharmony_ci	case PERF_REG_S390_PC:
7862306a36Sopenharmony_ci		return "PC";
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_s390(void)
8762306a36Sopenharmony_ci{
8862306a36Sopenharmony_ci	return PERF_REG_S390_PC;
8962306a36Sopenharmony_ci}
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ciuint64_t __perf_reg_sp_s390(void)
9262306a36Sopenharmony_ci{
9362306a36Sopenharmony_ci	return PERF_REG_S390_R15;
9462306a36Sopenharmony_ci}
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci#endif
97