[PATCH] D40147: [MIPS] Handle cross-mode (regular <-> microMIPS) jumps
Simon Atanasyan via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 31 02:27:47 PST 2018
atanasyan updated this revision to Diff 132118.
atanasyan added a comment.
One more variant of the patch. The `if Mips` code were removed from `InputSectionBase::relocate` and `InputSection::relocateNonAlloc` methods. Now the less-significant bit is configured in the `getRelocTargetVA` routine. I could not remove Mips-ness from `DynamicSection<ELFT>::addSym` and `Writer<ELFT>::getEntryAddr` because if an `e_entry` field or a dynamic table entry contains microMIPS symbol value this value should have the less-significant bit to notify loader / dynamic-linker about the symbol's type.
Repository:
rLLD LLVM Linker
https://reviews.llvm.org/D40147
Files:
ELF/Arch/Mips.cpp
ELF/InputSection.cpp
ELF/SyntheticSections.cpp
ELF/Writer.cpp
test/ELF/mips-micro-bad-cross-calls.s
test/ELF/mips-micro-cross-calls.s
test/ELF/mips-micro-plt.s
test/ELF/mips-micro-relocs.s
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D40147.132118.patch
Type: text/x-patch
Size: 15069 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180131/83998804/attachment.bin>
More information about the llvm-commits
mailing list