diff options
author | Ulrich Drepper <drepper@gmail.com> | 2011-10-17 20:30:52 -0400 |
---|---|---|
committer | Ulrich Drepper <drepper@gmail.com> | 2011-10-17 20:30:52 -0400 |
commit | 228a984d543439308632ade9a77a171c88c11afc (patch) | |
tree | 855545724b77f1ba104bb5536eed737367b13fcf /sysdeps/x86_64 | |
parent | c8553a6a6f6fdb20950e5e6b62bfa7e21350449c (diff) | |
download | glibc-228a984d543439308632ade9a77a171c88c11afc.tar.gz glibc-228a984d543439308632ade9a77a171c88c11afc.tar.xz glibc-228a984d543439308632ade9a77a171c88c11afc.zip |
Relax asm requirements for recently added x86-64 math interfaces
Diffstat (limited to 'sysdeps/x86_64')
-rw-r--r-- | sysdeps/x86_64/fpu/bits/mathinline.h | 12 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/math_private.h | 8 |
2 files changed, 10 insertions, 10 deletions
diff --git a/sysdeps/x86_64/fpu/bits/mathinline.h b/sysdeps/x86_64/fpu/bits/mathinline.h index 721f6e4731..6221958773 100644 --- a/sysdeps/x86_64/fpu/bits/mathinline.h +++ b/sysdeps/x86_64/fpu/bits/mathinline.h @@ -156,14 +156,14 @@ __MATH_INLINE double __NTH (rint (double __x)) { double __res; - __asm ("roundsd $4, %1, %0" : "=x" (__res) : "x" (__x)); + __asm ("roundsd $4, %1, %0" : "=x" (__res) : "xm" (__x)); return __res; } __MATH_INLINE float __NTH (rintf (float __x)) { float __res; - __asm ("roundss $4, %1, %0" : "=x" (__res) : "x" (__x)); + __asm ("roundss $4, %1, %0" : "=x" (__res) : "xm" (__x)); return __res; } @@ -176,7 +176,7 @@ __MATH_INLINE double __NTH (ceil (double __x)) { double __res; - __asm ("roundsd $2, %1, %0" : "=x" (__res) : "x" (__x)); + __asm ("roundsd $2, %1, %0" : "=x" (__res) : "xm" (__x)); return __res; } __END_NAMESPACE_STD @@ -186,7 +186,7 @@ __MATH_INLINE float __NTH (ceilf (float __x)) { float __res; - __asm ("roundss $2, %1, %0" : "=x" (__res) : "x" (__x)); + __asm ("roundss $2, %1, %0" : "=x" (__res) : "xm" (__x)); return __res; } __END_NAMESPACE_C99 @@ -197,7 +197,7 @@ __MATH_INLINE double __NTH (floor (double __x)) { double __res; - __asm ("roundsd $1, %1, %0" : "=x" (__res) : "x" (__x)); + __asm ("roundsd $1, %1, %0" : "=x" (__res) : "xm" (__x)); return __res; } __END_NAMESPACE_STD @@ -207,7 +207,7 @@ __MATH_INLINE float __NTH (floorf (float __x)) { float __res; - __asm ("roundss $1, %1, %0" : "=x" (__res) : "x" (__x)); + __asm ("roundss $1, %1, %0" : "=x" (__res) : "xm" (__x)); return __res; } __END_NAMESPACE_C99 diff --git a/sysdeps/x86_64/fpu/math_private.h b/sysdeps/x86_64/fpu/math_private.h index a66616b7a5..6cff8b3161 100644 --- a/sysdeps/x86_64/fpu/math_private.h +++ b/sysdeps/x86_64/fpu/math_private.h @@ -95,26 +95,26 @@ do { \ # ifndef __rint # define __rint(d) \ ({ double __res; \ - asm ("roundsd $4, %1, %0" : "=x" (__res) : "x" ((double) (d))); \ + asm ("roundsd $4, %1, %0" : "=x" (__res) : "xm" ((double) (d))); \ __res; }) # endif # ifndef __rintf # define __rintf(d) \ ({ float __res; \ - asm ("roundss $4, %1, %0" : "=x" (__res) : "x" ((float) (d))); \ + asm ("roundss $4, %1, %0" : "=x" (__res) : "xm" ((float) (d))); \ __res; }) # endif # ifndef __floor # define __floor(d) \ ({ double __res; \ - asm ("roundsd $1, %1, %0" : "=x" (__res) : "x" ((double) (d))); \ + asm ("roundsd $1, %1, %0" : "=x" (__res) : "xm" ((double) (d))); \ __res; }) # endif # ifndef __floorf # define __floorf(d) \ ({ float __res; \ - asm ("roundss $1, %1, %0" : "=x" (__res) : "x" ((float) (d))); \ + asm ("roundss $1, %1, %0" : "=x" (__res) : "xm" ((float) (d))); \ __res; }) # endif #endif |