[patch] modify crt0.S for 64-bit address targets

Maciej W. Rozycki macro@linux-mips.org
Wed Apr 6 14:40:00 GMT 2005


On Wed, 6 Apr 2005, Thiemo Seufer wrote:

> >  AFAIK, the only reason for both "dla" and "la" to exist is history and 
> > compatibility with existing code -- there is no need to encode the address 
> > size in the mnemonic as its already implied by the ABI in use.  
> 
> This is incorrect for the (historic) no-ABI mode, as well as for e.g. a

 What's a no-ABI mode?  There's always an ABI present, whether explicit or 
not.  For the purpose of addressing, using 32-bit ELF implies 32-bit 
addresses, while using 64-bit ELF means 64-bit addresses.

> .set mips3 ... .set mips0 sequence. la should load a sign-extended 32bit
> value in that case.

 It will as these don't affect the address size -- la uses the address 
size that reflects the ABI selected, unless you restrict it with something 
like ".set mips1".  But using ".set mips1", ".set mips2" and ".set mips32" 
should probably be forbidden for ABIs that require a 64-bit ISA, just like 
option sets like "-mabi=64 -march=mips1".

  Maciej



More information about the Newlib mailing list