[PATCH] D66542: R_HEX_B15_PCREL_X/R_HEX_B9_PCREL_X can be in shared objects
Sid Manning via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 22 09:06:23 PDT 2019
sidneym added a comment.
Generally, the non-extended branch relocations are never found in objects but one could manually generate them. The rules work like this:
- if (p0) jump external // The assembler picks the relocation, either R_HEX_B15_PCREL or R_HEX_B15_PCREL_X in practice when the label is external it will pick the _X version
- if (p0) jump #external // The programmer says I want the non-extended version, R_HEX_B15_PCREL will be used.
- if (p0) jump ##external // The programmer says I want the extended version, R_HEX_B15_PCREL_X will be used.
Since it is possible for the assembly programmer to demand the non-extended versions of B9 <https://reviews.llvm.org/B9>/B13 <https://reviews.llvm.org/B13>/B15 <https://reviews.llvm.org/B15> they could also be moved.
Repository:
rLLD LLVM Linker
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D66542/new/
https://reviews.llvm.org/D66542
More information about the llvm-commits
mailing list