Patchwork [i386] : Apply "*" constraint modifier to "r" in *movdf_internal_nointeger

login
register
mail settings
Submitter Uros Bizjak
Date May 6, 2011, 11:36 a.m.
Message ID <BANLkTim2+Vr0CfZpBb6HmvF3CWN=XWEHDw@mail.gmail.com>
Download mbox | patch
Permalink /patch/94363/
State New
Headers show

Comments

Uros Bizjak - May 6, 2011, 11:36 a.m.
Hello!

We should avoid to allocate "r" in *_nointeger instructions.
Constraint modifiers apply to a following character, not to the whole
alternative.

2011-05-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
	constraint modifier to "r".

Tested on x86_64-pc-linux-gnu {,-m32}, committed to mainline SVN and
(soon) 4.6 branch.

Uros.

Patch

Index: config/i386/i386.md
===================================================================
--- config/i386/i386.md	(revision 173469)
+++ config/i386/i386.md	(working copy)
@@ -3251,7 +3251,7 @@ 
   [(set (match_operand:DF 0 "nonimmediate_operand"
 			"=f,m,f,*r  ,o  ,Y2*x,Y2*x,Y2*x ,m  ")
 	(match_operand:DF 1 "general_operand"
-			"fm,f,G,*roF,*Fr,C   ,Y2*x,mY2*x,Y2*x"))]
+			"fm,f,G,*roF,F*r,C   ,Y2*x,mY2*x,Y2*x"))]
   "!TARGET_64BIT && !(MEM_P (operands[0]) && MEM_P (operands[1]))
    && (optimize_function_for_size_p (cfun)
        || !TARGET_INTEGER_DFMODE_MOVES)