diff options
Diffstat (limited to 'libm/powerpc/s_floor.c')
-rw-r--r-- | libm/powerpc/s_floor.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/libm/powerpc/s_floor.c b/libm/powerpc/s_floor.c index f7b4534bb..94677b4d2 100644 --- a/libm/powerpc/s_floor.c +++ b/libm/powerpc/s_floor.c @@ -52,24 +52,24 @@ double floor ( double x ) register double y; register unsigned long int xhi; register long int target; - + xInHex.dbl = x; xhi = xInHex.words.hi & 0x7fffffffUL; // xhi is the high half of |x| target = ( xInHex.words.hi < signMask ); - - if ( xhi < 0x43300000ul ) + + if ( xhi < 0x43300000ul ) /******************************************************************************* * Is |x| < 2.0^52? * *******************************************************************************/ { - if ( xhi < 0x3ff00000ul ) + if ( xhi < 0x3ff00000ul ) /******************************************************************************* * Is |x| < 1.0? * *******************************************************************************/ { if ( ( xhi | xInHex.words.lo ) == 0ul ) // zero x is exact case return ( x ); - else + else { // inexact case asm ("mffs %0" : "=f" (OldEnvironment.dbl)); OldEnvironment.words.lo |= 0x02000000ul; @@ -83,7 +83,7 @@ double floor ( double x ) /******************************************************************************* * Is 1.0 < |x| < 2.0^52? * *******************************************************************************/ - if ( target ) + if ( target ) { y = ( x + twoTo52 ) - twoTo52; // round at binary pt. if ( y > x ) @@ -91,8 +91,8 @@ double floor ( double x ) else return ( y ); } - - else + + else { y = ( x - twoTo52 ) + twoTo52; // round at binary pt. if ( y > x ) |