Don't re-define constants that are now in compact_unwind_encoding.h.
Add arm64_32 support to lldb, an ILP32 codegen that runs on arm64 ISA targets, specifically Apple watches.Differential Revision: https://reviews.llvm.org/D68858llvm-svn: 375032
*** This commit represents a complete reformatting of the LLDB source code*** to conform to clang-format’s LLVM style. This kind of mass change has*** two obvious implications:Firstly, merging t
*** This commit represents a complete reformatting of the LLDB source code*** to conform to clang-format’s LLVM style. This kind of mass change has*** two obvious implications:Firstly, merging this particular commit into a downstream fork may be a hugeeffort. Alternatively, it may be worth merging all changes up to this commit,performing the same reformatting operation locally, and then discarding themerge for this particular commit. The commands used to accomplish thisreformatting were as follows (with current working directory as the root ofthe repository): find . \( -iname "*.c" -or -iname "*.cpp" -or -iname "*.h" -or -iname "*.mm" \) -exec clang-format -i {} + find . -iname "*.py" -exec autopep8 --in-place --aggressive --aggressive {} + ;The version of clang-format used was 3.9.0, and autopep8 was 1.2.4.Secondly, “blame” style tools will generally point to this commit instead ofa meaningful prior commit. There are alternatives available that will attemptto look through this change and find the appropriate prior commit. YMMV.llvm-svn: 280751
show more ...
Add support for using armv7 compact unwind informationas an asynchronous unwind plan source.Two small fixes to the compact unwind dumper tool forarmv7 encodings.A change to DWARFCallFrameInfo t
Add support for using armv7 compact unwind informationas an asynchronous unwind plan source.Two small fixes to the compact unwind dumper tool forarmv7 encodings.A change to DWARFCallFrameInfo to strip the 0th bit onaddresses in eh_frame sections when armv7. In the clang generated examples I have, the 0th bit is set forthumb functions and that's causing the unwinder to pickthe wrong function for eh_frame info.llvm-svn: 271970
Add armv7 compact unwind printing to the compact-unwind-dumper.c toolas a prototype for adding armv7 compact unwind reading to lldb.llvm-svn: 271774
Add support for arm64 compact unwind tables, used on darwin arm64systems (ios, tvos, watchos). It's a simple format to use now thatI have i386/x86_64 supported already.The unwind instructions ar
Add support for arm64 compact unwind tables, used on darwin arm64systems (ios, tvos, watchos). It's a simple format to use now thatI have i386/x86_64 supported already.The unwind instructions are only valid at call sites -- that is,when lldb is unwinding a frame in the middle of the stack. Itcannot be used for the currently executing frame; it has no informationabout prologues/epilogues/etc.<rdar://problem/12062336> llvm-svn: 270658
Fix a variety of typos.No functional change.llvm-svn: 239995
Two fixes for compact unwind decoding for frameless large-stack-sizei386/x86_64 functions. The stack size was being multiplied by thepointer size incorrectly. The register permutation placeholder
Two fixes for compact unwind decoding for frameless large-stack-sizei386/x86_64 functions. The stack size was being multiplied by thepointer size incorrectly. The register permutation placeholders(UNWIND_X86_REG_NONE) were decrementing the stack offset of thesaved registers when it should not have been.<rdar://problem/19570035> llvm-svn: 226889
Temporarily disable CompactUnwindInfo::GetCompactUnwindInfoForFunction.The compact unwind importer is getting the wrong unwind info for onecase that I found. I haven't been able to fix the problem
Temporarily disable CompactUnwindInfo::GetCompactUnwindInfoForFunction.The compact unwind importer is getting the wrong unwind info for onecase that I found. I haven't been able to fix the problem tonight and I don't want to leave TOT behaving incorrectly, so just ignorecompact unwind until I can get to the bottom of this.llvm-svn: 224321
The lldb unwinder can now use the unwind information from the compact-unwind section for x86_64 and i386 targets on Darwin systems. Currently only thecompact unwind encoding for normal frame-using
The lldb unwinder can now use the unwind information from the compact-unwind section for x86_64 and i386 targets on Darwin systems. Currently only thecompact unwind encoding for normal frame-using functions is supported but itwill be easy handle frameless functions when I have a bit more free time totest it. The LSDA and personality routines for functions are also retrievedcorrectly for functions from the compact unwind section.This new code is very fresh -- it passes the lldb testsuite and I've doneby-hand inspection of many functions and am getting correct behavior for allof them. There may need to be some bug fixing over the next couple weeks asI exercise and test it further. But I think it's fine right now so I'mcommitting it.<rdar://problem/13220837> llvm-svn: 223625
Add support for 32-bit i386 binaries.llvm-svn: 222952
The finishing touches on getting the compact unwind dumping completedfor x86_64. i386, arm, arm64 aren't handled yet but those are minorvariations on this format.This commit also adds code to re
The finishing touches on getting the compact unwind dumping completedfor x86_64. i386, arm, arm64 aren't handled yet but those are minorvariations on this format.This commit also adds code to read the symbol table out of thebinary and read the LC_FUNCTION_STARTS to augment the symbol tablewith the start addresses of all the functions - and print thefunction names when showing the unwind info.llvm-svn: 222951
Add support for UNWIND_X86_64_MODE_STACK_IND entries.Correct the function offset computations in UNWIND_SECOND_LEVEL_REGULARtables. A few other small fixes.llvm-svn: 222910
A little more work on the compact unwind dumper.UNWIND_X86_64_MODE_STACK_IND mode is almost correct; extra stackspace allocated before the reg saves isn't handled right. Still alittle wobbily on
A little more work on the compact unwind dumper.UNWIND_X86_64_MODE_STACK_IND mode is almost correct; extra stackspace allocated before the reg saves isn't handled right. Still alittle wobbily on the file addresses of functions. Finally understandhow the 6 registers that may be saved are ordered in just 10 itsof space -- the Lehmer code for the registers is derived and thenthe sequence is encoded in a variable base number. Added somecomments with references to what the code is doing so it'll beeasier for others to track down.llvm-svn: 222884
Add a little sketch of a program that can extract unwindinformation from the compact unwind section used on darwinfor exception handling, and dump that information..The UNWIND_X86_64_MODE_RBP_FRA
Add a little sketch of a program that can extract unwindinformation from the compact unwind section used on darwinfor exception handling, and dump that information..The UNWIND_X86_64_MODE_RBP_FRAME and UNWIND_X86_64_MODE_DWARFentries look to be handled correctly.UNWIND_X86_64_MODE_STACK_IMMD and UNWIND_X86_64_MODE_STACK_IND are still a work in progress.Only x86_64 is supported right now. Given that this is anexperiment in parsing the section contents, I don't expect toadd other architectures; they are trivial variations on thisarch. There exists a real dumper included in the Xcode tools, unwinddump.llvm-svn: 222127