vfp.md (*thumb2_movdf_vfp): Require one of the operands to be a register.
authorRuben Buchatskiy <ruben@ispras.ru>
Mon, 17 Sep 2012 07:37:10 +0000 (07:37 +0000)
committerAndrey Belevantsev <abel@gcc.gnu.org>
Mon, 17 Sep 2012 07:37:10 +0000 (11:37 +0400)
2012-09-17  Ruben Buchatskiy  <ruben@ispras.ru>

        * config/arm/vfp.md (*thumb2_movdf_vfp): Require one of the operands
        to be a register.

From-SVN: r191375

gcc/ChangeLog
gcc/config/arm/vfp.md

index 74d1f3c34e7ebd58d5e02eb61631997faf56232c..efd3d79e56dbed3c3a472b2ed5a8f8e071d21dac 100644 (file)
@@ -1,3 +1,8 @@
+2012-09-17  Ruben Buchatskiy  <ruben@ispras.ru>
+
+       * config/arm/vfp.md (*thumb2_movdf_vfp): Require one of the operands
+       to be a register.
+
 2012-09-16  Richard Sandiford  <rdsandiford@googlemail.com>
 
        * calls.c (expand_call): Use emit_group_move for PARALLEL->PARALLEL
index 4a56d57d7b78894078eb888ae7a5bbb5574560d6..d48d4e66a6c827ec6d471a218a175537f038d798 100644 (file)
 (define_insn "*thumb2_movdf_vfp"
   [(set (match_operand:DF 0 "nonimmediate_soft_df_operand" "=w,?r,w ,w  ,Uv,r ,m,w,r")
        (match_operand:DF 1 "soft_df_operand"              " ?r,w,Dy,UvF,w, mF,r, w,r"))]
-  "TARGET_THUMB2 && TARGET_HARD_FLOAT && TARGET_VFP"
+  "TARGET_THUMB2 && TARGET_HARD_FLOAT && TARGET_VFP
+   && (   register_operand (operands[0], DFmode)
+       || register_operand (operands[1], DFmode))"
   "*
   {
     switch (which_alternative)