error in finding a register to spill

Shinpei Kato shinny@j02.itscom.net
Mon Jun 7 09:59:00 GMT 2004


Thank you for your helping. You were perfectly correct!
The problem was caused by $f7. I've thought that I can use FP register
as a status register. And I didn't know -da. It seems so helpful.

I managed to start understanding porting gcc & gas. gas is more
troublesome though...

Anyway I could overcome my problem and learned gcc more. Thank you very
much.

Thanks,
Shinpei Kato

On Sun, 06 Jun 2004 20:35:53 -0700
Jim Wilson <wilson@specifixinc.com> wrote:

> Shinpei Kato wrote:
> > ../../gcc-3.3.3/gcc/libgcc2.c:1161: error: unable to find a register to spill 
> > in class `GR_REGS'
> 
> We can't do much with this without more info, such as the definition of
> the sge_df pattern in your md file, and possibly also other stuff such
> as the definitions of the register classes you use.
> 
> You get more info about what is going wrong by using -da to get RTL
> debugging dumps, and then looking at the .greg file.  There should be
> info at the end indicating what reloads it was trying to generate before
> it failed.  This will indicate which operand needed a general register.
> 
> I would guess the problem is that you can't put a reg:CC value in $f7.
> Generally, FP registers can't hold the result of compare instructions.
> 
> > reg:DF 32 $f0 [167]
> 
> 167 is the original register number.  This is typically the pseudo-reg
> number before register allocation.  See the sources, and look at
> ORIGINAL_REGNO.
> -- 
> Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com
> 




More information about the Gcc mailing list