joerg
4e5ca533a9
The semantics of DW_CFA_GNU_args_size have changed subtile over the
...
years. Adopt the new convention that it is call-site specific and that
it should be applied before moving the IP by personality routines, but
not during normal unwinding. Further discussion can be found in
LLVM's phabricator review D38680.
2018-07-17 19:01:16 +00:00
joerg
364f0c0b54
Remove redundant setIP call overwritten a few lines later.
2018-07-17 18:58:58 +00:00
christos
4fac11b8ba
Avoid negative shift.
2017-11-02 16:09:33 +00:00
joerg
e5b91c2885
GCC 5.3 likes to emit unwind data with float registers, i.e. register
...
halfs. Compensate.
2017-07-13 15:13:19 +00:00
matt
71577e7b2d
Use ARM_ENTRY since these aren't thumb compatible.
2015-05-25 18:41:08 +00:00
joerg
72523275ec
Provide _Unwind_Find_FDE for libgcc_s compatibility.
2015-02-17 21:02:33 +00:00
joerg
1c5d00e7d3
Force FPU support for Clang, don't disable IAS completely.
2015-01-29 20:45:16 +00:00
joerg
e9d4ea8b6a
Fix binary search when search value is in the last block, but not equal
...
to the start of the range. PR 49444.
2015-01-29 20:05:56 +00:00
christos
035b9a6c6d
prefer our own unwind.h
2014-10-23 17:51:22 +00:00
joerg
5e9701e670
Introduce a separate bit mask for the return address. Use it on HPPA.
2014-09-27 12:08:46 +00:00
matt
a23afddde6
Add OR1K support
2014-09-03 19:27:21 +00:00
matt
547b3a3b01
Changes to existing files to enable building AARCH64 userland.
...
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.
2014-08-10 05:56:36 +00:00
joerg
3d95c8af33
Fix braino in last commit and free the node iff the insert failed.
2014-07-20 14:40:58 +00:00
joerg
827ab89a76
Use static_cast for rb_tree_insert_node void * return value.
2014-07-14 11:36:39 +00:00
joerg
1aed1443e6
IAS is clang specific.
2014-06-30 20:42:31 +00:00
joerg
182cb3ee17
.fpu is not handled correctly by LLVM's assembler parser, so use GAS for
...
now.
2014-06-28 20:18:15 +00:00
matt
a50cc6d607
Split COPTS.libunwind.cxx into multiple lines.
2014-06-13 21:31:20 +00:00
mrg
26f35dd6b6
remove the build support for GCC 4.1, and any hacks i found for it.
...
there could still be more -- i only looked for lines matching
both "HAVE_GCC" and "4" as words (grep -w.)
2014-06-13 01:17:45 +00:00
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