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:
Jack Carter 2012-08-07 00:01:14 +00:00
parent 61de70d98e
commit e2245bab3c
2 changed files with 4 additions and 0 deletions

View File

@ -35,6 +35,7 @@ static unsigned adjustFixupValue(unsigned Kind, uint64_t Value) {
return 0;
case FK_GPRel_4:
case FK_Data_4:
case FK_Data_8:
case Mips::fixup_Mips_LO16:
case Mips::fixup_Mips_GPOFF_HI:
case Mips::fixup_Mips_GPOFF_LO:

View File

@ -103,6 +103,9 @@ unsigned MipsELFObjectWriter::GetRelocType(const MCValue &Target,
case FK_Data_4:
Type = ELF::R_MIPS_32;
break;
case FK_Data_8:
Type = ELF::R_MIPS_64;
break;
case FK_GPRel_4:
Type = ELF::R_MIPS_GPREL32;
break;