History log of /external/libcxxabi/src/Unwind/Registers.hpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e45805f0d3f8dafef1297cc7dc49e610713f023b 03-Jul-2014 Dan Albert <danalbert@google.com> Merge to upstream r212232.

Includes ARM EHABI unwinder.

Change-Id: I7e40c761abc0a4c67f11b8e9f85efefa6ba292ba
/external/libcxxabi/src/Unwind/Registers.hpp
6b8852417f55cd373059531acae36fc3b052e88b 03-May-2014 Dan Albert <danalbert@google.com> Removes libstdc++ dependency from host builds

Change-Id: I00d2ab87bb8f34c2787afc4766d7413b2655bffe
/external/libcxxabi/src/Unwind/Registers.hpp
5ff06b0156f5820a87b4dd90bcd06f8ed41af8cc 18-Dec-2013 Nico Weber <nicolasweber@gmx.de> Add a first cut at a Registers_arm class, to be used for 32bit arm EHABI unwinding.



git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@197591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxxabi/src/Unwind/Registers.hpp
7a49616b36e1331a3666fc893963854a85e5832a 06-Dec-2013 Nico Weber <nicolasweber@gmx.de> Fix minor initialization bug in Registers_x86_64.

According to kledzik, this constructor isn't live code, so no functionality
change.



git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@196550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxxabi/src/Unwind/Registers.hpp
3dbb334d7ac5a00381bd9a37c1ca0e4f83a2b893 09-Oct-2013 Nick Kledzik <kledzik@apple.com> [unwind] add required #include

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxxabi/src/Unwind/Registers.hpp
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/src/Unwind/Registers.hpp