This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: error in finding a register to spill
- From: Jim Wilson <wilson at specifixinc dot com>
- To: Shinpei Kato <shinny at j02 dot itscom dot net>
- Cc: gcc at gcc dot gnu dot org
- Date: Sun, 06 Jun 2004 20:35:53 -0700
- Subject: Re: error in finding a register to spill
- References: <16784775.1086082284440.JavaMail.shinny@j02.itscom.net>
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