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

problem w/ sparc-sun-solaris2.5.1 egcs build


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


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