Commit Graph

31 Commits

Author SHA1 Message Date
joerg 0ed4c83ba9 Lazy VFP processing works a lot better if the functions contain a return
instruction.
2014-05-14 22:13:36 +00:00
joerg 2f1b7695c4 Support DWARFish unwind for ARM. 2014-05-11 02:07:35 +00:00
joerg 7e3335542c Missing register validation check. 2014-05-03 23:19:56 +00:00
joerg 0c55f87954 GC unwind_info_size. 2014-04-28 13:39:23 +00:00
joerg d013f698cc Use the return address register from the CIE. Based on patch from Nick
Kledzik.
2014-04-26 23:17:38 +00:00
joerg 380ce570fd Add initial unwind support for MIPS and MIPS64. 2014-04-26 20:15:48 +00:00
joerg f76ae5ef4f Basic unwind support for HPPA. 2014-04-19 21:21:24 +00:00
joerg a997683cbb Add basic Alpha support to libunwind. 2014-04-15 18:40:34 +00:00
joerg 7209984597 Add initial unwind support for SPARC/SPARC64. 2014-04-15 11:44:26 +00:00
joerg 4b91d83710 Some architectures like SPARC need to apply a fixed offset to the return
address. Introduce such a constant.
2014-04-14 18:15:17 +00:00
joerg 44e617ea85 Move definition of what the native register layout is into
Registers.hpp.
2014-04-13 19:04:01 +00:00
joerg 8886a873b8 Support SH3 in our unwinder. 2014-04-02 22:34:29 +00:00
joerg 8d85521c7b SH3 uses unaligned data in the .eh_frame section, so use memcpy. 2014-04-02 22:22:37 +00:00
joerg dd0e21086c Save & restore FP registers. 2014-03-25 00:00:55 +00:00
joerg 0378fc4757 Add m68k support to our unwinder. 2014-03-24 21:25:03 +00:00
joerg 1fad0e91e1 Fix DW_CFA_GNU_args_size handling. The primary architecture using this
opcode is VAX. A function call pushes the number of arguments given onto
the stack and "ret" will pop it automatically. The FDE of the caller
contains the amount of stack space used for arguments (and possibly
extra padding), so unwinding has to compensate for this when "returning"
from a function. This is exactly the case when step() is done. The
existing handling in _Unwind_SetIP no longer makes sense.
2014-03-20 01:35:45 +00:00
joerg 9a7eb6d5aa Drop XXX, spell R14 as SP. 2014-03-19 21:15:45 +00:00
joerg 0498752769 Allow building with GCC 4.1 by providing <cstdint> 2014-03-19 16:46:23 +00:00
joerg c9aa4ad46c Add basic unwind support for VAX. PSW handling and stack pointer after
resume is still incomplete.
2014-03-18 13:08:15 +00:00
joerg a5e04a5e0f Kill one colon that shouldn't be. 2014-03-13 01:50:50 +00:00
joerg 0f0483b305 libstdc++ doesn't like me using <cstdint> without requesting C++11, so
just do so.
2014-03-13 00:56:41 +00:00
joerg d952896fa0 Add _Unwind_GetIPInfo for libstdc++. 2014-03-13 00:28:20 +00:00
joerg a0318c3f0f Pass down data_base just in case something actually tries to use it. 2014-03-12 22:50:59 +00:00
joerg a6d7909bce Add more const to make GCC happy. 2014-03-12 15:31:55 +00:00
joerg b77db904fb Add a dummy element as explicit padding for PPC32. Fix DWARF enumeration
to match the values created by GCC. Fix DWARFish -> index conversion.
2014-03-12 00:01:12 +00:00
joerg fb33a5654b Rename IP_PSEUDO_REG to RETURN_REG. Fix PPC value. Sort. 2014-03-11 23:57:42 +00:00
joerg 1b4a81d6d1 GC unused enum. 2014-03-11 23:55:11 +00:00
joerg 499c31d6cd 0 is a valid LSDA encoding and can be seen in statically linked
programs. Initialize lsdaEncoding to DW_EH_PE_omit and check for that
value to decide whether a value should be decoded.
2014-03-11 23:52:17 +00:00
matt a11fbefc31 Add support for non-EABI (DWARF) ARM exception handling. 2014-01-29 06:59:53 +00:00
joerg a060b1754e Fix typo. 2013-12-20 12:46:42 +00:00
joerg 3a53a9e14e Add a heavily modified version of Apple's libunwind as released under
MIT license in libc++abi. At the moment, only x86 support is tested.
2013-10-14 01:14:57 +00:00