Subject: Re: expr.c: large structure problems
To: Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: tech-toolchain
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
win.

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.