llvm-project/libunwind/include
Saleem Abdulrasool b64d3273a3 X86: swap EBP, ESP on !APPLE
Restore the `libunwind.h` enumeration values back to the inverted
values.  This diverges from the DWARF definition of the register values.
However, this allows our header to be compatible with other unwind
implementations (e.g. HP, GNU Savannah, GCC).

The register IDs are only swapped in the header and need to be unswapped
when accessing the unwind register file.  The flipped EBP and ESP only
applies on non-Apple x86 targets.

When optimizations were enabled, EBP and ESP would no longer be
equivalent.  As a result, the incorrect access on Linux would manifest
as a failure to unwind the stack.  We can now unwind the stack with and
without FPO on Linux x86.

Resolves PR30879!

llvm-svn: 292723
2017-01-21 16:22:59 +00:00
..
mach-o libunwind: Use conventional DWARF capitalization in comments and errors 2016-07-19 17:15:50 +00:00
__libunwind_config.h libunwind: limit stack usage in unwind cursor 2016-07-20 15:19:09 +00:00
libunwind.h X86: swap EBP, ESP on !APPLE 2017-01-21 16:22:59 +00:00
unwind.h Add missing _US_ACTION_MASK constant to unwind.h 2016-09-05 18:01:13 +00:00