llvm-project/llvm/lib
Martin Storsjo d6218cc385 [ARM] Restore the right frame pointer register in Int_eh_sjlj_longjmp
In setupEntryBlockAndCallSites in CodeGen/SjLjEHPrepare.cpp,
we fetch and store the actual frame pointer, but on return via
the longjmp intrinsic, it always was restored into the r7 variable.

On windows, the frame pointer should be restored into r11 instead of r7.

On Darwin (where sjlj exception handling is used by default), the frame
pointer is always r7, both in arm and thumb mode, and likewise, on
windows, the frame pointer always is r11.

On linux however, if sjlj exception handling is enabled (which it isn't
by default), libcxxabi and the user code can be built in differing modes
using different registers as frame pointer. Therefore, when restoring
registers on a platform where we don't always use the same register
depending on code mode, restore both r7 and r11.

Differential Revision: https://reviews.llvm.org/D38253

llvm-svn: 314451
2017-09-28 19:04:30 +00:00
..
Analysis [LVI] Move LVILatticeVal class to separate header file (NFC). 2017-09-28 11:09:22 +00:00
AsmParser IR: Represent -ggnu-pubnames with a flag on the DICompileUnit. 2017-09-12 21:50:41 +00:00
BinaryFormat llvm-dwarfdump: implement --find for .apple_names 2017-09-28 18:10:52 +00:00
Bitcode [llvm] Fix some typos. NFC. 2017-09-15 20:01:43 +00:00
CodeGen MIR: Serialize CaleeSavedInfo Restored flag 2017-09-28 18:52:14 +00:00
DebugInfo llvm-dwarfdump: implement --find for .apple_names 2017-09-28 18:10:52 +00:00
Demangle [ItaniumDemangle] Fix a exponential string copying bug 2017-05-28 23:24:52 +00:00
ExecutionEngine [ORC] Fix the type of RTDyldObjectLinkingLayer::NotifyLoadedFtor. 2017-09-28 17:43:07 +00:00
FuzzMutate Move some CLI utils out of llvm-isel-fuzzer and into the library 2017-09-02 23:43:04 +00:00
Fuzzer Moving libFuzzer from LLVM to compiler-rt. 2017-08-21 23:25:12 +00:00
IR [X86] Finishing broadcastf32x2 and broadcasti32x2 intrinsics lowering to IR. llvm side. 2017-09-26 07:39:39 +00:00
IRReader
LTO [Support] Rename tool_output_file to ToolOutputFile, NFC 2017-09-23 01:03:17 +00:00
LineEditor
Linker Linker: Create a function declaration when moving a non-prevailing alias of function type. 2017-08-10 01:07:44 +00:00
MC Typo: const MCSchedModel SchedModel -> const MCSchedModel &SchedModel 2017-09-27 12:48:48 +00:00
Object [WebAssembly] Model weakly defined symbols as wasm exports 2017-09-26 21:10:09 +00:00
ObjectYAML Reland "[WebAssembly] Add support for naming wasm data segments" 2017-09-20 19:03:35 +00:00
Option Revert "Revert r311552: [Bash-autocompletion] Add support for static analyzer flags" 2017-08-29 00:09:31 +00:00
Passes [DivRempairs] add a pass to optimize div/rem pairs (PR31028) 2017-09-09 13:38:18 +00:00
ProfileData [llvm-cov] Improve error messaging for function mismatches 2017-09-21 01:11:30 +00:00
Support Fix a UBsan bot. 2017-09-28 00:27:39 +00:00
TableGen [Support] Rename tool_output_file to ToolOutputFile, NFC 2017-09-23 01:03:17 +00:00
Target [ARM] Restore the right frame pointer register in Int_eh_sjlj_longjmp 2017-09-28 19:04:30 +00:00
Testing Mark LLVMTestingSupport as not installed in LLVMBuild. 2017-06-19 22:01:50 +00:00
ToolDrivers Convert the archive writer to use Error. 2017-09-21 23:13:36 +00:00
Transforms [JumpThreading] Preserve DT and LVI across the pass 2017-09-28 17:24:40 +00:00
WindowsManifest Fix bug 34608 by moving private header out of public header. 2017-09-14 23:01:13 +00:00
XRay [XRay] initialize all members of YAMLXRayRecord for -Wmissing-field-initializers 2017-09-27 07:30:48 +00:00
CMakeLists.txt Moving libFuzzer from LLVM to compiler-rt. 2017-08-21 23:25:12 +00:00
LLVMBuild.txt Re-apply "Introduce FuzzMutate library" 2017-08-21 22:57:06 +00:00