[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