From: Paul Brook Date: Wed, 29 Mar 2006 19:14:57 +0000 (+0000) Subject: vfp.md (movsf_vfp): Disparage w<->r alternatives. X-Git-Tag: releases/gcc-4.2.0~3511 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=221b2a64481b3ef75e14c5205ff986ced3a88a22;p=thirdparty%2Fgcc.git vfp.md (movsf_vfp): Disparage w<->r alternatives. 2006-03-29 Paul Brook * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives. (movdf_vfp): Ditto. From-SVN: r112504 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 274c94d059b0..4d499c399649 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-03-29 Paul Brook + + * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives. + (movdf_vfp): Ditto. + 2006-03-29 Sebastian Pop PR tree-optimization/26859 diff --git a/gcc/config/arm/vfp.md b/gcc/config/arm/vfp.md index c85f58cf88b2..3f8b397e1538 100644 --- a/gcc/config/arm/vfp.md +++ b/gcc/config/arm/vfp.md @@ -181,10 +181,12 @@ ;; SFmode moves +;; Disparage the w<->r cases because reloading an invalid address is +;; preferable to loading the value via integer registers. (define_insn "*movsf_vfp" - [(set (match_operand:SF 0 "nonimmediate_operand" "=w,r,w ,Uv,r ,m,w,r") - (match_operand:SF 1 "general_operand" " r,w,UvE,w, mE,r,w,r"))] + [(set (match_operand:SF 0 "nonimmediate_operand" "=w,?r,w ,Uv,r ,m,w,r") + (match_operand:SF 1 "general_operand" " ?r,w,UvE,w, mE,r,w,r"))] "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_VFP && ( s_register_operand (operands[0], SFmode) || s_register_operand (operands[1], SFmode))" @@ -207,8 +209,8 @@ ;; DFmode moves (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"))] + [(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 && ( register_operand (operands[0], DFmode) || register_operand (operands[1], DFmode))"