Subject: Re: expr.c: large structure problems
To: Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
Date: 10/27/1998 17:12:49
> lui at, 2
> addiu $4, at, 1728)
>but gas from binutils-2.8.1 and 2.9.1 both produce bad code-- they
>just emit a "li 0x8020", which sign-extends to -32736.
Oops, that _does_ work. In this case, the li is an ori, which
zero-extends its immediate argument.
So we _could_ add output templates to handle the cases which the
backend for addsi3 doesnt currently does not grok. But since signed
16-bit offset constants come ``for free'' in a memory address on mips,
it simply isnt worth splitting those out: It burns a register for zero
Whether its a win to do the CSE on addresses with offsets too big for
signed 16-bit (fit in one insn) isn't clear, though.