+2004-03-05 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.c (s390_expand_movstr): Clobber double-word
+ register before initializing high and low parts separately.
+ (s390_expand_clrstr): Likewise.
+ (s390_expand_cmpstr): Likewise.
+
2004-03-05 Ulrich Weigand <uweigand@de.ibm.com>
PR optimization/12147
rtx reg0 = gen_reg_rtx (double_mode);
rtx reg1 = gen_reg_rtx (double_mode);
+ emit_insn (gen_rtx_CLOBBER (VOIDmode, reg0));
+ emit_insn (gen_rtx_CLOBBER (VOIDmode, reg1));
+
emit_move_insn (gen_highpart (single_mode, reg0),
force_operand (XEXP (dst, 0), NULL_RTX));
emit_move_insn (gen_highpart (single_mode, reg1),
rtx reg0 = gen_reg_rtx (double_mode);
rtx reg1 = gen_reg_rtx (double_mode);
+ emit_insn (gen_rtx_CLOBBER (VOIDmode, reg0));
+ emit_insn (gen_rtx_CLOBBER (VOIDmode, reg1));
+
emit_move_insn (gen_highpart (single_mode, reg0),
force_operand (XEXP (dst, 0), NULL_RTX));
convert_move (gen_lowpart (single_mode, reg0), len, 1);
rtx reg0 = gen_reg_rtx (double_mode);
rtx reg1 = gen_reg_rtx (double_mode);
+ emit_insn (gen_rtx_CLOBBER (VOIDmode, reg0));
+ emit_insn (gen_rtx_CLOBBER (VOIDmode, reg1));
+
emit_move_insn (gen_highpart (single_mode, reg0),
force_operand (XEXP (op0, 0), NULL_RTX));
emit_move_insn (gen_highpart (single_mode, reg1),