problem w/ sparc-sun-solaris2.5.1 egcs build
Brendan Kehoe
brendan@cygnus.com
Mon Aug 10 15:16:00 GMT 1998
With the current EGCS, which includes the sparc changes, building libgcc is
failing on _fixtfdi. Equivalent command used is:
% ./xgcc -B./ -O2 -DIN_GCC -DSVR4 -g -O -I./include -fPIC -g1 -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I/home/brendan/egcs/gcc -I/home/brendan/egcs/gcc/config -c -DL_fixtfdi /home/brendan/egcs/gcc/libgcc2.c -o x.o
/home/brendan/egcs/gcc/emit-rtl.c:1004: Internal compiler error in function gen_highpart
It's happening while doing the shorten branches pass, at the beginning of
gen_highpart:
1000 /* This case loses if X is a subreg. To catch bugs early,
1001 complain if an invalid MODE is used even in other cases. */
1002 if (GET_MODE_SIZE (mode) > UNITS_PER_WORD
1003 && GET_MODE_SIZE (mode) != GET_MODE_UNIT_SIZE (GET_MODE (x)))
1004 abort ();
mode is DFmode, and and X is `(reg:TF 8 %o0)'. It's inside
(define_split
[(set (match_operand:TF 0 "register_operand" "")
(match_operand:TF 1 "memory_operand" ""))]
"(reload_completed
&& offsettable_memref_p (operands[1]))"
[(clobber (const_int 0))]
"
{
rtx word0 = change_address (operands[1], DFmode, NULL_RTX);
rtx word1 = change_address (operands[1], DFmode,
plus_constant_for_output (XEXP (word0, 0), 8));
emit_insn (gen_movdf (gen_highpart (DFmode, operands[0]),
word0));
emit_insn (gen_movdf (gen_lowpart (DFmode, operands[0]),
word1));
DONE;
}")
B
More information about the Gcc-bugs
mailing list