[patch] modify crt0.S for 64-bit address targets
Maciej W. Rozycki
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".
More information about the Newlib