[PATCH] D57001: [libunwind] Don't define unw_fpreg_t to uint64_t for __ARM_DWARF_EH__

Martin Storsjö via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Jan 27 14:27:26 PST 2019


mstorsjo updated this revision to Diff 183776.
mstorsjo added a comment.

I had to update the signature of assembly functions which have got the concrete type of unw_fpreg_t in the mangled name. I chose to use void* for these functions, as I believe the same functions also are used for ARM EHABI, to avoid the need for different mangled versions of the assembly functions depending on exception handling mechanism.

I crafted a testcase which uses dwarf exceptions on arm, and this patch fixed restoring float registers in a case which previously was broken. So that confirms what the compiler warning tried to say.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D57001/new/

https://reviews.llvm.org/D57001

Files:
  include/libunwind.h
  src/Registers.hpp
  src/UnwindRegistersRestore.S
  src/UnwindRegistersSave.S

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D57001.183776.patch
Type: text/x-patch
Size: 4651 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190127/960e5268/attachment.bin>


More information about the cfe-commits mailing list