zlaski      02/09/26 14:29:20

  Modified:    gcc/config darwin.c
  Log:
  Migrate Stuart's fix for 3032085 into TOT.
  
  Revision  Changes    Path
  1.79      +18 -0     gcc3/gcc/config/darwin.c
  
  Index: darwin.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/config/darwin.c,v
  retrieving revision 1.78
  retrieving revision 1.79
  diff -u -r1.78 -r1.79
  --- darwin.c  2002/08/26 20:08:02     1.78
  +++ darwin.c  2002/09/26 21:29:20     1.79
  @@ -958,8 +958,26 @@
          pic_ref = plus_constant (base, INTVAL (orig));
          is_complex = 1;
        }
  +      /* APPLE LOCAL begin gen ADD */
  +#ifdef MASK_80387
  +      else if ((GET_CODE (XEXP (orig, 0)) == MEM))
  +     {
  +       pic_ref = gen_rtx (PLUS, Pmode, base, orig);
  +       if ( ! reload_in_progress) /* necessary ? */
  +         {
  +           rtx clob = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (CCmode, FLAGS_REG));
  +           rtx set  = gen_rtx_SET (VOIDmode, reg, pic_ref);
  +           pic_ref = gen_rtx_PARALLEL (VOIDmode, gen_rtvec (2, set, clob));
  +           emit_insn (pic_ref);
  +           pic_ref = reg;
  +           is_complex = 0;
  +         }
  +     }
  +#endif
         else
        pic_ref = gen_rtx (PLUS, Pmode, base, orig);
  +
  +     /* APPLE LOCAL end gen ADD */
   
         if (RTX_UNCHANGING_P (base) && RTX_UNCHANGING_P (orig))
        RTX_UNCHANGING_P (pic_ref) = 1;
  
  
  


Reply via email to