+2010-03-24 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/43484
+ * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
+ used in reg+reg addressing, swap registers.
+
2010-03-24 Jakub Jelinek <jakub@redhat.com>
PR debug/43293
{
rtx basereg = XEXP (XEXP (dst, 0), 0);
rtx offsetreg = XEXP (XEXP (dst, 0), 1);
+ gcc_assert (GET_CODE (XEXP (dst, 0)) == PLUS
+ && REG_P (basereg)
+ && REG_P (offsetreg)
+ && REGNO (basereg) != REGNO (offsetreg));
+ if (REGNO (basereg) == 0)
+ {
+ rtx tmp = offsetreg;
+ offsetreg = basereg;
+ basereg = tmp;
+ }
emit_insn (gen_add3_insn (basereg, basereg, offsetreg));
restore_basereg = gen_sub3_insn (basereg, basereg, offsetreg);
dst = replace_equiv_address (dst, basereg);