summaryrefslogtreecommitdiff
path: root/src/coredump/_UCD_access_reg_linux.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/coredump/_UCD_access_reg_linux.c')
-rw-r--r--src/coredump/_UCD_access_reg_linux.c37
1 files changed, 36 insertions, 1 deletions
diff --git a/src/coredump/_UCD_access_reg_linux.c b/src/coredump/_UCD_access_reg_linux.c
index c48f5c9b..9fd7f7d4 100644
--- a/src/coredump/_UCD_access_reg_linux.c
+++ b/src/coredump/_UCD_access_reg_linux.c
@@ -43,7 +43,42 @@ _UCD_access_reg (unw_addr_space_t as,
if (regnum < 0 || regnum >= 16)
goto badreg;
#else
-#if defined(UNW_TARGET_X86)
+#if defined(UNW_TARGET_MIPS)
+ static const uint8_t remap_regs[] =
+ {
+ [UNW_MIPS_R0] = EF_REG0,
+ [UNW_MIPS_R1] = EF_REG1,
+ [UNW_MIPS_R2] = EF_REG2,
+ [UNW_MIPS_R3] = EF_REG3,
+ [UNW_MIPS_R4] = EF_REG4,
+ [UNW_MIPS_R5] = EF_REG5,
+ [UNW_MIPS_R6] = EF_REG6,
+ [UNW_MIPS_R7] = EF_REG7,
+ [UNW_MIPS_R8] = EF_REG8,
+ [UNW_MIPS_R9] = EF_REG9,
+ [UNW_MIPS_R10] = EF_REG10,
+ [UNW_MIPS_R11] = EF_REG11,
+ [UNW_MIPS_R12] = EF_REG12,
+ [UNW_MIPS_R13] = EF_REG13,
+ [UNW_MIPS_R14] = EF_REG14,
+ [UNW_MIPS_R15] = EF_REG15,
+ [UNW_MIPS_R16] = EF_REG16,
+ [UNW_MIPS_R17] = EF_REG17,
+ [UNW_MIPS_R18] = EF_REG18,
+ [UNW_MIPS_R19] = EF_REG19,
+ [UNW_MIPS_R20] = EF_REG20,
+ [UNW_MIPS_R21] = EF_REG21,
+ [UNW_MIPS_R22] = EF_REG22,
+ [UNW_MIPS_R23] = EF_REG23,
+ [UNW_MIPS_R24] = EF_REG24,
+ [UNW_MIPS_R25] = EF_REG25,
+ [UNW_MIPS_R28] = EF_REG28,
+ [UNW_MIPS_R29] = EF_REG29,
+ [UNW_MIPS_R30] = EF_REG30,
+ [UNW_MIPS_R31] = EF_REG31,
+ [UNW_MIPS_PC] = EF_CP0_EPC,
+ };
+#elif defined(UNW_TARGET_X86)
static const uint8_t remap_regs[] =
{
/* names from libunwind-x86.h */