mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-16 12:24:03 +00:00
PowerPC: Fix unimplemented relocation on ppc64
This patch handles the R_PPC64_REL64 relocation type for powerpc64 for mcjit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181220 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -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(...)
|
||||||
|
Reference in New Issue
Block a user