>For some reason reload has decided that it needs ADDR_REGS for the
>register being reloaded, namely (reg:QI 1420). So gcc looks for a
>register in ADDR_REGS which can hold QImode. Because of your changes,
>it doesn't find one. So it crashes.
>
>The question is why reload thinks that it needs ADDR_REGS for this
>register. Look at the local-alloc debugging dump to see where
>regclass thinks that the register should go.
Ok, will do. The previous suggetsion of converting from ?a to *a with
the original version of PREFERRRED_RELOAD_CLASS causes the build of
glibc to crash with:
../sysdeps/generic/printf_fphex.c: In function `__printf_fphex':
../sysdeps/generic/printf_fphex.c:490: error: unable to find a register to
spill in class `ADDR_REGS'
../sysdeps/generic/printf_fphex.c:490: error: this is the insn:
(insn 3081 3080 3075 216 ./_itowa.h:58 (set (subreg:SI (reg/v:QI 49 [ leading
]) 0)
(plus:SI (subreg:SI (reg/v:QI 49 [ leading ]) 0)
(const_int 1 [0x1]))) 121 {*addsi3_5200} (nil)
(nil))
../sysdeps/generic/printf_fphex.c:490: confused by earlier errors, bailing out
I'm rebuilding the toolchain without the ?a change. What in the .lreg
dump am I looking for that will tellm "where regclass things that the
register should go"? Is it:
;; Register 1421 in 0.
--
Peter Barada
[EMAIL PROTECTED]