aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/x86_64
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2013-11-16 12:45:11 +0000
committerJoseph Myers <joseph@codesourcery.com>2013-11-16 12:45:11 +0000
commit66294491665029eff0cf3ebd5fb6f04582da6c1e (patch)
tree5d398338d64b21bba5eb702a543cfd456c46418a /sysdeps/x86_64
parentb46d046e7bf7e0f96e41e522da731b89177e31ab (diff)
downloadglibc-66294491665029eff0cf3ebd5fb6f04582da6c1e.tar
glibc-66294491665029eff0cf3ebd5fb6f04582da6c1e.tar.gz
glibc-66294491665029eff0cf3ebd5fb6f04582da6c1e.tar.bz2
glibc-66294491665029eff0cf3ebd5fb6f04582da6c1e.zip
Fix spurious "inexact" exceptions from x86 pow with NaN argument (bug 16167).
Diffstat (limited to 'sysdeps/x86_64')
-rw-r--r--sysdeps/x86_64/fpu/e_powl.S3
1 files changed, 3 insertions, 0 deletions
diff --git a/sysdeps/x86_64/fpu/e_powl.S b/sysdeps/x86_64/fpu/e_powl.S
index e10172674e..590223b60c 100644
--- a/sysdeps/x86_64/fpu/e_powl.S
+++ b/sysdeps/x86_64/fpu/e_powl.S
@@ -96,6 +96,9 @@ ENTRY(__ieee754_powl)
cmpb $0x05, %ah
je 15f // x is ħinf
+ cmpb $0x01, %ah
+ je 31f // x is NaN
+
fxch // y : x
/* fistpll raises invalid exception for |y| >= 1L<<63. */