]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* gcc/config/rs6000/rs6000.c (rs6000_stack_info)
authorHartmut Penner <hpenner@de.ibm.com>
Wed, 14 Jan 2004 14:03:58 +0000 (14:03 +0000)
committerHartmut Penner <hpenner@gcc.gnu.org>
Wed, 14 Jan 2004 14:03:58 +0000 (14:03 +0000)
      Calculate always vrsave_mask if TARGET_ALTIVEC.
      (rs6000_emit_prologue): Emit code for vrsave
      only if TARGET_ALTIVEC_VRSAVE.
      (rs6000_emit_epilogue): Likewise.

From-SVN: r75865

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index d6d3a762191471f4866e042d6fe3f63b47a11cba..6ea15342b0ef1125e4e83c84f32e8329ab69258a 100644 (file)
@@ -1,3 +1,11 @@
+2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
+
+       * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
+       Calculate always vrsave_mask if TARGET_ALTIVEC.
+       (rs6000_emit_prologue): Emit code for vrsave
+       only if TARGET_ALTIVEC_VRSAVE.
+       (rs6000_emit_epilogue): Likewise.
 2003-01-14  Nicola Pero  <n.pero@mi.flashnet.it>
 
        PR objc/7993
index 4364558134cf9e7b1ae274ab13d79d489b25cdee..3931373736b0c120a3d593ca3850c73a48969aa3 100644 (file)
@@ -9190,16 +9190,15 @@ rs6000_stack_info ()
   else
     info_ptr->spe_gp_size = 0;
 
-  if (TARGET_ALTIVEC_ABI && TARGET_ALTIVEC_VRSAVE)
-    {
-      info_ptr->vrsave_mask = compute_vrsave_mask ();
-      info_ptr->vrsave_size  = info_ptr->vrsave_mask ? 4 : 0;
-    }
+  if (TARGET_ALTIVEC_ABI)
+    info_ptr->vrsave_mask = compute_vrsave_mask ();
   else
-    {
-      info_ptr->vrsave_mask = 0;
-      info_ptr->vrsave_size = 0;
-    }
+    info_ptr->vrsave_mask = 0;
+
+  if (TARGET_ALTIVEC_VRSAVE && info_ptr->vrsave_mask)
+    info_ptr->vrsave_size  = 4;
+  else
+    info_ptr->vrsave_size  = 0;
 
   /* Calculate the offsets.  */
   switch (abi)
@@ -10351,7 +10350,8 @@ rs6000_emit_prologue ()
      used in this function, and do the corresponding magic in the
      epilogue.  */
 
-  if (TARGET_ALTIVEC && info->vrsave_mask != 0)
+  if (TARGET_ALTIVEC && TARGET_ALTIVEC_VRSAVE
+      && info->vrsave_mask != 0)
     {
       rtx reg, mem, vrsave;
       int offset;
@@ -10792,7 +10792,8 @@ rs6000_emit_epilogue (sibcall)
     }
 
   /* Restore VRSAVE if needed.  */
-  if (TARGET_ALTIVEC_ABI && info->vrsave_mask != 0)
+  if (TARGET_ALTIVEC_ABI && TARGET_ALTIVEC_VRSAVE 
+      && info->vrsave_mask != 0)
     {
       rtx addr, mem, reg;