// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright 2016 Chandan Kumar, IBM Corporation. */ #include <errno.h> #include <libunwind.h> #include <asm/perf_regs.h> #include "../../util/unwind.h" #include "../../util/debug.h" int libunwind__arch_reg_id(int regnum) { switch (regnum) { case UNW_PPC64_R0: return PERF_REG_POWERPC_R0; case UNW_PPC64_R1: return PERF_REG_POWERPC_R1; case UNW_PPC64_R2: return PERF_REG_POWERPC_R2; case UNW_PPC64_R3: return PERF_REG_POWERPC_R3; case UNW_PPC64_R4: return PERF_REG_POWERPC_R4; case UNW_PPC64_R5: return PERF_REG_POWERPC_R5; case UNW_PPC64_R6: return PERF_REG_POWERPC_R6; case UNW_PPC64_R7: return PERF_REG_POWERPC_R7; case UNW_PPC64_R8: return PERF_REG_POWERPC_R8; case UNW_PPC64_R9: return PERF_REG_POWERPC_R9; case UNW_PPC64_R10: return PERF_REG_POWERPC_R10; case UNW_PPC64_R11: return PERF_REG_POWERPC_R11; case UNW_PPC64_R12: return PERF_REG_POWERPC_R12; case UNW_PPC64_R13: return PERF_REG_POWERPC_R13; case UNW_PPC64_R14: return PERF_REG_POWERPC_R14; case UNW_PPC64_R15: return PERF_REG_POWERPC_R15; case UNW_PPC64_R16: return PERF_REG_POWERPC_R16; case UNW_PPC64_R17: return PERF_REG_POWERPC_R17; case UNW_PPC64_R18: return PERF_REG_POWERPC_R18; case UNW_PPC64_R19: return PERF_REG_POWERPC_R19; case UNW_PPC64_R20: return PERF_REG_POWERPC_R20; case UNW_PPC64_R21: return PERF_REG_POWERPC_R21; case UNW_PPC64_R22: return PERF_REG_POWERPC_R22; case UNW_PPC64_R23: return PERF_REG_POWERPC_R23; case UNW_PPC64_R24: return PERF_REG_POWERPC_R24; case UNW_PPC64_R25: return PERF_REG_POWERPC_R25; case UNW_PPC64_R26: return PERF_REG_POWERPC_R26; case UNW_PPC64_R27: return PERF_REG_POWERPC_R27; case UNW_PPC64_R28: return PERF_REG_POWERPC_R28; case UNW_PPC64_R29: return PERF_REG_POWERPC_R29; case UNW_PPC64_R30: return PERF_REG_POWERPC_R30; case UNW_PPC64_R31: return PERF_REG_POWERPC_R31; case UNW_PPC64_LR: return PERF_REG_POWERPC_LINK; case UNW_PPC64_CTR: return PERF_REG_POWERPC_CTR; case UNW_PPC64_XER: return PERF_REG_POWERPC_XER; case UNW_PPC64_NIP: return PERF_REG_POWERPC_NIP; default: pr_err("unwind: invalid reg id %d\n", regnum); return -EINVAL; } return -EINVAL; }