PATCH: PR target/31344: Bootstrap is broken on i[345]86-linux

Ian Lance Taylor iant@google.com
Mon Apr 30 22:42:00 GMT 2007


"H. J. Lu" <hjl@lucon.org> writes:

> On Sun, Apr 29, 2007 at 05:14:05PM -0700, H. J. Lu wrote:
> > 
> > emit_single_push_insn calls emit_move_insn to push dfp. emit_move_insn
> > calls emit_move_via_integer to push dfp via integer, which generates
> > 
> > (set (reg/f:SI 67) (pre_dec:SI (reg/f:SI 7 sp)))
> > 
> > It leads to an unrecognizable insn error. I am not sure if
> > emit_move_via_integer properly handles moving from Y to X and X
> > satifies push_operand.
> > 
> > 
> 
> Does this patch makes any senses?
> 
> 
> H.J.
> ----
> 2007-04-29  H.J. Lu  <hongjiu.lu@intel.com>
> 
> 	PR target/31344
> 	* expr.c (emit_move_resolve_push): Move it before ...
> 	(emit_move_via_integer): This.  Call emit_move_resolve_push to
> 	replace the push destination with a reference to the stack
> 	pointer.

This doesn't make sense to me.  It seems like it will generate worse
code for pushing a complex number as a function argument.

What are the arguments to emit_move_change_mode?

Ian



More information about the Gcc-patches mailing list