This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

error in finding a register to spill


During porting gcc to new arch, I faced a following error.

$BUILD_DIR/gcc/xgcc -B$BUILD_DIR/gcc/ -B/usr/local/$ARCH/$ARCH-elf/bin/ 
-B/usr/local/$ARCH/$ARCH-elf/lib/ -isystem /usr/local/$ARCH/$ARCH-elf/include 
-O2  -DIN_GCC -DCROSS_COMPILE   -W -Wall -Wwrite-strings -Wstrict-prototypes 
-Wmissing-prototypes -isystem ./include  -G 0 -g  -DIN_LIBGCC2 
-D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I../../gcc-3.3.3/gcc 
-I../../gcc-3.3.3/gcc/. -I../../gcc-3.3.3/gcc/config -I../../gcc-3.3.3/gcc/../include
-DL_fixunsdfsi -c ../../gcc-3.3.3/gcc/libgcc2.c -o libgcc/./_fixunsdfsi.o
../../gcc-3.3.3/gcc/libgcc2.c: In function `__fixunsdfsi':
../../gcc-3.3.3/gcc/libgcc2.c:1161: error: unable to find a register to spill 
in class `GR_REGS'
../../gcc-3.3.3/gcc/libgcc2.c:1161: error: this is the insn:
(insn:HI 10 9 11 0 (nil) (set (reg:CC 39 $f7)
        (ge:CC (reg:DF 44 $c0r4)
            (reg:DF 32 $f0 [167]))) 113 {sge_df} (insn_list 9 (nil))
    (expr_list:REG_DEAD (reg:DF 32 $f0 [167])
../../gcc-3.3.3/gcc/libgcc2.c:1161: confused by earlier errors, bailing out
make[2]: *** [libgcc/./_fixunsdfsi.o] Error 1

This means we couldn't find a proper register in this insn, doesn' it?
But I don't know how to see this insn. 'reg' expressions are only follows:
reg:CC 39 $f7
reg:DF 44 $c0r4
reg:DF 32 $f0 [167]
There is no mode which needs general register.
Why do we have to find a register to spill in class `GR_REGS' (general register)?
And, what [167] means in the third?

I studied how to see RTL though, still not enough. Could you help me?

Shinpei Kato

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]