------- Comment #1 from rask at sygehus dot dk  2007-07-15 14:29 -------
I get something similiar with my 16-bit x86 port compiling libgcc:

/home/rask/cvsbuild/gcc/./gcc/xgcc -B/home/rask/cvsbuild/gcc/./gcc/ -nostdinc
-B/home/rask/cvsbuild/gcc/ia16-elf/newlib/ -isystem
/home/rask/cvsbuild/gcc/ia16-elf/newlib/targ-include -isystem
/home/rask/cvssrc/gcc/newlib/libc/include -B/usr/local/gcc/ia16-elf/bin/
-B/usr/local/gcc/ia16-elf/lib/ -isystem /usr/local/gcc/ia16-elf/include
-isystem /usr/local/gcc/ia16-elf/sys-include -O2 -g -O2 -fno-split-wide-types
-O2  -O2 -g -O2  -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE   -W -Wall
-Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition
 -isystem ./include   -g  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc
-I. -I. -I../../.././gcc -I../../../../../cvssrc/gcc/libgcc
-I../../../../../cvssrc/gcc/libgcc/. -I../../../../../cvssrc/gcc/libgcc/../gcc
-I../../../../../cvssrc/gcc/libgcc/../include  -DHAVE_CC_TLS -o _mulvsi3.o -MT
_mulvsi3.o -MD -MP -MF _mulvsi3.dep -DL_mulvsi3 -c
../../../../../cvssrc/gcc/libgcc/../gcc/libgcc2.c \

../../../../../cvssrc/gcc/libgcc/../gcc/libgcc2.c: In function '__mulvsi3':
../../../../../cvssrc/gcc/libgcc/../gcc/libgcc2.c:169: internal compiler error:
RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:972

This patch seems to fix it:

Index: gcc/df-problems.c
===================================================================
--- gcc/df-problems.c   (revision 126653)
+++ gcc/df-problems.c   (working copy)
@@ -4023,8 +4023,9 @@ df_note_bb_compute (unsigned int bb_inde
       while (*mws_rec)
        {
          struct df_mw_hardreg *mws = *mws_rec; 
+         rtx reg = REG_P (mws->mw_reg) ? mws->mw_reg : SUBREG_REG
(mws->mw_reg);
          if ((mws->type != DF_REF_REG_DEF)  
-             && !df_ignore_stack_reg (REGNO (mws->mw_reg)))
+             && !df_ignore_stack_reg (REGNO (reg)))
            old_dead_notes
              = df_set_dead_notes_for_mw (insn, old_dead_notes, 
                                          mws, live, do_not_gen,


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32557

Reply via email to