aarch64: Fix build error in aarch64_register_move_cost
authorRichard Henderson <rth@redhat.com>
Fri, 18 Apr 2014 15:52:50 +0000 (08:52 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Fri, 18 Apr 2014 15:52:50 +0000 (08:52 -0700)
        * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
        to GET_MODE_SIZE, not a reg_class_t.

From-SVN: r209517

gcc/ChangeLog
gcc/config/aarch64/aarch64.c

index b6ce19eeca8c7c2bfba14eec7c89cac0cb2c5046..67109f8f1761ba0d094d1d44221c01d62de425a5 100644 (file)
@@ -1,3 +1,8 @@
+2014-04-18  Richard Henderson  <rth@redhat.com>
+
+       * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
+       to GET_MODE_SIZE, not a reg_class_t.
+
 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
 
        * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for
index a3147ee092f4bf018d1311975da4dd1de5760c84..7b6c2b38e03a556b8b31164d1a54a697087d8f3c 100644 (file)
@@ -4847,9 +4847,11 @@ aarch64_address_cost (rtx x ATTRIBUTE_UNUSED,
 }
 
 static int
-aarch64_register_move_cost (enum machine_mode mode ATTRIBUTE_UNUSED,
-                           reg_class_t from, reg_class_t to)
+aarch64_register_move_cost (enum machine_mode mode,
+                           reg_class_t from_i, reg_class_t to_i)
 {
+  enum reg_class from = (enum reg_class) from_i;
+  enum reg_class to = (enum reg_class) to_i;
   const struct cpu_regmove_cost *regmove_cost
     = aarch64_tune_params->regmove_cost;
 
@@ -4875,8 +4877,7 @@ aarch64_register_move_cost (enum machine_mode mode ATTRIBUTE_UNUSED,
      secondary reload.  A general register is used as a scratch to move
      the upper DI value and the lower DI value is moved directly,
      hence the cost is the sum of three moves. */
-
-  if (! TARGET_SIMD && GET_MODE_SIZE (from) == 128 && GET_MODE_SIZE (to) == 128)
+  if (! TARGET_SIMD && GET_MODE_SIZE (mode) == 128)
     return regmove_cost->GP2FP + regmove_cost->FP2GP + regmove_cost->FP2FP;
 
   return regmove_cost->FP2FP;