forked from OSchip/llvm-project
1be10dc732
and also fixes the R_PPC64_TOC16 and R_PPC64_TOC16_DS relocation offset. The 'nop' is needed so a restore TOC instruction (ld r2,40(r1)) can be placed by the linker to correct restore the TOC of previous function. Current code has two issues: it defines in PPCInstr64Bit.td file a LDinto_toc and LDtoc_restore as a DSForm_1 with DS_RA=0 where it should be DS=2 (the 8 bytes displacement of the TOC saving). It also wrongly emits a MC intruction using an uint32_t value while the PPC::BL8_NOP_ELF and PPC::BLA8_NOP_ELF are both uint64_t (because of the following 'nop'). This patch corrects the remaining ExecutionEngine using MCJIT: ExecutionEngine/2002-12-16-ArgTest.ll ExecutionEngine/2003-05-07-ArgumentTest.ll ExecutionEngine/2005-12-02-TailCallBug.ll ExecutionEngine/hello.ll ExecutionEngine/hello2.ll ExecutionEngine/test-call.ll llvm-svn: 166682 |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
LLVMBuild.txt | ||
Makefile | ||
PPCAsmBackend.cpp | ||
PPCBaseInfo.h | ||
PPCELFObjectWriter.cpp | ||
PPCFixupKinds.h | ||
PPCMCAsmInfo.cpp | ||
PPCMCAsmInfo.h | ||
PPCMCCodeEmitter.cpp | ||
PPCMCTargetDesc.cpp | ||
PPCMCTargetDesc.h | ||
PPCPredicates.cpp | ||
PPCPredicates.h |