llvm-project/libunwind
Oliver Stannard 1224c809f1 [libunwind][ARM] Add support for Thumb1 targets
The Thumb1 version of the code for saving and restoring the unwind
context has a few bugs which prevent it from working:
* It uses the STM instruction without writeback, which is not valid for Thumb1
  (It was introduced in Thumb2).
* It only saves/restores the low 8 registers, the sp and the lr, so if a
  program uses r8-r12 they will not be correctly restored when throwing an
  exception.

There aren't currently any Thumb1 build-bots to test this, but we have
been successfully running the libc++abi and libc++ test suites on
Cortex-M0 models, as well as some other test suites that use C++
exceptions on a downstream version of libunwind with this patch applied.

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

llvm-svn: 276625
2016-07-25 09:21:56 +00:00
..
cmake Replace cmake check for printf with a check for fopen. 2015-12-10 00:47:08 +00:00
include [libunwind] Properly align _Unwind_Exception. 2016-07-20 23:56:42 +00:00
src [libunwind][ARM] Add support for Thumb1 targets 2016-07-25 09:21:56 +00:00
test [libunwind] Properly align _Unwind_Exception. 2016-07-20 23:56:42 +00:00
.arcconfig Update .arcconfig 2016-07-20 23:56:17 +00:00
.clang-format unwind: add a .clang-format 2015-05-07 19:50:18 +00:00
CMakeLists.txt [libunwind][ARM] Improve unwinder stack usage - Make WMMX support optional 2016-07-07 10:55:39 +00:00