This is the mail archive of the
mailing list for the GCC project.
Re: SPARC: minor tweaks
From: Eric Botcazou <email@example.com>
Date: Sun, 15 May 2005 12:28:23 +0200
> Btw, any reason why in the movdi expander:
> /* Handle MEM cases first. */
> if (GET_CODE (operands) == MEM)
> /* If it's a REG, we can always do it.
> The const zero case is more complex, on v9
> we can always perform it. */
> if (register_operand (operands, DImode)
> || (TARGET_V9
> && (operands == const0_rtx)))
> goto movdi_is_ok;
> since 0 is a register (or a pair of registers)?
I think what it's trying to say is:
If we're TARGET_V9, we can store DImode const zero
Else, this is not possible since only half of
the DImode value is available using fixed registers.
For non-v9, we only have SImode %g0. So the compiler has to end up
producing something like:
mov 0, %g1
std %g0, [%mem]
for this to work out.
On v9, %g0 alone stores the whole DImode.
stx %g0, [%mem]