[llvm] r181220 - PowerPC: Fix unimplemented relocation on ppc64
Rafael EspĂndola
rafael.espindola at gmail.com
Mon May 6 11:30:59 PDT 2013
Awesome. Thanks!
On 6 May 2013 13:21, Adhemerval Zanella <azanella at linux.vnet.ibm.com> wrote:
> 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(...)
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list