1*2874c5fdSThomas Gleixner // SPDX-License-Identifier: GPL-2.0-or-later 2c4522469SChandan Kumar /* 3c4522469SChandan Kumar * Copyright 2016 Chandan Kumar, IBM Corporation. 4c4522469SChandan Kumar */ 5c4522469SChandan Kumar 6c4522469SChandan Kumar #include <errno.h> 7c4522469SChandan Kumar #include <libunwind.h> 8c4522469SChandan Kumar #include <asm/perf_regs.h> 9c4522469SChandan Kumar #include "../../util/unwind.h" 10c4522469SChandan Kumar #include "../../util/debug.h" 11c4522469SChandan Kumar libunwind__arch_reg_id(int regnum)12c4522469SChandan Kumarint libunwind__arch_reg_id(int regnum) 13c4522469SChandan Kumar { 14c4522469SChandan Kumar switch (regnum) { 15c4522469SChandan Kumar case UNW_PPC64_R0: 16c4522469SChandan Kumar return PERF_REG_POWERPC_R0; 17c4522469SChandan Kumar case UNW_PPC64_R1: 18c4522469SChandan Kumar return PERF_REG_POWERPC_R1; 19c4522469SChandan Kumar case UNW_PPC64_R2: 20c4522469SChandan Kumar return PERF_REG_POWERPC_R2; 21c4522469SChandan Kumar case UNW_PPC64_R3: 22c4522469SChandan Kumar return PERF_REG_POWERPC_R3; 23c4522469SChandan Kumar case UNW_PPC64_R4: 24c4522469SChandan Kumar return PERF_REG_POWERPC_R4; 25c4522469SChandan Kumar case UNW_PPC64_R5: 26c4522469SChandan Kumar return PERF_REG_POWERPC_R5; 27c4522469SChandan Kumar case UNW_PPC64_R6: 28c4522469SChandan Kumar return PERF_REG_POWERPC_R6; 29c4522469SChandan Kumar case UNW_PPC64_R7: 30c4522469SChandan Kumar return PERF_REG_POWERPC_R7; 31c4522469SChandan Kumar case UNW_PPC64_R8: 32c4522469SChandan Kumar return PERF_REG_POWERPC_R8; 33c4522469SChandan Kumar case UNW_PPC64_R9: 34c4522469SChandan Kumar return PERF_REG_POWERPC_R9; 35c4522469SChandan Kumar case UNW_PPC64_R10: 36c4522469SChandan Kumar return PERF_REG_POWERPC_R10; 37c4522469SChandan Kumar case UNW_PPC64_R11: 38c4522469SChandan Kumar return PERF_REG_POWERPC_R11; 39c4522469SChandan Kumar case UNW_PPC64_R12: 40c4522469SChandan Kumar return PERF_REG_POWERPC_R12; 41c4522469SChandan Kumar case UNW_PPC64_R13: 42c4522469SChandan Kumar return PERF_REG_POWERPC_R13; 43c4522469SChandan Kumar case UNW_PPC64_R14: 44c4522469SChandan Kumar return PERF_REG_POWERPC_R14; 45c4522469SChandan Kumar case UNW_PPC64_R15: 46c4522469SChandan Kumar return PERF_REG_POWERPC_R15; 47c4522469SChandan Kumar case UNW_PPC64_R16: 48c4522469SChandan Kumar return PERF_REG_POWERPC_R16; 49c4522469SChandan Kumar case UNW_PPC64_R17: 50c4522469SChandan Kumar return PERF_REG_POWERPC_R17; 51c4522469SChandan Kumar case UNW_PPC64_R18: 52c4522469SChandan Kumar return PERF_REG_POWERPC_R18; 53c4522469SChandan Kumar case UNW_PPC64_R19: 54c4522469SChandan Kumar return PERF_REG_POWERPC_R19; 55c4522469SChandan Kumar case UNW_PPC64_R20: 56c4522469SChandan Kumar return PERF_REG_POWERPC_R20; 57c4522469SChandan Kumar case UNW_PPC64_R21: 58c4522469SChandan Kumar return PERF_REG_POWERPC_R21; 59c4522469SChandan Kumar case UNW_PPC64_R22: 60c4522469SChandan Kumar return PERF_REG_POWERPC_R22; 61c4522469SChandan Kumar case UNW_PPC64_R23: 62c4522469SChandan Kumar return PERF_REG_POWERPC_R23; 63c4522469SChandan Kumar case UNW_PPC64_R24: 64c4522469SChandan Kumar return PERF_REG_POWERPC_R24; 65c4522469SChandan Kumar case UNW_PPC64_R25: 66c4522469SChandan Kumar return PERF_REG_POWERPC_R25; 67c4522469SChandan Kumar case UNW_PPC64_R26: 68c4522469SChandan Kumar return PERF_REG_POWERPC_R26; 69c4522469SChandan Kumar case UNW_PPC64_R27: 70c4522469SChandan Kumar return PERF_REG_POWERPC_R27; 71c4522469SChandan Kumar case UNW_PPC64_R28: 72c4522469SChandan Kumar return PERF_REG_POWERPC_R28; 73c4522469SChandan Kumar case UNW_PPC64_R29: 74c4522469SChandan Kumar return PERF_REG_POWERPC_R29; 75c4522469SChandan Kumar case UNW_PPC64_R30: 76c4522469SChandan Kumar return PERF_REG_POWERPC_R30; 77c4522469SChandan Kumar case UNW_PPC64_R31: 78c4522469SChandan Kumar return PERF_REG_POWERPC_R31; 79c4522469SChandan Kumar case UNW_PPC64_LR: 80c4522469SChandan Kumar return PERF_REG_POWERPC_LINK; 81c4522469SChandan Kumar case UNW_PPC64_CTR: 82c4522469SChandan Kumar return PERF_REG_POWERPC_CTR; 83c4522469SChandan Kumar case UNW_PPC64_XER: 84c4522469SChandan Kumar return PERF_REG_POWERPC_XER; 85c4522469SChandan Kumar case UNW_PPC64_NIP: 86c4522469SChandan Kumar return PERF_REG_POWERPC_NIP; 87c4522469SChandan Kumar default: 88c4522469SChandan Kumar pr_err("unwind: invalid reg id %d\n", regnum); 89c4522469SChandan Kumar return -EINVAL; 90c4522469SChandan Kumar } 91c4522469SChandan Kumar return -EINVAL; 92c4522469SChandan Kumar } 93