aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/i386/fpu/e_scalb.S6
-rw-r--r--sysdeps/i386/fpu/e_scalbf.S6
-rw-r--r--sysdeps/i386/fpu/e_scalbl.S6
3 files changed, 15 insertions, 3 deletions
diff --git a/sysdeps/i386/fpu/e_scalb.S b/sysdeps/i386/fpu/e_scalb.S
index 7ff5541e2f..f463002617 100644
--- a/sysdeps/i386/fpu/e_scalb.S
+++ b/sysdeps/i386/fpu/e_scalb.S
@@ -50,7 +50,7 @@ ENTRY(__ieee754_scalb)
fnstsw
andl $0x4500, %eax
cmpl $0x0100, %eax
- je 2f
+ je 3f
fld %st(1)
frndint
fcomp %st(2)
@@ -91,4 +91,8 @@ ENTRY(__ieee754_scalb)
#endif
fldl MO(nan)
ret
+
+ /* The first parameter is a NaN. Return it. */
+3: fstp %st(1)
+ ret
END(__ieee754_scalb)
diff --git a/sysdeps/i386/fpu/e_scalbf.S b/sysdeps/i386/fpu/e_scalbf.S
index 4222eecc97..4b5b0d07b3 100644
--- a/sysdeps/i386/fpu/e_scalbf.S
+++ b/sysdeps/i386/fpu/e_scalbf.S
@@ -52,7 +52,7 @@ ENTRY(__ieee754_scalbf)
fnstsw
andl $0x4500, %eax
cmpl $0x0100, %eax
- je 2f
+ je 3f
fld %st(1)
frndint
fcomp %st(2)
@@ -93,4 +93,8 @@ ENTRY(__ieee754_scalbf)
#endif
fldl MO(nan)
ret
+
+ /* The first parameter is a NaN. Return it. */
+3: fstp %st(1)
+ ret
END(__ieee754_scalbf)
diff --git a/sysdeps/i386/fpu/e_scalbl.S b/sysdeps/i386/fpu/e_scalbl.S
index 56cc833a56..e8166fa9d5 100644
--- a/sysdeps/i386/fpu/e_scalbl.S
+++ b/sysdeps/i386/fpu/e_scalbl.S
@@ -52,7 +52,7 @@ ENTRY(__ieee754_scalbl)
fnstsw
andl $0x4500, %eax
cmpl $0x0100, %eax
- je 2f
+ je 3f
fld %st(1)
frndint
fcomp %st(2)
@@ -93,4 +93,8 @@ ENTRY(__ieee754_scalbl)
#endif
fldl MO(nan)
ret
+
+ /* The first parameter is a NaN. Return it. */
+3: fstp %st(1)
+ ret
END(__ieee754_scalbl)