605f03260ce43ec564cd0ec80ea21514e82eeeb3 |
|
29-Aug-2014 |
Dan Albert <danalbert@google.com> |
Make _Unwind_Backtrace() work on ARM. Summary: Since the personality functions do the actual unwinding on ARM, and will also stop unwinding when they encounter a handler, we invoke _Unwind_VRS_Interpret() directly form _Unwind_Backtrace(). To simplify, the logic for decoding an EHT is moved out of unwindOneFrame() and into its own function, decode_eht_entry(). Unlike unwindOneFrame(), which could only handle ARM's compact personality function entries (section 6.3) decode_eht_entry() can handle the generic entries (section 6.2). Reviewers: jroelofs Reviewed By: jroelofs Subscribers: piman, aemerson, cfe-commits Differential Revision: http://reviews.llvm.org/D5112 git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@216730 91177308-0d34-0410-b5e6-96231b3b80d8 (cherry picked from commit 14690900fcd84fbf82767890f4d7a5673654fe38) Bug: 16874447 Change-Id: Ia52c7e2a0b7167863fea29cbf4b2d3c5d58053b2
/external/libcxxabi/include/unwind.h
|
e45805f0d3f8dafef1297cc7dc49e610713f023b |
|
03-Jul-2014 |
Dan Albert <danalbert@google.com> |
Merge to upstream r212232. Includes ARM EHABI unwinder. Change-Id: I7e40c761abc0a4c67f11b8e9f85efefa6ba292ba
/external/libcxxabi/include/unwind.h
|
c2e9313c38fdd56ecd50d7cd21e8a14d8f16a1b7 |
|
23-Apr-2014 |
Dan Albert <danalbert@google.com> |
Fixes incorrect #ifs for SJ/LJ exceptions The was working because, given __APPLE__, _LIBUNWIND_BUILD_SJLJ_APIS was set to __arm__, but other ARM targets not using SJ/LJ will fail to compile. Change-Id: Id774f1c6aa20661e289dbe18145532dbba6791d7 git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@206941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxxabi/include/unwind.h
|
e085735cbedc82b1064f05ff796e32e906a95036 |
|
08-Apr-2014 |
Dan Albert <danalbert@google.com> |
Gets libcxxabi building for Android Fixes a few configuration issues in libcxxabi and adds an Android makefile. Change-Id: I247372d87caabe0310bedc4540b68ab2ed1986c1
/external/libcxxabi/include/unwind.h
|
29180116e559ead2486c5cf6b4fefe8a6f6443fc |
|
01-Nov-2013 |
Nick Kledzik <kledzik@apple.com> |
Rename LIBUNWIND_AVAIL to LIBUNWIND_UNAVAIL so as to not conflict with other (different) LIBUNWIND_AVAIL define git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@193839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxxabi/include/unwind.h
|
839f7f23c0a652e2b799345fc3112ae0c5a03098 |
|
17-Oct-2013 |
Saleem Abdulrasool <compnerd@compnerd.org> |
unwinder: conditionalise availability __attribute__ (( unavailable )) is for Apple specific builds. Create a macro to conditionalise the usage of the macro. This is to aid in porting the unwinder to other platforms. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxxabi/include/unwind.h
|
b78da9875b6e35187b5d584746c78faaf3230a3d |
|
07-Oct-2013 |
Nick Kledzik <kledzik@apple.com> |
libcxxabi contains the runtime support for C++. But, as some folks have realized, it is not complete. It relies on some _Unwind_* functions to be supplied by the OS. That means it cannot be ported to platforms that don’t already have an unwinder. Years ago Apple wrote its own unwinder for MacOSX and iOS. To make libcxxabi complete, Apple has decided the source code for its unwinder can be contributed to the open source LLVM libcxxabi project, with a dual licensed under LLVM and MIT license. So, I’ve spent some time cleaning up the sources to make them conform with LLVM style and to conditionalize the sources in a way that should make it easier to port to other platforms. The sources are in a separate "Unwind" directory under "src" in libcxxabi. Background: Most architectures now use "zero cost" exceptions for C++. The zero cost means there are no extra instructions executed if no exceptions are thrown. But if an exception is thrown, the runtime must consult side tables and figure out how to restore registers and "unwind" from the current stack frame to the catch clause. That ability to modify the stack frames and cause the thread to resume in a catch clause with all registers restored properly is the main purpose of the unwinder. This unwinder has two levels of API. The high level APIs are the _Unwind_* functions which the cxa_* exception functions in libcxxabi require. The low level APIs are the unw_* functions which are an interface defined by the the old HP libunwind project (which shares no code with this unwinder). git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192136 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxxabi/include/unwind.h
|