This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the EGCS project.


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

Re: bug in new_ia32_branch


> Date: Mon, 26 Jul 1999 16:59:08 -0700
> From: Richard Henderson <rth@cygnus.com>
> To: Mike Stump <mrs@wrs.com>, egcs-bugs@egcs.cygnus.com

> On Mon, Jul 26, 1999 at 04:43:42PM -0700, Mike Stump wrote:
> > Bug in new_ia32_branch (been in there for a while, and is still in
> > there), compile with -O1 -fexceptions:
> [...]
> > /tmp/t.ii:18: internal error--unrecognizable insn:
> > (insn/i 35 34 37 (set (mem:SI (reg:SI 32) 0)
> >         (plus:SI (reg:SI 28)
> >             (const_int -44 [0xffffffd4]))) -1 (insn_list 29 (nil))
> >     (expr_list:REG_DEAD (reg:SI 28)
> >         (expr_list:REG_DEAD (reg:SI 32)
> >             (nil))))

> I can't reproduce this.

Of course not, it was incomplete, my bad, sorry.  Try adding a
-fsjlj-exceptions to the command line.  I notice that if I add:

Doing diffs in i386.c.~1~:
*** i386.c.~1~	Tue Jul 20 11:27:00 1999
--- i386.c	Mon Jul 26 17:38:40 1999
*************** ix86_expand_move (mode, operands)
*** 3510,3515 ****
--- 3510,3521 ----
  	}
        else
  	{
+ 	  /* WRS LOCAL fixes bug report to egcs-bugs on Jul 26th, 1999 */
+ 	  if (GET_CODE (operands[0]) == MEM
+ 	      && GET_CODE (operands[1]) == PLUS)
+ 	    operands[1] = force_reg (mode, operands[1]);
+ 	  /* END WRS LOCAL */
+ 
  	  /* Try to guess when a cc clobber on the move might be fruitful.  */
  	  if (!strict
  	      && GET_CODE (operands[0]) == REG
--------------

then everything gets past the reported bug.  So, I now suspect that if
the .rtl file is bad, then the bug is somewhere in my EH code.  If the
.rtl is ok, then it appears to be in either the .md file (or the .c
file), or in the machine independent part somewhere.  Let me know if
the .rtl is bad, and I'll go find the code in except.c that is wrong
and fix it.

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