forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.2 KiB
92 lines
2.2 KiB
// 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; |
|
}
|
|
|