On Fri, Apr 27, 2007 at 04:00:13PM +0200, Rask Ingemann Lambertsen wrote:
>    I don't see how emit_move_complex_push() can ever generate a push
> instruction. Here's a backtrace:

  emit_move_insn (gen_rtx_MEM (submode, XEXP (x, 0)),
                  read_complex_part (y, imag_first));
  return emit_move_insn (gen_rtx_MEM (submode, XEXP (x, 0)),
                         read_complex_part (y, !imag_first));

Note that we're replacing (pre_dec:CSI sp) with two
instances of (pre_dec:SI sp).

>    Usually, doing so will fool reload's frame pointer elimination if the
> operand is a pseudo which ends up on the stack. Diffing the output between
> the two implementations confirms it:

This doesn't look like frame pointer elimination at all,
just different stack slots allocated.  But that said, if
there's a bug in elimination, it should be fixed, not
hacked around in one backend.


r~

Reply via email to