http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56807
--- Comment #20 from Anton Mitrofanov <BugMaster at narod dot ru> --- I was talking about: if (r10_live && eax_live) { t = plus_constant (Pmode, stack_pointer_rtx, allocate); emit_move_insn (gen_rtx_REG (word_mode, R10_REG), gen_frame_mem (word_mode, t)); t = plus_constant (Pmode, stack_pointer_rtx, allocate - UNITS_PER_WORD); emit_move_insn (gen_rtx_REG (word_mode, AX_REG), gen_frame_mem (word_mode, t)); } And especially: t = plus_constant (Pmode, stack_pointer_rtx, allocate - UNITS_PER_WORD);