[patch] modify crt0.S for 64-bit address targets
Ian Lance Taylor
ian@airs.com
Wed Apr 6 19:35:00 GMT 2005
Paul Koning <pkoning@equallogic.com> writes:
> Eric> Assuredly this is the case. I think the problem might be from
> Eric> using the ori instead of addi for the address. ori zero extends
> Eric> the constant, addi sign extends. IIRC all addresses should be
> Eric> sign extended and as such we should be using addi here yes? I
> Eric> seem to recall that we changed this a while back because the
> Eric> ori was some small amount faster.
>
> Faster? On a RISC machine? Seems odd.
I think Eric is reversed, actually. There was a MIPS processor which
had two add units but only one logical unit. Therefore, on average,
on that processor, add was faster. That fact led to this change:
Tue Jul 11 11:49:49 1995 Ian Lance Taylor <ian@cygnus.com>
* mips-opc.c (mips_opcodes): For the move pseudo-op, prefer daddu
if ISA 3 and addu otherwise, replacing or, since some MIPS chips
have multiple add units but only a single logical unit.
Ian
More information about the Newlib
mailing list