johannes    02/09/05 18:09:05

  Modified:    gcc/config/rs6000 rs6000.c
  Log:
  Fix an Altivec-related bug in epilog code (3029057).
  
  Revision  Changes    Path
  1.171     +6 -2      gcc3/gcc/config/rs6000/rs6000.c
  
  Index: rs6000.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/config/rs6000/rs6000.c,v
  retrieving revision 1.170
  retrieving revision 1.171
  diff -u -r1.170 -r1.171
  --- rs6000.c  2002/09/03 23:44:44     1.170
  +++ rs6000.c  2002/09/06 01:09:04     1.171
  @@ -13808,7 +13808,10 @@
         /* Prevent any attempt to delete the setting of R0 or R10!  */
         RTVEC_ELT (p, j++) = gen_rtx_USE (VOIDmode, gen_rtx_REG (reg_mode, 0));
         RTVEC_ELT (p, j++) = gen_rtx_USE (VOIDmode, gen_rtx_REG (reg_mode, 10));
  -      emit_insn (gen_rtx_PARALLEL (VOIDmode, p));
  +      if (vrsave == branch)
  +        emit_jump_insn (gen_rtx_PARALLEL (VOIDmode, p));
  +      else
  +     emit_insn (gen_rtx_PARALLEL (VOIDmode, p));
   
         /* Get the old lr if we saved it.  */
         if (info->lr_save_p && vrsave == call)
  @@ -13860,7 +13863,8 @@
                 : gen_adddi3 (sp_reg_rtx, sp_reg_rtx, sa));
       }
   
  -  if (!sibcall)
  +  /* APPLE LOCAL Altivec related */
  +  if (!sibcall && vrsave != branch)
       {
         rtvec p;
         if (! restoring_FPRs_inline)
  
  
  


Reply via email to