about summary refs log tree commit diff
path: root/sysdeps/i386/fpu/e_scalbl.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/i386/fpu/e_scalbl.S')
-rw-r--r--sysdeps/i386/fpu/e_scalbl.S16
1 files changed, 3 insertions, 13 deletions
diff --git a/sysdeps/i386/fpu/e_scalbl.S b/sysdeps/i386/fpu/e_scalbl.S
index d10b22ea83..896f599cb0 100644
--- a/sysdeps/i386/fpu/e_scalbl.S
+++ b/sysdeps/i386/fpu/e_scalbl.S
@@ -45,7 +45,7 @@ ENTRY(__ieee754_scalbl)
 	fnstsw
 	andl	$0x4500, %eax
 	cmpl	$0x0100, %eax
-	je	3f
+	je	2f
 	fld	%st(1)
 	frndint
 	fcomp	%st(2)
@@ -76,18 +76,8 @@ ENTRY(__ieee754_scalbl)
 	fldl	MOX(zero_nan, %eax, 1)
 	ret
 
-	/* The result is NaN, but we must not raise an exception.
-	   So use a variable.  */
-2:	fstp	%st
-	fstp	%st
-#ifdef  PIC
-	LOAD_PIC_REG (cx)
-#endif
-	fldl	MO(nan)
-	ret
-
-	/* The first parameter is a NaN.  Return it.  */
-3:	fstp	%st(1)
+	/* The result is NaN; raise an exception for sNaN arguments.  */
+2:	faddp
 	ret
 
 	/* Return NaN and raise the invalid exception.  */