This is an archive of the discontinued LLVM Phabricator instance.

[mips] Emit all three relocation operations for each relocation entry on Mips64 big-endian systems.
ClosedPublic

Authored by matheusalmeida on Apr 28 2014, 7:29 AM.

Details

Summary

The N64 ABI allows up to three operations to be specified per relocation record
independently of the endianness.

Diff Detail

Event Timeline

matheusalmeida retitled this revision from to [mips] Emit all three relocation operations for each relocation entry on Mips64 big-endian systems..
matheusalmeida updated this object.
matheusalmeida edited the test plan for this revision. (Show Details)

Daniel,

If you think it's best to CC the mailing list just say so.

Matheus

dsanders accepted this revision.Apr 29 2014, 1:45 AM
dsanders edited edge metadata.

When we were discussing this triple reloc mechanism you mentioned that the Type was subject to endianness (and was a strange mixed endian) but I don't see any endian conversions in the patch. Is that handled by the code in ELFRelBase<...>::getRInfo()? If so, then it LGTM.

If you think it's best to CC the mailing list just say so.

You're only touching existing MIPS specific code so I think it's unnecessary in this case.

include/llvm/Object/ELF.h
549–554

Thanks for adding the explanation. One small correction: only MIPS ELF64's can be assumed to be N64. You currently say all ELF64's.

This revision is now accepted and ready to land.Apr 29 2014, 1:45 AM

Is that handled by the code in ELFRelBase<...>::getRInfo()

That's correct.

include/llvm/Object/ELF.h
549–554

Yeah... I wanted to write"all Mips ELF::ELFCLASS64 ELFs are N64."...

matheusalmeida edited edge metadata.

Fix comment.