This revision was automatically updated to reflect the committed changes.
Closed by commit rL332414: [libunwind][MIPS] Support MIPS floating-point
registers for hard-float ABIs. (authored by jhb, committed by ).
Herald added a subscriber: llvm-commits.
Repository:
rL LLVM
https://reviews.llvm.
sdardis accepted this revision.
sdardis added a comment.
This revision is now accepted and ready to land.
Herald added a subscriber: chrib.
Sorry for the delay.
LGTM.
Repository:
rUNW libunwind
https://reviews.llvm.org/D41968
___
cfe-commits mai
bsdjhb added a comment.
Ping @sdardis @compnerd
Repository:
rUNW libunwind
https://reviews.llvm.org/D41968
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
bsdjhb added a comment.
@sdardis ping. I think the approach I've used for O32 is probably the right
one in that it matches what DWARF expects (DWARF doesn't treat the 32-bit
floating point registers as pairs but as individual registers). I think the
question is if I O32 with 32-bit FP registe
bsdjhb marked 2 inline comments as done.
bsdjhb added a comment.
This version follows the suggestion I made earlier of treating 32-bit floating
point registers as a "plain" register for O32 rather than a floating-point
register. It seems to work for me though for O32 I've only tested with 32-bi
bsdjhb updated this revision to Diff 137085.
bsdjhb added a comment.
- Add a comment about using a single FP layout for O32.
- Treat 32-bit floating point registers on O32 as plain registers.
Repository:
rUNW libunwind
https://reviews.llvm.org/D41968
Files:
include/__libunwind_config.h
i
bsdjhb updated this revision to Diff 136164.
bsdjhb added a comment.
Herald added a subscriber: christof.
- Rebase after N32 commit.
- Use ldc1/sdc1 rather than l.d and s.d.
Repository:
rUNW libunwind
https://reviews.llvm.org/D41968
Files:
include/__libunwind_config.h
include/libunwind.h
bsdjhb added a comment.
Hmmm, so I was somewhat mistaken as DwarfInstructions.hpp::stepWithDwarf() does
use the Register class's setFloatRegister(), however, it assumes that the
floating point register is always a double
(DwarfInstructions.hpp::getSavedFloatRegister() uses AddressSpace::getDoub
bsdjhb added a comment.
After thinking about this some more, I need to rework this a bit. The choice
of how to expose the floating point registers via getFloatingPointRegister /
setFloatingPointRegister only affects consumers of the libunwind
unw_get_fpreg/unw_set_fpreg. I think a bigger fact
sdardis added a reviewer: compnerd.
sdardis added a comment.
I am not sure what the answer is. There's a slightly different issue in that
returning the contents of a floating point register on MIPS and expecting it to
be a double is not necessarily correct. For a 64bit FPU, the result of
lwc1/m
bsdjhb added inline comments.
Comment at: src/Registers.hpp:2659
+ uint32_t _padding;
+ double _floats[32];
+#endif
I chose to always use double here to avoid having different context sizes for
the 32-bit vs 64-bit FPR cases.
https://reviews.llvm.org/D41968
bsdjhb created this revision.
bsdjhb added a reviewer: sdardis.
Herald added a subscriber: arichardson.
For newabi this is fairly simple as we just save/restore the 32
floating-point registers as doubles. For O32 MIPS provides a variety
of floating-point ABIs. For O32 MIPS with 64-bit floating-p
12 matches
Mail list logo