1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-18 18:42:46 +02:00
llvm-mirror/lib/ExecutionEngine
Walter Erquinigo 4ebbabfc4d Handle relocations to thumb functions when dynamic linking COFF modules
Summary:
This adds the necessary logic to support relocations to thumb functions in the COFF dynamic linker.
The jumps to function addresses are mostly blx, which requires the ISA selection bit when jumping to a thumb function.

Note: I'm determining if the relocation requires the ISA bit when creating the relocation entries and not when resolving the relocation. I have to do that because I need the ObjectFile and the actual Symbol, which are available only when creating the entries. It would require a gross refactor if I do it otherwise, but I'm okay with doing it if you think it's better.

Reviewers: peter.smith, compnerd

Subscribers: rengolin, sas

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

llvm-svn: 284410
2016-10-17 18:56:18 +00:00
..
IntelJITEvents Fix lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp for r273701 2016-06-24 22:38:30 +00:00
Interpreter Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes. 2016-08-23 17:14:32 +00:00
MCJIT Use StringRef instead of raw pointer in ExecutionEngine 2016-10-01 06:22:04 +00:00
OProfileJIT [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
Orc [ORC] Clone module flags metadata into the globals module in the 2016-09-04 17:53:30 +00:00
RuntimeDyld Handle relocations to thumb functions when dynamic linking COFF modules 2016-10-17 18:56:18 +00:00
CMakeLists.txt [ExecutionEngine][RuntimeDyld] Move JITSymbol from ExecutionEngine to RuntimeDyld. 2016-08-07 01:19:37 +00:00
ExecutionEngine.cpp Use StringRef instead of raw pointer in ExecutionEngine 2016-10-01 06:22:04 +00:00
ExecutionEngineBindings.cpp Use StringRef instead of raw pointer in ExecutionEngine 2016-10-01 06:22:04 +00:00
GDBRegistrationListener.cpp
LLVMBuild.txt
SectionMemoryManager.cpp Use the range variant of remove_if instead of unpacking begin/end 2016-08-12 04:32:37 +00:00
TargetSelect.cpp Use the range variant of find/find_if instead of unpacking begin/end 2016-08-12 03:55:06 +00:00