Handle NaN as first parameter correctly.
authordrepper <drepper>
Tue, 5 Dec 2000 06:26:15 +0000 (06:26 +0000)
committerdrepper <drepper>
Tue, 5 Dec 2000 06:26:15 +0000 (06:26 +0000)
sysdeps/i386/fpu/e_scalb.S
sysdeps/i386/fpu/e_scalbf.S
sysdeps/i386/fpu/e_scalbl.S

index 7ff5541..f463002 100644 (file)
@@ -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)
index 4222eec..4b5b0d0 100644 (file)
@@ -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)
index 56cc833..e8166fa 100644 (file)
@@ -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)