This is the mail archive of the gcc@gcc.gnu.org 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]

ICE on m68k-linux in 3_4-branch


Hello,

I've got this ICE in stage2 bootstrapping gcc-3_4-branch
on m68k-linux:

---cut---
./xgcc -B./ -B/home/bernie/src/gcc-3.4-install/m68k-unknown-linux-gnu/bin/ -isystem /home/bernie/src/gcc-3.4-install/m68k-unknown-linux-gnu/include -isystem /home/bernie/src/gcc-3.4-install/m68k-unknown-linux-gnu/sys-include -L/home/bernie/src/gcc-3.4-build/gcc/../ld -O2  -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include  -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -I. -I. -I../../gcc-3.4/gcc -I../../gcc-3.4/gcc/. -I../../gcc-3.4/gcc/../include   -DL_gcov -c ../../gcc-3.4/gcc/libgcov.c -o libgcc/./_gcov.o
../../gcc-3.4/gcc/libgcov.c: In function `gcov_exit':
../../gcc-3.4/gcc/libgcov.c:556: error: unrecognizable insn:
(insn 640 631 632 45 ../../gcc-3.4/gcc/gcov-io.h:571 (set (strict_low_part (reg:QI 0 %d0))
       (const_int 1 [0x1])) -1 (nil)
   (nil))
../../gcc-3.4/gcc/libgcov.c:556: internal compiler error: in extract_insn, at recog.c:2083
---cut---

Reading rtl.texi, I can't make sense of the RTL expression
"(strict_low_part (reg:QI 0 %d0))".  An argument appears to
be missing:

---cut---
`(strict_low_part (subreg:M (reg:N R) 0))'
    This expression code is used in only one context: as the
    destination operand of a `set' expression.  In addition, the
    operand of this expression must be a non-paradoxical `subreg'
    expression.

    The presence of `strict_low_part' says that the part of the
    register which is meaningful in mode N, but is not part of mode M,
    is not to be altered.  Normally, an assignment to such a subreg is
    allowed to have undefined effects on the rest of the register when
    M is less than a word.
---cut---

There should be two modes, but I can only see QI.


This is the pattern in m68k.md:


---cut---
(define_expand "movstrictqi"
 [(set (strict_low_part (match_operand:QI 0 "nonimmediate_operand" ""))
       (match_operand:QI 1 "general_src_operand" ""))]
 ""
 "")

(define_insn ""
 [(set (strict_low_part (match_operand:QI 0 "nonimmediate_operand" "+dm"))
       (match_operand:QI 1 "general_src_operand" "dmSn"))]
 "!TARGET_COLDFIRE"
 "* return output_move_strictqi (operands);")

(define_insn ""
 [(set (strict_low_part (match_operand:QI 0 "nonimmediate_operand" "+d,m"))
       (match_operand:QI 1 "general_src_operand" "dmn,d"))]
 "TARGET_COLDFIRE"
 "* return output_move_strictqi (operands);")
---cut---

--
 // Bernardo Innocenti - Develer S.r.l., R&D dept.
\X/  http://www.develer.com/


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