diff options
| author | Jack Carter <jcarter@mips.com> | 2012-08-07 00:01:14 +0000 |
|---|---|---|
| committer | Jack Carter <jcarter@mips.com> | 2012-08-07 00:01:14 +0000 |
| commit | 4c58381c3a5506b9f2fe39975d96bdca65d7c2c2 (patch) | |
| tree | 429fe95b1765fbaf35d4ad199954e95812f9602a /llvm/lib/Target/Mips/MCTargetDesc | |
| parent | 0a5e1b840aaed19a36ebf19c38e34e669090a27e (diff) | |
| download | bcm5719-llvm-4c58381c3a5506b9f2fe39975d96bdca65d7c2c2.tar.gz bcm5719-llvm-4c58381c3a5506b9f2fe39975d96bdca65d7c2c2.zip | |
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.
llvm-svn: 161366
Diffstat (limited to 'llvm/lib/Target/Mips/MCTargetDesc')
| -rw-r--r-- | llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp | 1 | ||||
| -rw-r--r-- | llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp index f679b6f9099..18961fdd785 100644 --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp @@ -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: diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp index 1ff304494e7..8e84b3f99f4 100644 --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp @@ -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; |

