+Fri Mar 30 17:36:43 CEST 2001 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (ix86_split_long_move): Use change address to compensate
+ stack pointer change in push instruction.
+
Fri Mar 30 00:31:00 CEST 2001 Jan Hubicka <jh@suse.cz>
* i386.md (sse_movdfcc_eq): Fix constraint (sse_mov?fcc splitter): Use operands_match_p
&& reg_overlap_mentioned_p (stack_pointer_rtx, operands[1]))
{
if (nparts == 3)
- part[1][1] = part[1][2];
- part[1][0] = part[1][1];
+ part[1][1] = change_address (part[1][1], GET_MODE (part[1][1]),
+ XEXP (part[1][2], 0));
+ part[1][0] = change_address (part[1][0], GET_MODE (part[1][0]),
+ XEXP (part[1][1], 0));
}
/* We need to do copy in the right order in case an address register
part[1][1] = gen_rtx_REG (DImode, REGNO (part[1][1]));
else
abort();
+ if (GET_MODE (part[1][0]) == SImode)
+ part[1][0] = part[1][1];
}
}
emit_move_insn (part[0][1], part[1][1]);