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]

Re: CVS trunk bootstrap failure on alphaev6-unknown-linux-gnu


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


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