Lines Matching defs:zSign
169 Packs the sign `zSign', exponent `zExp', and significand `zSig' into a
179 INLINE float32 packFloat32( flag zSign, int16 zExp, bits32 zSig )
182 return ( ( (bits32) zSign )<<31 ) + ( ( (bits32) zExp )<<23 ) + zSig;
188 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
209 static float32 roundAndPackFloat32( flag zSign, int16 zExp, bits32 zSig )
225 if ( zSign ) {
240 return packFloat32( zSign, 0xFF, 0 ) - ( roundIncrement == 0 );
257 return packFloat32( zSign, zExp, zSig );
263 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
272 normalizeRoundAndPackFloat32( flag zSign, int16 zExp, bits32 zSig )
277 return roundAndPackFloat32( zSign, zExp - shiftCount, zSig<<shiftCount );
375 Packs the sign `zSign', the exponent `zExp', and the significand formed by
378 positions, the three fields `zSign', `zExp', and `zSig0' are simply added
387 packFloat64( flag zSign, int16 zExp, bits32 zSig0, bits32 zSig1 )
390 return FLOAT64_MANGLE( ( ( (bits64) zSign )<<63 ) +
399 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
421 flag zSign, int16 zExp, bits32 zSig0, bits32 zSig1, bits32 zSig2 )
434 if ( zSign ) {
451 || ( zSign && ( roundingMode == float_round_up ) )
452 || ( ! zSign && ( roundingMode == float_round_down ) )
454 return packFloat64( zSign, 0x7FE, 0x000FFFFF, 0xFFFFFFFF );
456 return packFloat64( zSign, 0x7FF, 0, 0 );
472 if ( zSign ) {
489 return packFloat64( zSign, zExp, zSig0, zSig1 );
495 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
506 flag zSign, int16 zExp, bits32 zSig0, bits32 zSig1 )
526 return roundAndPackFloat64( zSign, zExp, zSig0, zSig1, zSig2 );
539 flag zSign;
543 zSign = ( a < 0 );
544 return normalizeRoundAndPackFloat32(zSign, 0x9C, (uint32)(zSign ? - a : a));
557 flag zSign;
563 zSign = ( a < 0 );
564 absA = zSign ? - a : a;
573 return packFloat64( zSign, 0x412 - shiftCount, zSig0, zSig1 );
790 floating-point values `a' and `b'. If `zSign' is 1, the sum is negated
791 before being returned. `zSign' is ignored if the result is a NaN.
796 static float32 addFloat32Sigs( float32 a, float32 b, flag zSign )
826 return packFloat32( zSign, 0xFF, 0 );
842 if ( aExp == 0 ) return packFloat32( zSign, 0, ( aSig + bSig )>>6 );
855 return roundAndPackFloat32( zSign, zExp, zSig );
862 precision floating-point values `a' and `b'. If `zSign' is 1, the
863 difference is negated before being returned. `zSign' is ignored if the
868 static float32 subFloat32Sigs( float32 a, float32 b, flag zSign )
898 return packFloat32( zSign ^ 1, 0xFF, 0 );
911 zSign ^= 1;
931 return normalizeRoundAndPackFloat32( zSign, zExp, zSig );
988 flag aSign, bSign, zSign;
998 zSign = aSign ^ bSign;
1007 return packFloat32( zSign, 0xFF, 0 );
1015 return packFloat32( zSign, 0xFF, 0 );
1018 if ( aSig == 0 ) return packFloat32( zSign, 0, 0 );
1022 if ( bSig == 0 ) return packFloat32( zSign, 0, 0 );
1034 return roundAndPackFloat32( zSign, zExp, zSig0 );
1047 flag aSign, bSign, zSign;
1057 zSign = aSign ^ bSign;
1065 return packFloat32( zSign, 0xFF, 0 );
1069 return packFloat32( zSign, 0, 0 );
1078 return packFloat32( zSign, 0xFF, 0 );
1083 if ( aSig == 0 ) return packFloat32( zSign, 0, 0 );
1103 return roundAndPackFloat32( zSign, zExp, zSig );
1117 flag aSign, bSign, zSign;
1187 zSign = ( (sbits32) aSig < 0 );
1188 if ( zSign ) aSig = - aSig;
1189 return normalizeRoundAndPackFloat32( aSign ^ zSign, bExp, aSig );
1669 floating-point values `a' and `b'. If `zSign' is 1, the sum is negated
1670 before being returned. `zSign' is ignored if the result is a NaN.
1675 static float64 addFloat64Sigs( float64 a, float64 b, flag zSign )
1706 return packFloat64( zSign, 0x7FF, 0, 0 );
1726 if ( aExp == 0 ) return packFloat64( zSign, 0, zSig0, zSig1 );
1740 return roundAndPackFloat64( zSign, zExp, zSig0, zSig1, zSig2 );
1747 precision floating-point values `a' and `b'. If `zSign' is 1, the
1748 difference is negated before being returned. `zSign' is ignored if the
1753 static float64 subFloat64Sigs( float64 a, float64 b, flag zSign )
1789 return packFloat64( zSign ^ 1, 0x7FF, 0, 0 );
1802 zSign ^= 1;
1822 return normalizeRoundAndPackFloat64( zSign, zExp - 10, zSig0, zSig1 );
1879 flag aSign, bSign, zSign;
1891 zSign = aSign ^ bSign;
1898 return packFloat64( zSign, 0x7FF, 0, 0 );
1907 return packFloat64( zSign, 0x7FF, 0, 0 );
1910 if ( ( aSig0 | aSig1 ) == 0 ) return packFloat64( zSign, 0, 0, 0 );
1914 if ( ( bSig0 | bSig1 ) == 0 ) return packFloat64( zSign, 0, 0, 0 );
1928 return roundAndPackFloat64( zSign, zExp, zSig0, zSig1, zSig2 );
1941 flag aSign, bSign, zSign;
1954 zSign = aSign ^ bSign;
1961 return packFloat64( zSign, 0x7FF, 0, 0 );
1965 return packFloat64( zSign, 0, 0, 0 );
1975 return packFloat64( zSign, 0x7FF, 0, 0 );
1980 if ( ( aSig0 | aSig1 ) == 0 ) return packFloat64( zSign, 0, 0, 0 );
2008 return roundAndPackFloat64( zSign, zExp, zSig0, zSig1, zSig2 );
2022 flag aSign, bSign, zSign;
2109 zSign = ( (sbits32) aSig0 < 0 );
2110 if ( zSign ) sub64( 0, 0, aSig0, aSig1, &aSig0, &aSig1 );
2112 normalizeRoundAndPackFloat64( aSign ^ zSign, bExp - 4, aSig0, aSig1 );