This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: CVS trunk bootstrap failure on alphaev6-unknown-linux-gnu
- To: Toon Moene <toon at moene dot indiv dot nluug dot nl>
- Subject: Re: CVS trunk bootstrap failure on alphaev6-unknown-linux-gnu
- From: Alexandre Oliva <aoliva at redhat dot com>
- Date: 01 Jul 2001 10:36:07 -0300
- Cc: gcc-bugs at gcc dot gnu dot org
- Organization: GCC Team, Red Hat
- References: <3B3CE7DE.F636FA98@moene.indiv.nluug.nl><3B3E0EBB.9ADC50B1@moene.indiv.nluug.nl>
On Jun 30, 2001, Toon Moene <toon@moene.indiv.nluug.nl> wrote:
> || ! ((*insn_data[icode].operand[2].predicate)
> (y, insn_data[icode].operand[2].mode)))
> abort ();
> It aborts because it's called with a (const_int 65535 [0xffff]) as y
> value, which doesn't have a mode.
I don't think this is the problem. The mode being passed to the
predicate is the mode in the insn pattern, not that of the operand.
So either the pattern is missing a mode or the predicate is being
overly restrictive, or this is a bug I've found before, which is that
the code in reload_cse_move2add() simply assumes the immediate operand
is going to be accepted as an add operand, but this is not going to be
the case when the offset is too wide for an immediate operand of an
add. In this case, gen_add2_insn abort()s; we should either introduce
the test in reload-cse_move2add() or change gen_add2_insn such that it
can report invalid operands instead of abort()ing.
--
Alexandre Oliva Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist *Please* write to mailing lists, not to me