sdardis added a comment.

I have tested this on one of my machines after removing the checks for soft 
float (my debian install doesn't have the necessary headers for soft-float). 
With the patch you've pointed out and my inline comments addressed (bar the HI 
/ LO register comments), it passes the supplied test suite.

Can you change the checks for ABI from '_MIPS_SIM == $ABI' to 'defined($ABI)'? 
I mistakenly assumed they were always defined and that _MIPS_SIM was defined to 
be one of them but they are only defined when that particular ABI is being used.



================
Comment at: include/libunwind.h:584
+  UNW_MIPS_R31 = 31,
+};
+
----------------
Requires HI / LO registers.


================
Comment at: src/Registers.hpp:2014
+    uint32_t __pc;
+  };
+
----------------
This appears to be missing the HI / LO registers.


================
Comment at: src/Registers.hpp:2039
+    return true;
+  // FIXME: Hard float
+  return false;
----------------
FIXME: Hard float, DSP accumulator registers, MSA registers


================
Comment at: src/UnwindRegistersSave.S:120-122
+  jr   $31
+  # fp (in delay slot)
+  sw    $30, (4 * 30)($4)
----------------
Move the last store out of the delay slot and put 'or $2, $zero, $zero' in the 
delay slot to return UNW_ESUCCESS.


================
Comment at: src/UnwindRegistersSave.S:155-157
+  jr   $31
+  # fp (in delay slot)
+  sd    $30, (8 * 30)($4)
----------------
Move the last store out of the delay slot and put 'or $2, $zero, $zero' in the 
delay slot to return UNW_ESUCCESS.


https://reviews.llvm.org/D38110



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to