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