summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/math/lrint.c
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/math/lrint.c')
-rw-r--r--winsup/cygwin/math/lrint.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/winsup/cygwin/math/lrint.c b/winsup/cygwin/math/lrint.c
index 0409da660..0d3810732 100644
--- a/winsup/cygwin/math/lrint.c
+++ b/winsup/cygwin/math/lrint.c
@@ -21,7 +21,9 @@ asm(".def __lrint_internal; .scl 2; .type 32; .endef\n"
long lrint (double x)
{
long retval = 0L;
-#if defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__)
+#if defined (__x86_64__) && defined (__CYGWIN__)
+ __asm__ __volatile__ ("fistpll %0" : "=m" (retval) : "t" (x) : "st");
+#elif defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__)
__asm__ __volatile__ ("fistpl %0" : "=m" (retval) : "t" (x) : "st");
#elif defined(__arm__) || defined(_ARM_)
retval = __lrint_internal(x);