Thumb32 assembler (63/69)
Richard Earnshaw
rearnsha@gcc.gnu.org
Tue Apr 26 16:46:00 GMT 2005
On Tue, 2005-04-26 at 11:02, Zack Weinberg wrote:
> + /* Extensions? R=read-only? */
> + RELOC_NUMBER (R_ARM_RXPC25, 249)
> + RELOC_NUMBER (R_ARM_RSBREL32, 250)
> + RELOC_NUMBER (R_ARM_THM_RPC22, 251)
> + RELOC_NUMBER (R_ARM_RREL32, 252)
> + RELOC_NUMBER (R_ARM_RABS32, 253)
> + RELOC_NUMBER (R_ARM_RPC24, 254)
> + RELOC_NUMBER (R_ARM_RBASE, 255)
These are all obsolete. IIRC, they were an attempt in the previous ABI
to support a form of dynamic relocation.
> + /* Unofficial names for some of the relocs. */
> + FAKE_RELOC (R_ARM_GOTOFF, R_ARM_GOTOFF32) /* 32 bit offset to GOT. */
> + FAKE_RELOC (R_ARM_THM_PC22, R_ARM_THM_CALL)
> + FAKE_RELOC (R_ARM_THM_PC11, R_ARM_THM_JUMP11)
> + FAKE_RELOC (R_ARM_THM_PC9, R_ARM_THM_JUMP8)
These names are all deprecated (the names used in the old version).
> + /* Relocs with both a different name, and (apparently) different meaning in
> + GNU usage. */
> + FAKE_RELOC (R_ARM_GOTPC, R_ARM_BASE_PREL) /* 32 bit PC relative offset to GOT. */
> + FAKE_RELOC (R_ARM_GOT32, R_ARM_GOT_BREL) /* 32 bit GOT entry. */
> + FAKE_RELOC (R_ARM_ROSEGREL32, R_ARM_SBREL31) /* ??? */
No, the usage should be the same. In some cases they are extended by
permitting a symbol. In the GNU usage the symbol was always NULL.
> + FAKE_RELOC (R_ARM_AMP_VCALL9, R_ARM_BREL_ADJ) /* Thumb-something. Not used. */
This one was obsolete in the previous ABI, it was for a product that
never made it to market.
R.
More information about the Binutils
mailing list