summaryrefslogtreecommitdiffstats
path: root/libcxxabi/src/Unwind
Commit message (Collapse)AuthorAgeFilesLines
...
* Support Cortex-m0Jonathan Roelofs2014-10-023-21/+70
| | | | | | | | | As the title says... also, fix all the ARM asm return sequences so that they work on processors without the BX instruction. http://reviews.llvm.org/D5314 llvm-svn: 218869
* ARM Unwind syntaxRenato Golin2014-09-112-6/+30
| | | | | | | | | | | This patch fixes the bad argument that GAS accepted but the IAS didn't, ie. {#0x20}, moving it to {0x20} which both accept. It also makes the ARMv7+ save/restore correct by using VFP instructions rather than old co-processor ones. Fixes PR20529. llvm-svn: 217585
* Implement post-review comments for r216730Jonathan Roelofs2014-09-091-2/+16
| | | | | | Feedback was 'this could use better comments'. llvm-svn: 217459
* Use correct __ARM_ARCH macroRenato Golin2014-09-072-2/+2
| | | | llvm-svn: 217341
* Make _Unwind_Backtrace() work on ARM.Dan Albert2014-08-293-23/+82
| | | | | | | | | | | | | | | | | | | | | | 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 llvm-svn: 216730
* Add baremetal ARM support to libcxxabi/libunwindJonathan Roelofs2014-08-211-2/+23
| | | | | | http://reviews.llvm.org/D4993 llvm-svn: 216202
* libcxxabi must link to dl if using bundled unwindJonathan Roelofs2014-08-181-0/+1
| | | | | | | Patch by Ismail Donmez http://reviews.llvm.org/D4953 llvm-svn: 215950
* Fix a copy-pasta in r214573Jonathan Roelofs2014-08-051-1/+0
| | | | llvm-svn: 214873
* [unwinder] Tell the assembler that functions are functions so that the ↵Jonathan Roelofs2014-08-011-0/+19
| | | | | | | | | | linker knows how to link them. This fixes an interworking problem when the unwinder/libcxxabi is built for Thumb. When unw_getcontext is not marked as a function, 'bl' is used for the branch instead of 'bx'. llvm-svn: 214573
* Fix for libc++abi when using -Wl,--as-needed.Dan Albert2014-07-141-0/+1
| | | | | | | | | | | The cmake files for libc++abi and the unwinder weren't linking against libpthread or an unwind library. If the tests were linked with -Wl,--as-needed, these libraries wouldn't be linked, causing them to fail. Patch contributed by İsmail Dönmez. llvm-svn: 212958
* Support LLVM_LIBDIR_SUFFIX.Dan Albert2014-07-111-2/+2
| | | | | | | | This is useful for distros installing under /usr/lib64. Patch from İsmail Dönmez. llvm-svn: 212826
* Add support for building and testing the unwinder.Dan Albert2014-07-111-0/+101
| | | | | | | Note: The unwinder currently only works on Darwin and on ARM Linux. Non-ARM Linux support is not yet implemented, and will fail to build. llvm-svn: 212824
* Fix a warning about undeclared call to abort().Dan Albert2014-07-021-1/+3
| | | | llvm-svn: 212232
* Silence the implicit signed/unsigned conversion warning.Logan Chien2014-06-272-27/+29
| | | | llvm-svn: 211912
* Silence unused variable and parameter warnings.Logan Chien2014-06-262-3/+9
| | | | llvm-svn: 211790
* Fix linux build.Logan Chien2014-06-261-8/+10
| | | | | | | | | * Replace strlcpy with snprintf since strlcpy is not available in glibc. * Replace __LINUX__ with __linux__. llvm-svn: 211784
* Add missing header for _LIBUNWIND_LOG().Logan Chien2014-06-261-0/+1
| | | | llvm-svn: 211775
* Fix building for iOSNick Kledzik2014-06-261-1/+1
| | | | llvm-svn: 211751
* Land support for ARM EHABI unwinding for libunwind.Nico Weber2014-06-258-63/+1596
| | | | | | | | | | | This was written by: Albert Wong <ajwong@chromium.org> Antoine Labour <piman@chromium.org> Dana Jansen <danakj@chromium.org Jonathan Roelofs <jonathan@codesourcery.com> Nico Weber <thakis@chromium.org> llvm-svn: 211743
* Start landing support for ARM EHABI unwinding.Nico Weber2014-06-252-14/+48
| | | | | | | | The new code will be behind a LIBCXXABI_ARM_EHABI define (so that platforms that don't want it can continue using e.g. SJLJ). This commit mostly just adds the LIBCXXABI_ARM_EHABI define. llvm-svn: 211739
* Fix cast warningNick Kledzik2014-04-281-2/+2
| | | | llvm-svn: 207469
* Use return address register from CIE. Move ↵Nick Kledzik2014-04-283-91/+20
| | | | | | DwarfInstructions::lastRestoreReg() to Register::lastDwarfRegNum(). llvm-svn: 207467
* No need to specialize DwarfInstructions::getCFA(). It is the same for all archsNick Kledzik2014-04-281-63/+12
| | | | llvm-svn: 207463
* Properly sign extend delta in compact unwind infoNick Kledzik2014-04-251-2/+3
| | | | llvm-svn: 207170
* Fix one missed use of DW_EH_PE_omit in r203626Nick Kledzik2014-04-251-1/+1
| | | | llvm-svn: 207169
* Fix virtual class with non-virtual dtor complaintDan Albert2014-04-231-0/+1
| | | | | | | Fixes compiler complaint about: src/Unwind/UnwindCursor.hpp:366:25: error: 'libunwind::AbstractUnwindCursor' has virtual functions but non-virtual destructor [-Werror,-Wnon-virtual-dtor] llvm-svn: 206942
* Fixes type of dyldInfo for glibc/bionic systemsDan Albert2014-04-231-1/+1
| | | | | | | Darwin and the BSDs define a tagged struct dl_info typedef'd as Dl_info. glibc and bionic typedef an anonymous struct as Dl_info. llvm-svn: 206939
* Replace bzero with memsetJonathan Roelofs2014-04-161-8/+9
| | | | | | ... so that we can use newlib as the c library. llvm-svn: 206427
* Properly sign extend sdata2/4 in unwinder. Patch by Patrick WildtNick Kledzik2014-04-121-2/+4
| | | | llvm-svn: 206122
* Properly conditionalize DwarfFDECache<A>::dyldUnloadHook. Patch by Patrick WildtNick Kledzik2014-04-121-0/+2
| | | | llvm-svn: 206121
* The content of .eh_frame may be misaligned, so use memcpy. This is seenJoerg Sonnenberger2014-04-081-7/+31
| | | | | | in the wild on SH3. llvm-svn: 205756
* Include stdlib.h for getenv when !NDEBUG.Joerg Sonnenberger2014-04-031-0/+1
| | | | llvm-svn: 205573
* Simplify.Joerg Sonnenberger2014-03-201-6/+1
| | | | llvm-svn: 204292
* Fix DW_CFA_GNU_args_size handling. The primary architecture using thisJoerg Sonnenberger2014-03-202-3/+2
| | | | | | | | | | | 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 unw_set_reg no longer makes sense. llvm-svn: 204290
* 0 is a valid LSDA encoding and can be seen in statically linkedJoerg Sonnenberger2014-03-111-2/+2
| | | | | | | programs. Initialize lsdaEncoding to DW_EH_PE_omit and check for that value to decide whether a value should be decoded. llvm-svn: 203626
* Use .p2align instead of .alignNick Kledzik2014-01-232-4/+4
| | | | llvm-svn: 199941
* Add missing alignment directives in assemblyNick Kledzik2014-01-232-0/+4
| | | | llvm-svn: 199915
* Don't redefine static_assert()Nick Kledzik2014-01-231-1/+1
| | | | llvm-svn: 199860
* Fix unwinder to build for iOSNick Kledzik2014-01-232-2/+5
| | | | llvm-svn: 199859
* Add a first cut at a Registers_arm class, to be used for 32bit arm EHABI ↵Nico Weber2013-12-183-0/+328
| | | | | | unwinding. llvm-svn: 197591
* Add mangling macros for Unwind's inline assembly.Nico Weber2013-12-173-29/+56
| | | | | | | This is in preparation for landing an implementation of unw_getcontext on a system where it's mangled 'unw_getcontext', not '_unw_getcontext'. llvm-svn: 197523
* Rename UnwindRegisters*.s files to UnwindRegisters*.S, step 2 of 2Nico Weber2013-12-062-2/+2
| | | | | | These files require preprocessing, so their name should end with a capital S. llvm-svn: 196555
* Rename UnwindRegisters*.s files to UnwindRegisters*.S, step 1 of 2Nico Weber2013-12-062-0/+0
| | | | | | These files require preprocessing, so their name should end with a capital S. llvm-svn: 196554
* Fix minor initialization bug in Registers_x86_64.Nico Weber2013-12-061-1/+1
| | | | | | | According to kledzik, this constructor isn't live code, so no functionality change. llvm-svn: 196550
* [unwind] remove darwin build dependency on <mach-o/dyld_priv.h>Nick Kledzik2013-12-051-1/+42
| | | | llvm-svn: 196436
* Swap contents of UnwindRegistersRestore.s and UnwindRegistersSave.sNick Kledzik2013-11-012-489/+489
| | | | llvm-svn: 193840
* [unwind] Fix unw_init_remote_thread() use to void* instead of thread_t for ↵Nick Kledzik2013-10-082-7/+12
| | | | | | parameter to match other implementations llvm-svn: 192248
* [unwind] add required #includeNick Kledzik2013-10-081-0/+1
| | | | llvm-svn: 192245
* Fix conditionals on __Unwind_SjLj_* functions to only build for SJLJ based ↵Nick Kledzik2013-10-081-1/+2
| | | | | | architectures llvm-svn: 192241
* Consistent spelling of names.Joerg Sonnenberger2013-10-081-3/+3
| | | | llvm-svn: 192180
OpenPOWER on IntegriCloud