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~