]> sourceware.org Git - glibc.git/commitdiff
Use x constraints for operands to vfmaddss and vfmaddsd
authorPeter Collingbourne <pcc@google.com>
Wed, 15 May 2013 18:31:53 +0000 (20:31 +0200)
committerAndreas Jaeger <aj@suse.de>
Wed, 15 May 2013 18:31:53 +0000 (20:31 +0200)
While these instructions accept memory operands, only one operand
may be a memory operand.  Giving two operands xm constraints gives
the compiler the option of using memory for both operands, which
would result in invalid assembly code.  Using x for all operands is
more appropriate, as most x86_64 calling conventions will pass the
arguments in registers anyway.

2013-05-15  Peter Collingbourne  <pcc@google.com>

* sysdeps/x86_64/fpu/multiarch/s_fma.c (__fma_fma4): Replace xm
constraints with x constraints.
* sysdeps/x86_64/fpu/multiarch/s_fmaf.c (__fmaf_fma4): Likewise.

ChangeLog
sysdeps/x86_64/fpu/multiarch/s_fma.c
sysdeps/x86_64/fpu/multiarch/s_fmaf.c

index 42b02ee21884cf7b92483c579a0dd0e5aec4f09d..45505668158933345ed40db3a934a4848689ecfb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2013-05-15  Peter Collingbourne  <pcc@google.com>
 
+       * sysdeps/x86_64/fpu/multiarch/s_fma.c (__fma_fma4): Replace xm
+       constraints with x constraints.
+       * sysdeps/x86_64/fpu/multiarch/s_fmaf.c (__fmaf_fma4): Likewise.
+
        * malloc/obstack.c (_obstack_compat): Add initializer.
 
 2013-05-15  Edjunior Machado  <emachado@linux.vnet.ibm.com>
index ea185590d3e976af14dd940eeae19d2f68fff84c..25a306f86a71609cde43e98152c7c0ce0e143602 100644 (file)
@@ -38,7 +38,7 @@ __fma_fma3 (double x, double y, double z)
 static double
 __fma_fma4 (double x, double y, double z)
 {
-  asm ("vfmaddsd %3, %2, %1, %0" : "=x" (x) : "x" (x), "xm" (y), "xm" (z));
+  asm ("vfmaddsd %3, %2, %1, %0" : "=x" (x) : "x" (x), "x" (y), "x" (z));
   return x;
 }
 # else
index 9647d79e709986efa213ba6c8c4fb2b39cad6f3a..063be692d17bb965a1516d6e7b0980570c11882c 100644 (file)
@@ -37,7 +37,7 @@ __fmaf_fma3 (float x, float y, float z)
 static float
 __fmaf_fma4 (float x, float y, float z)
 {
-  asm ("vfmaddss %3, %2, %1, %0" : "=x" (x) : "x" (x), "xm" (y), "xm" (z));
+  asm ("vfmaddss %3, %2, %1, %0" : "=x" (x) : "x" (x), "x" (y), "x" (z));
   return x;
 }
 # else
This page took 0.11454 seconds and 5 git commands to generate.