This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: 3.0-pre crashes on i686 code
- To: Jan Hubicka <jh at suse dot cz>
- Subject: Re: 3.0-pre crashes on i686 code
- From: Teemu Torma <tot at trema dot com>
- Date: Thu, 31 May 2001 18:11:18 +0200
- CC: gcc-patches at gcc dot gnu dot org, rth at cygnus dot com, gcc at gcc dot gnu dot org
- References: <20010531180526.I28764@atrey.karlin.mff.cuni.cz>
Jan Hubicka wrote:
>
> Looking at the crash, it seems to be latent bug. Can you try whether following patch fix your testcase?
> Thu May 31 18:04:54 CEST 2001 Jan Hubicka <jh@suse.cz>
> * i386.c (ix86_expand_int_movcc): Force one of operands to be register.
> Index: config/i386/i386.c
> ===================================================================
> RCS file: /cvs/gcc/egcs/gcc/config/i386/i386.c,v
> retrieving revision 1.261
> diff -c -3 -p -r1.261 i386.c
> *** i386.c 2001/05/24 13:59:09 1.261
> --- i386.c 2001/05/31 16:04:45
> *************** ix86_expand_int_movcc (operands)
> *** 6575,6580 ****
> --- 6575,6583 ----
> emit_move_insn (tmp, operands[2]);
> operands[2] = tmp;
> }
> + if (! register_operand (operands[2], VOIDmode)
> + && ! register_operand (operands[3], VOIDmode))
> + operands[2] = force_reg (GET_MODE (operands[0]), operands[2]);
>
> emit_insn (compare_seq);
> emit_insn (gen_rtx_SET (VOIDmode, operands[0],
Yes, it compiles now.
Thanks,
Teemu