forked from OSchip/llvm-project
[mips][ias] Work around yet another incorrect microMIPS relocation evaluation exposed by r268900.
It's not entirely clear why R_MICROMIPS_(GOT|HI16|LO16) are evaluated incorrectly in a small number of the LNT tests at this point. However, it's not related to the STO_MIPS_MICROMIPS issue. At this point all the microMIPS-related changes of r268900 have been reverted. llvm-svn: 269410
This commit is contained in:
parent
6a6916ab02
commit
e91e52671a
|
@ -502,13 +502,10 @@ bool MipsELFObjectWriter::needsRelocateWithSymbol(const MCSymbol &Sym,
|
|||
// are not supported yet but can be added as required.
|
||||
case ELF::R_MIPS_GOT16:
|
||||
case ELF::R_MIPS16_GOT16:
|
||||
case ELF::R_MICROMIPS_GOT16:
|
||||
case ELF::R_MIPS_HI16:
|
||||
case ELF::R_MIPS16_HI16:
|
||||
case ELF::R_MICROMIPS_HI16:
|
||||
case ELF::R_MIPS_LO16:
|
||||
case ELF::R_MIPS16_LO16:
|
||||
case ELF::R_MICROMIPS_LO16:
|
||||
// FIXME: It should be safe to return false for the STO_MIPS_MICROMIPS but
|
||||
// we neglect to handle the adjustment to the LSB of the addend that
|
||||
// it causes in applyFixup() and similar.
|
||||
|
@ -516,6 +513,13 @@ bool MipsELFObjectWriter::needsRelocateWithSymbol(const MCSymbol &Sym,
|
|||
return true;
|
||||
return false;
|
||||
|
||||
// FIXME: These three belong in the previous group but applyFixup() and
|
||||
// similar do not get the addend correct at the moment.
|
||||
case ELF::R_MICROMIPS_GOT16:
|
||||
case ELF::R_MICROMIPS_HI16:
|
||||
case ELF::R_MICROMIPS_LO16:
|
||||
return true;
|
||||
|
||||
case ELF::R_MIPS_16:
|
||||
case ELF::R_MIPS_32:
|
||||
case ELF::R_MIPS_GPREL32:
|
||||
|
|
|
@ -11,10 +11,12 @@
|
|||
// The addend must therefore be 0x9.
|
||||
// DATA-LABEL: Name: .text
|
||||
// DATA: SectionData (
|
||||
// DATA: 0000: 30430000 30420009
|
||||
// DATA: 0000: 30430000 30420009 30430000 30420009
|
||||
addiu $2, $3, %got(baz)
|
||||
addiu $2, $2, %lo(baz)
|
||||
baz:
|
||||
addiu $2, $3, %hi(baz)
|
||||
addiu $2, $2, %lo(baz)
|
||||
|
||||
// DATA-LABEL: Name: .data
|
||||
// DATA: SectionData (
|
||||
|
|
Loading…
Reference in New Issue