[llvm] r181220 - PowerPC: Fix unimplemented relocation on ppc64
Adhemerval Zanella
azanella at linux.vnet.ibm.com
Mon May 6 10:21:23 PDT 2013
Author: azanella
Date: Mon May 6 12:21:23 2013
New Revision: 181220
URL: http://llvm.org/viewvc/llvm-project?rev=181220&view=rev
Log:
PowerPC: Fix unimplemented relocation on ppc64
This patch handles the R_PPC64_REL64 relocation type for powerpc64
for mcjit.
Modified:
llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
llvm/trunk/test/ExecutionEngine/MCJIT/eh.ll
Modified: llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp?rev=181220&r1=181219&r2=181220&view=diff
==============================================================================
--- llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp (original)
+++ llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp Mon May 6 12:21:23 2013
@@ -628,6 +628,11 @@ void RuntimeDyldELF::resolvePPC64Relocat
llvm_unreachable("Relocation R_PPC64_REL32 overflow");
writeInt32BE(LocalAddress, delta);
} break;
+ case ELF::R_PPC64_REL64: {
+ uint64_t FinalAddress = (Section.LoadAddress + Offset);
+ uint64_t Delta = Value - FinalAddress + Addend;
+ writeInt64BE(LocalAddress, Delta);
+ } break;
case ELF::R_PPC64_ADDR64 :
writeInt64BE(LocalAddress, Value + Addend);
break;
Modified: llvm/trunk/test/ExecutionEngine/MCJIT/eh.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/ExecutionEngine/MCJIT/eh.ll?rev=181220&r1=181219&r2=181220&view=diff
==============================================================================
--- llvm/trunk/test/ExecutionEngine/MCJIT/eh.ll (original)
+++ llvm/trunk/test/ExecutionEngine/MCJIT/eh.ll Mon May 6 12:21:23 2013
@@ -1,5 +1,5 @@
; RUN: %lli_mcjit %s
-; XFAIL: powerpc64, arm, cygwin
+; XFAIL: arm, cygwin
declare i8* @__cxa_allocate_exception(i64)
declare void @__cxa_throw(i8*, i8*, i8*)
declare i32 @__gxx_personality_v0(...)
More information about the llvm-commits
mailing list