pa reload problem
Alan Modra
alan@linuxcare.com.au
Sun, 10 Dec 2000 10:35:57 +1100 (EST)
On Sat, 9 Dec 2000, Richard Henderson wrote:
> On Sun, Dec 10, 2000 at 12:57:03AM +1100, Alan Modra wrote:
> > Grrr, that allocates r1 first, which loses on 32-bit hppa.
>
> Err, elaborate on "loses".
Like so
/src/parisc/gcc-20001208/gcc/libgcc2.c: In function `__throw':
/src/parisc/gcc-20001208/gcc/libgcc2.c:4121: Unable to find a register to
spill in class `R1_REGS'.
/src/parisc/gcc-20001208/gcc/libgcc2.c:4121: This is the insn:
(insn 161 190 163 (set (reg/f:SI 21 %r21)
(label_ref:SI 169)) 79 {*pa.md:2287} (nil)
(expr_list:REG_EQUIV (label_ref:SI 169)
(insn_list:REG_LABEL 169 (nil))))
> > When allocating registers, do so according to REG_ALLOC_ORDER and
> > choose GENERAL_REGS.
>
> The problem with this is that you've broken the ABI for all
> extant targets.
Pity. It looked like a nice solution to me.
--
Linuxcare. Support for the Revolution.