Lines Matching refs:zSig

271 INLINE float32 packFloat32( flag zSign, int16 zExp, bits32 zSig )  in packFloat32()  argument
274 return ( ( (bits32) zSign )<<31 ) + ( ( (bits32) zExp )<<23 ) + zSig; in packFloat32()
301 static float32 roundAndPackFloat32( flag zSign, int16 zExp, bits32 zSig ) in roundAndPackFloat32() argument
325 roundBits = zSig & 0x7F; in roundAndPackFloat32()
329 && ( (sbits32) ( zSig + roundIncrement ) < 0 ) ) in roundAndPackFloat32()
338 || ( zSig + roundIncrement < 0x80000000 ); in roundAndPackFloat32()
339 shift32RightJamming( zSig, - zExp, &zSig ); in roundAndPackFloat32()
341 roundBits = zSig & 0x7F; in roundAndPackFloat32()
346 zSig = ( zSig + roundIncrement )>>7; in roundAndPackFloat32()
347 zSig &= ~ ( ( ( roundBits ^ 0x40 ) == 0 ) & roundNearestEven ); in roundAndPackFloat32()
348 if ( zSig == 0 ) zExp = 0; in roundAndPackFloat32()
349 return packFloat32( zSign, zExp, zSig ); in roundAndPackFloat32()
364 normalizeRoundAndPackFloat32( flag zSign, int16 zExp, bits32 zSig ) in normalizeRoundAndPackFloat32() argument
368 shiftCount = countLeadingZeros32( zSig ) - 1; in normalizeRoundAndPackFloat32()
369 return roundAndPackFloat32( zSign, zExp - shiftCount, zSig<<shiftCount ); in normalizeRoundAndPackFloat32()
440 INLINE float64 packFloat64( flag zSign, int16 zExp, bits64 zSig ) in packFloat64() argument
444 ( ( (bits64) zExp )<<52 ) + zSig ); in packFloat64()
471 static float64 roundAndPackFloat64( flag zSign, int16 zExp, bits64 zSig ) in roundAndPackFloat64() argument
495 roundBits = zSig & 0x3FF; in roundAndPackFloat64()
499 && ( (sbits64) ( zSig + roundIncrement ) < 0 ) ) in roundAndPackFloat64()
510 || ( zSig + roundIncrement < LIT64( 0x8000000000000000 ) ); in roundAndPackFloat64()
511 shift64RightJamming( zSig, - zExp, &zSig ); in roundAndPackFloat64()
513 roundBits = zSig & 0x3FF; in roundAndPackFloat64()
518 zSig = ( zSig + roundIncrement )>>10; in roundAndPackFloat64()
519 zSig &= ~ ( ( ( roundBits ^ 0x200 ) == 0 ) & roundNearestEven ); in roundAndPackFloat64()
520 if ( zSig == 0 ) zExp = 0; in roundAndPackFloat64()
521 return packFloat64( zSign, zExp, zSig ); in roundAndPackFloat64()
536 normalizeRoundAndPackFloat64( flag zSign, int16 zExp, bits64 zSig ) in normalizeRoundAndPackFloat64() argument
540 shiftCount = countLeadingZeros64( zSig ) - 1; in normalizeRoundAndPackFloat64()
541 return roundAndPackFloat64( zSign, zExp - shiftCount, zSig<<shiftCount ); in normalizeRoundAndPackFloat64()
611 INLINE floatx80 packFloatx80( flag zSign, int32 zExp, bits64 zSig ) in packFloatx80() argument
615 z.low = zSig; in packFloatx80()
1149 bits64 zSig; in int32_to_float64() local
1155 zSig = absA; in int32_to_float64()
1156 return packFloat64( zSign, 0x432 - shiftCount, zSig<<shiftCount ); in int32_to_float64()
1164 bits64 zSig = a; in uint32_to_float64() local
1168 return packFloat64( 0, 0x432 - shiftCount, zSig<<shiftCount ); in uint32_to_float64()
1188 bits64 zSig; in int32_to_floatx80() local
1194 zSig = absA; in int32_to_floatx80()
1195 return packFloatx80( zSign, 0x403E - shiftCount, zSig<<shiftCount ); in int32_to_floatx80()
1202 bits64 zSig = a; in uint32_to_floatx80() local
1206 return packFloatx80( 0, 0x403E - shiftCount, zSig<<shiftCount ); in uint32_to_floatx80()
1706 bits32 aSig, bSig, zSig; in addFloat32Sigs() local
1750 zSig = 0x40000000 + aSig + bSig; in addFloat32Sigs()
1755 zSig = ( aSig + bSig )<<1; in addFloat32Sigs()
1757 if ( (sbits32) zSig < 0 ) { in addFloat32Sigs()
1758 zSig = aSig + bSig; in addFloat32Sigs()
1762 return roundAndPackFloat32( zSign, zExp, zSig ); in addFloat32Sigs()
1778 bits32 aSig, bSig, zSig; in subFloat32Sigs() local
1816 zSig = bSig - aSig; in subFloat32Sigs()
1834 zSig = aSig - bSig; in subFloat32Sigs()
1838 return normalizeRoundAndPackFloat32( zSign, zExp, zSig ); in subFloat32Sigs()
1899 bits32 zSig; in float32_mul() local
1938 zSig = zSig64; in float32_mul()
1939 if ( 0 <= (sbits32) ( zSig<<1 ) ) { in float32_mul()
1940 zSig <<= 1; in float32_mul()
1943 return roundAndPackFloat32( zSign, zExp, zSig ); in float32_mul()
1958 bits32 aSig, bSig, zSig; in float32_div() local
2002 zSig = ( ( (bits64) aSig )<<32 ) / bSig; in float32_div()
2003 if ( ( zSig & 0x3F ) == 0 ) { in float32_div()
2004 zSig |= ( (bits64) bSig * zSig != ( (bits64) aSig )<<32 ); in float32_div()
2006 return roundAndPackFloat32( zSign, zExp, zSig ); in float32_div()
2125 bits32 aSig, zSig; in float32_sqrt() local
2148 zSig = estimateSqrt32( aExp, aSig ) + 2; in float32_sqrt()
2149 if ( ( zSig & 0x7F ) <= 5 ) { in float32_sqrt()
2150 if ( zSig < 2 ) { in float32_sqrt()
2151 zSig = 0x7FFFFFFF; in float32_sqrt()
2155 term = ( (bits64) zSig ) * zSig; in float32_sqrt()
2158 --zSig; in float32_sqrt()
2159 rem += ( ( (bits64) zSig )<<1 ) | 1; in float32_sqrt()
2161 zSig |= ( rem != 0 ); in float32_sqrt()
2163 shift32RightJamming( zSig, 1, &zSig ); in float32_sqrt()
2165 return roundAndPackFloat32( 0, zExp, zSig ); in float32_sqrt()
2506 bits32 zSig; in float64_to_float32() local
2516 zSig = aSig; in float64_to_float32()
2517 if ( aExp || zSig ) { in float64_to_float32()
2518 zSig |= 0x40000000; in float64_to_float32()
2521 return roundAndPackFloat32( aSign, aExp, zSig ); in float64_to_float32()
2672 bits64 aSig, bSig, zSig; in addFloat64Sigs() local
2716 zSig = LIT64( 0x4000000000000000 ) + aSig + bSig; in addFloat64Sigs()
2721 zSig = ( aSig + bSig )<<1; in addFloat64Sigs()
2723 if ( (sbits64) zSig < 0 ) { in addFloat64Sigs()
2724 zSig = aSig + bSig; in addFloat64Sigs()
2728 return roundAndPackFloat64( zSign, zExp, zSig ); in addFloat64Sigs()
2744 bits64 aSig, bSig, zSig; in subFloat64Sigs() local
2782 zSig = bSig - aSig; in subFloat64Sigs()
2800 zSig = aSig - bSig; in subFloat64Sigs()
2804 return normalizeRoundAndPackFloat64( zSign, zExp, zSig ); in subFloat64Sigs()
2922 bits64 aSig, bSig, zSig; in float64_div() local
2968 zSig = estimateDiv128To64( aSig, 0, bSig ); in float64_div()
2969 if ( ( zSig & 0x1FF ) <= 2 ) { in float64_div()
2970 mul64To128( bSig, zSig, &term0, &term1 ); in float64_div()
2973 --zSig; in float64_div()
2976 zSig |= ( rem1 != 0 ); in float64_div()
2978 return roundAndPackFloat64( zSign, zExp, zSig ); in float64_div()
3080 bits64 aSig, zSig, doubleZSig; in float64_sqrt() local
3103 zSig = estimateSqrt32( aExp, aSig>>21 ); in float64_sqrt()
3105 zSig = estimateDiv128To64( aSig, 0, zSig<<32 ) + ( zSig<<30 ); in float64_sqrt()
3106 if ( ( zSig & 0x1FF ) <= 5 ) { in float64_sqrt()
3107 doubleZSig = zSig<<1; in float64_sqrt()
3108 mul64To128( zSig, zSig, &term0, &term1 ); in float64_sqrt()
3111 --zSig; in float64_sqrt()
3113 add128( rem0, rem1, zSig>>63, doubleZSig | 1, &rem0, &rem1 ); in float64_sqrt()
3115 zSig |= ( ( rem0 | rem1 ) != 0 ); in float64_sqrt()
3117 return roundAndPackFloat64( 0, zExp, zSig ); in float64_sqrt()
3482 bits64 aSig, zSig; in floatx80_to_float64() local
3493 shift64RightJamming( aSig, 1, &zSig ); in floatx80_to_float64()
3495 return roundAndPackFloat64( aSign, aExp, zSig ); in floatx80_to_float64()
4550 bits32 zSig; in float128_to_float32() local
4564 zSig = aSig0; in float128_to_float32()
4565 if ( aExp || zSig ) { in float128_to_float32()
4566 zSig |= 0x40000000; in float128_to_float32()
4569 return roundAndPackFloat32( aSign, aExp, zSig ); in float128_to_float32()