Here is a patch in case SF did not update sources.
~d

Index: msp430.c
===================================================================
RCS file: /cvsroot/mspgcc/gcc/gcc-3.3/gcc/config/msp430/msp430.c,v
retrieving revision 1.73
diff -c -3 -p -r1.73 msp430.c
*** msp430.c    1 Oct 2003 16:26:44 -0000       1.73
--- msp430.c    15 Oct 2003 16:35:48 -0000
*************** msp430_cc_source (insn, code, x, y)
*** 5643,5649 ****
--- 5643,5660 ----
    enum attr_cc cc;
    rtx set;
    rtx src, dst;
+   rtx x1 = 0;

+   if(GET_CODE(x) == MEM)
+   {
+     x1 = XEXP(x,0);
+     if(GET_CODE(x1) == PLUS)
+     {
+       x1 = XEXP(x1,0);
+     }
+
+     if(!REG_P(x1)) x1 = 0;
+   }

    while (0 != (prev = PREV_INSN (prev)))
      {
*************** msp430_cc_source (insn, code, x, y)
*** 5664,5670 ****
            {
              /*The one spot by Nick C. */
              dst = SET_DEST (set);
!             if(dst && rtx_equal_p (x, dst))
                return 0;
              else
                continue;
--- 5675,5682 ----
            {
              /*The one spot by Nick C. */
              dst = SET_DEST (set);
!             if((dst && rtx_equal_p (x, dst)) ||
!                 (x1 && dst && rtx_equal_p (x1, dst)))
                return 0;
              else
                continue;
*************** msp430_umul3_guard (operands, sext)
*** 9165,9171 ****
  {
    rtx m_mpy = mpy_rtx;
    rtx m_op2 = op2_rtx;
-   rtx m_reslo = reslo_rtx;
    enum machine_mode op0mode = GET_MODE (operands[0]);
    enum machine_mode op1mode = GET_MODE (operands[1]);
    rtx r12 = gen_rtx_REG (op1mode, 12);
--- 9177,9182 ----


Reply via email to