This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: [Fwd: CVS trunk bootstrap failure on alphaev6-unknown-linux-gnu]
- To: toon at moene dot indiv dot nluug dot nl (Toon Moene)
- Subject: Re: [Fwd: CVS trunk bootstrap failure on alphaev6-unknown-linux-gnu]
- From: Joern Rennecke <amylaar at redhat dot com>
- Date: Fri, 6 Jul 2001 22:32:05 +0100 (BST)
- Cc: amylaar at cambridge dot redhat dot com, gcc-bugs at gcc dot gnu dot org
> This piece of code aborts:
>
> /* Generate and return an insn body to add Y to X. */
>
> rtx
> gen_add2_insn (x, y)
> rtx x, y;
> {
> int icode = (int) add_optab->handlers[(int) GET_MODE (x)].insn_code;
>
> if (!
> ((*insn_data[icode].operand[0].predicate)
> (x, insn_data[icode].operand[0].mode))
> || ! ((*insn_data[icode].operand[1].predicate)
> (x, insn_data[icode].operand[1].mode))
> || ! ((*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.
Huh? The add?I predicates should allow a CONST_INT when passed their
respective integer modes. So where does the mode of y come in?