summaryrefslogtreecommitdiff
path: root/sysdeps/i386/fpu/e_pow.S
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2013-12-20 09:29:29 +0100
committerThomas Schwinge <thomas@codesourcery.com>2013-12-20 09:29:29 +0100
commita65dd355fb80a05215e15ae97649de52aec885e3 (patch)
tree81701bb0c6b648630f2bf1729a85d7f5eb49e67b /sysdeps/i386/fpu/e_pow.S
parent296a5732f94abe4d5699dc981e4ccfb950b48cee (diff)
parentb4578bab30f72cddd2cf38abfb39f9c8dc892249 (diff)
Merge branch 'baseline' into refs/top-bases/tschwinge/Roger_Whittaker
Diffstat (limited to 'sysdeps/i386/fpu/e_pow.S')
-rw-r--r--sysdeps/i386/fpu/e_pow.S9
1 files changed, 9 insertions, 0 deletions
diff --git a/sysdeps/i386/fpu/e_pow.S b/sysdeps/i386/fpu/e_pow.S
index 109c395934..835c39b7bd 100644
--- a/sysdeps/i386/fpu/e_pow.S
+++ b/sysdeps/i386/fpu/e_pow.S
@@ -98,6 +98,9 @@ ENTRY(__ieee754_pow)
cmpb $0x05, %ah
je 15f // x is ħinf
+ cmpb $0x01, %ah
+ je 32f // x is NaN
+
fxch // y : x
/* fistpll raises invalid exception for |y| >= 1L<<63. */
@@ -166,6 +169,12 @@ ENTRY(__ieee754_pow)
ret
cfi_adjust_cfa_offset (8)
+32: addl $8, %esp
+ cfi_adjust_cfa_offset (-8)
+ fstp %st(1)
+ ret
+
+ cfi_adjust_cfa_offset (8)
.align ALIGNARG(4)
2: // y is a large integer (absolute value at least 1L<<10), but
// may be odd unless at least 1L<<64. So it may be necessary