[libunwind][mips] Guard accumulator registers
authorStefan Maksimovic <stefan.maksimovic@mips.com>
Thu, 16 Aug 2018 08:49:50 +0000 (08:49 +0000)
committerStefan Maksimovic <stefan.maksimovic@mips.com>
Thu, 16 Aug 2018 08:49:50 +0000 (08:49 +0000)
Mipsr6 does not possess HI and LO accumulator registers, adjust validRegister functions to respect that.

Differential Revision: https://reviews.llvm.org/D50244

llvm-svn: 339849

libunwind/src/Registers.hpp

index b20664a..63a50d4 100644 (file)
@@ -2759,10 +2759,12 @@ inline bool Registers_mips_o32::validRegister(int regNum) const {
     return false;
   if (regNum <= UNW_MIPS_R31)
     return true;
+#if __mips_isa_rev != 6
   if (regNum == UNW_MIPS_HI)
     return true;
   if (regNum == UNW_MIPS_LO)
     return true;
+#endif
 #if defined(__mips_hard_float) && __mips_fpr == 32
   if (regNum >= UNW_MIPS_F0 && regNum <= UNW_MIPS_F31)
     return true;
@@ -3073,10 +3075,12 @@ inline bool Registers_mips_newabi::validRegister(int regNum) const {
     return false;
   if (regNum <= UNW_MIPS_R31)
     return true;
+#if __mips_isa_rev != 6
   if (regNum == UNW_MIPS_HI)
     return true;
   if (regNum == UNW_MIPS_LO)
     return true;
+#endif
   // FIXME: Hard float, DSP accumulator registers, MSA registers
   return false;
 }