arm.c (arm_get_frame_offsets): Validate architecture supports LDRD/STRD before accept...
authorRichard Earnshaw <rearnsha@arm.com>
Wed, 18 Sep 2013 13:57:27 +0000 (13:57 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Wed, 18 Sep 2013 13:57:27 +0000 (13:57 +0000)
* arm.c (arm_get_frame_offsets): Validate architecture supports
LDRD/STRD before accepting the tuning preference.
(arm_expand_prologue): Likewise.
(arm_expand_epilogue): Likewise.

From-SVN: r202702

gcc/ChangeLog
gcc/config/arm/arm.c

index 800ef75..3d38778 100644 (file)
@@ -1,3 +1,10 @@
+2013-09-18  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.c (arm_get_frame_offsets): Validate architecture supports
+       LDRD/STRD before accepting the tuning preference.
+       (arm_expand_prologue): Likewise.
+       (arm_expand_epilogue): Likewise.
+
 2013-09-18  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/58417
index 176f719..2166001 100644 (file)
@@ -17969,7 +17969,8 @@ arm_get_frame_offsets (void)
           if (! any_sibcall_could_use_r3 ()
              && arm_size_return_regs () <= 12
              && (offsets->saved_regs_mask & (1 << 3)) == 0
-              && (TARGET_THUMB2 || !current_tune->prefer_ldrd_strd))
+              && (TARGET_THUMB2
+                 || !(TARGET_LDRD && current_tune->prefer_ldrd_strd)))
            {
              reg = 3;
            }
@@ -18394,7 +18395,8 @@ arm_expand_prologue (void)
            }
        }
 
-      if (current_tune->prefer_ldrd_strd
+      if (TARGET_LDRD
+         && current_tune->prefer_ldrd_strd
           && !optimize_function_for_size_p (cfun))
         {
           if (TARGET_THUMB2)
@@ -24663,7 +24665,8 @@ arm_expand_epilogue (bool really_return)
         }
       else
         {
-          if (current_tune->prefer_ldrd_strd
+          if (TARGET_LDRD
+             && current_tune->prefer_ldrd_strd
               && !optimize_function_for_size_p (cfun))
             {
               if (TARGET_THUMB2)