mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-01 16:40:15 +00:00
PowerPC: Fix unimplemented relocation on ppc64
This patch handles the R_PPC64_REL64 relocation type for powerpc64 for mcjit. llvm-svn: 181220
This commit is contained in:
parent
8911ab2fa9
commit
3b2874423e
@ -628,6 +628,11 @@ void RuntimeDyldELF::resolvePPC64Relocation(const SectionEntry &Section,
|
|||||||
llvm_unreachable("Relocation R_PPC64_REL32 overflow");
|
llvm_unreachable("Relocation R_PPC64_REL32 overflow");
|
||||||
writeInt32BE(LocalAddress, delta);
|
writeInt32BE(LocalAddress, delta);
|
||||||
} break;
|
} 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 :
|
case ELF::R_PPC64_ADDR64 :
|
||||||
writeInt64BE(LocalAddress, Value + Addend);
|
writeInt64BE(LocalAddress, Value + Addend);
|
||||||
break;
|
break;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
; RUN: %lli_mcjit %s
|
; RUN: %lli_mcjit %s
|
||||||
; XFAIL: powerpc64, arm, cygwin
|
; XFAIL: arm, cygwin
|
||||||
declare i8* @__cxa_allocate_exception(i64)
|
declare i8* @__cxa_allocate_exception(i64)
|
||||||
declare void @__cxa_throw(i8*, i8*, i8*)
|
declare void @__cxa_throw(i8*, i8*, i8*)
|
||||||
declare i32 @__gxx_personality_v0(...)
|
declare i32 @__gxx_personality_v0(...)
|
||||||
|
Loading…
Reference in New Issue
Block a user