llvm-project/lldb/source/Plugins/UnwindAssembly/InstEmulation
Tamas Berghammer 73bcca5b3d Stack unwinding emulation: handle adjustment of FP
This change is improving the instruction emulation based unwinding to
handle when the frame pointer is adjusted (increment/decrement) after
it has been initialized. The situation can occur in the prologue of
some function where FP is adjusted before it is copied back to SP.

Example code (thumb, generated by gcc 4.8):
< +0>: push  {r4, r7, lr}
< +2>: sub   sp, #0x14
< +4>: add   r7, sp, #0x0
...
<+50>: adds  r7, #0x14 ; The CL fixes the handling of this instruction
<+52>: mov   sp, r7    ; Previously unwinding from here was broken
<+54>: pop   {r4, r7, pc}

Differential revision: http://reviews.llvm.org/D17295

llvm-svn: 261318
2016-02-19 10:59:25 +00:00
..
CMakeLists.txt [cmake] Remove LLVM_NO_RTTI. 2015-09-03 08:46:55 +00:00
UnwindAssemblyInstEmulation.cpp Stack unwinding emulation: handle adjustment of FP 2016-02-19 10:59:25 +00:00
UnwindAssemblyInstEmulation.h Fix Clang-tidy modernize-use-override warnings in some files in source/Plugins; other minor fixes. 2015-10-21 18:46:17 +00:00