aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/arm/vfp.md
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/arm/vfp.md')
-rw-r--r--gcc/config/arm/vfp.md8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/config/arm/vfp.md b/gcc/config/arm/vfp.md
index 5809a45..c85f58c 100644
--- a/gcc/config/arm/vfp.md
+++ b/gcc/config/arm/vfp.md
@@ -148,7 +148,9 @@
(define_insn "*arm_movdi_vfp"
[(set (match_operand:DI 0 "nonimmediate_di_operand" "=r, r,m,w,r,w,w, Uv")
(match_operand:DI 1 "di_operand" "rIK,mi,r,r,w,w,Uvi,w"))]
- "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_VFP"
+ "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_VFP
+ && ( register_operand (operands[0], DImode)
+ || register_operand (operands[1], DImode))"
"*
switch (which_alternative)
{
@@ -207,7 +209,9 @@
(define_insn "*movdf_vfp"
[(set (match_operand:DF 0 "nonimmediate_soft_df_operand" "=w,r,r, m,w ,Uv,w,r")
(match_operand:DF 1 "soft_df_operand" " r,w,mF,r,UvF,w, w,r"))]
- "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_VFP"
+ "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_VFP
+ && ( register_operand (operands[0], DFmode)
+ || register_operand (operands[1], DFmode))"
"*
{
switch (which_alternative)