hanchenye-llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld
Ulrich Weigand fa84ac9d8a [ppc64] Patch in TOC restore code after all external function calls
When resolving a function call to an external routine, the dynamic
loader must patch the "nop" after the branch instruction to a load
that restores the TOC register.

Current code does that, but only with the *first* instance of a call
to any particular external routine, i.e. at the point where it also
allocates the call stub.  With subsequent calls to the same routine,
current code neglects to patch in the TOC restore code.  This is a
bug, and leads to corrupt TOC pointers in those cases.

Fixed by patching in restore code every time.

llvm-svn: 203580
2014-03-11 15:26:27 +00:00
..
CMakeLists.txt
GDBRegistrar.cpp [C++11] Add 'override' keyword to virtual methods that override their base class. 2014-03-08 07:51:20 +00:00
JITRegistrar.h [weak vtables] Remove a bunch of weak vtables 2013-11-19 00:57:56 +00:00
LLVMBuild.txt
Makefile
ObjectImageCommon.h [C++11] Add 'override' keyword to virtual methods that override their base class. 2014-03-08 07:51:20 +00:00
RuntimeDyld.cpp Make createObjectImage and createObjectImageFromFile static methods on the 2014-03-08 18:45:12 +00:00
RuntimeDyldELF.cpp [ppc64] Patch in TOC restore code after all external function calls 2014-03-11 15:26:27 +00:00
RuntimeDyldELF.h Make createObjectImage and createObjectImageFromFile static methods on the 2014-03-08 18:45:12 +00:00
RuntimeDyldImpl.h Make createObjectImage and createObjectImageFromFile static methods on the 2014-03-08 18:45:12 +00:00
RuntimeDyldMachO.cpp Replace OwningPtr<T> with std::unique_ptr<T>. 2014-03-06 05:51:42 +00:00
RuntimeDyldMachO.h Make createObjectImage and createObjectImageFromFile static methods on the 2014-03-08 18:45:12 +00:00