mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-07 12:28:24 +00:00
Mips relocation R_MIPS_64 relocates a 64 bit double word.
I hit this in a very large program (spirit.cpp), but have not figured out how to make a small make check test for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161366 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -35,6 +35,7 @@ static unsigned adjustFixupValue(unsigned Kind, uint64_t Value) {
|
|||||||
return 0;
|
return 0;
|
||||||
case FK_GPRel_4:
|
case FK_GPRel_4:
|
||||||
case FK_Data_4:
|
case FK_Data_4:
|
||||||
|
case FK_Data_8:
|
||||||
case Mips::fixup_Mips_LO16:
|
case Mips::fixup_Mips_LO16:
|
||||||
case Mips::fixup_Mips_GPOFF_HI:
|
case Mips::fixup_Mips_GPOFF_HI:
|
||||||
case Mips::fixup_Mips_GPOFF_LO:
|
case Mips::fixup_Mips_GPOFF_LO:
|
||||||
|
@@ -103,6 +103,9 @@ unsigned MipsELFObjectWriter::GetRelocType(const MCValue &Target,
|
|||||||
case FK_Data_4:
|
case FK_Data_4:
|
||||||
Type = ELF::R_MIPS_32;
|
Type = ELF::R_MIPS_32;
|
||||||
break;
|
break;
|
||||||
|
case FK_Data_8:
|
||||||
|
Type = ELF::R_MIPS_64;
|
||||||
|
break;
|
||||||
case FK_GPRel_4:
|
case FK_GPRel_4:
|
||||||
Type = ELF::R_MIPS_GPREL32;
|
Type = ELF::R_MIPS_GPREL32;
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user