[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