Lines Matching refs:zSign
161 Packs the sign `zSign', exponent `zExp', and significand `zSig' into a
171 INLINE float32 packFloat32( flag zSign, int16 zExp, bits32 zSig )
174 return ( ( (bits32) zSign )<<31 ) + ( ( (bits32) zExp )<<23 ) + zSig;
180 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
201 static float32 roundAndPackFloat32( flag zSign, int16 zExp, bits32 zSig )
217 if ( zSign ) {
232 return packFloat32( zSign, 0xFF, 0 ) - ( roundIncrement == 0 );
249 return packFloat32( zSign, zExp, zSig );
255 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
264 normalizeRoundAndPackFloat32( flag zSign, int16 zExp, bits32 zSig )
269 return roundAndPackFloat32( zSign, zExp - shiftCount, zSig<<shiftCount );
367 Packs the sign `zSign', the exponent `zExp', and the significand formed by
370 positions, the three fields `zSign', `zExp', and `zSig0' are simply added
379 packFloat64( flag zSign, int16 zExp, bits32 zSig0, bits32 zSig1 )
382 return FLOAT64_MANGLE( ( ( (bits64) zSign )<<63 ) +
391 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
413 flag zSign, int16 zExp, bits32 zSig0, bits32 zSig1, bits32 zSig2 )
426 if ( zSign ) {
443 || ( zSign && ( roundingMode == float_round_up ) )
444 || ( ! zSign && ( roundingMode == float_round_down ) )
446 return packFloat64( zSign, 0x7FE, 0x000FFFFF, 0xFFFFFFFF );
448 return packFloat64( zSign, 0x7FF, 0, 0 );
464 if ( zSign ) {
481 return packFloat64( zSign, zExp, zSig0, zSig1 );
487 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
498 flag zSign, int16 zExp, bits32 zSig0, bits32 zSig1 )
518 return roundAndPackFloat64( zSign, zExp, zSig0, zSig1, zSig2 );
531 flag zSign;
535 zSign = ( a < 0 );
536 return normalizeRoundAndPackFloat32( zSign, 0x9C, zSign ? - a : a );
549 flag zSign;
555 zSign = ( a < 0 );
556 absA = zSign ? - a : a;
565 return packFloat64( zSign, 0x412 - shiftCount, zSig0, zSig1 );
782 floating-point values `a' and `b'. If `zSign' is 1, the sum is negated
783 before being returned. `zSign' is ignored if the result is a NaN.
788 static float32 addFloat32Sigs( float32 a, float32 b, flag zSign )
818 return packFloat32( zSign, 0xFF, 0 );
834 if ( aExp == 0 ) return packFloat32( zSign, 0, ( aSig + bSig )>>6 );
847 return roundAndPackFloat32( zSign, zExp, zSig );
854 precision floating-point values `a' and `b'. If `zSign' is 1, the
855 difference is negated before being returned. `zSign' is ignored if the
860 static float32 subFloat32Sigs( float32 a, float32 b, flag zSign )
890 return packFloat32( zSign ^ 1, 0xFF, 0 );
903 zSign ^= 1;
923 return normalizeRoundAndPackFloat32( zSign, zExp, zSig );
980 flag aSign, bSign, zSign;
990 zSign = aSign ^ bSign;
999 return packFloat32( zSign, 0xFF, 0 );
1007 return packFloat32( zSign, 0xFF, 0 );
1010 if ( aSig == 0 ) return packFloat32( zSign, 0, 0 );
1014 if ( bSig == 0 ) return packFloat32( zSign, 0, 0 );
1026 return roundAndPackFloat32( zSign, zExp, zSig0 );
1039 flag aSign, bSign, zSign;
1049 zSign = aSign ^ bSign;
1057 return packFloat32( zSign, 0xFF, 0 );
1061 return packFloat32( zSign, 0, 0 );
1070 return packFloat32( zSign, 0xFF, 0 );
1075 if ( aSig == 0 ) return packFloat32( zSign, 0, 0 );
1095 return roundAndPackFloat32( zSign, zExp, zSig );
1109 flag aSign, bSign, zSign;
1179 zSign = ( (sbits32) aSig < 0 );
1180 if ( zSign ) aSig = - aSig;
1181 return normalizeRoundAndPackFloat32( aSign ^ zSign, bExp, aSig );
1661 floating-point values `a' and `b'. If `zSign' is 1, the sum is negated
1662 before being returned. `zSign' is ignored if the result is a NaN.
1667 static float64 addFloat64Sigs( float64 a, float64 b, flag zSign )
1698 return packFloat64( zSign, 0x7FF, 0, 0 );
1718 if ( aExp == 0 ) return packFloat64( zSign, 0, zSig0, zSig1 );
1732 return roundAndPackFloat64( zSign, zExp, zSig0, zSig1, zSig2 );
1739 precision floating-point values `a' and `b'. If `zSign' is 1, the
1740 difference is negated before being returned. `zSign' is ignored if the
1745 static float64 subFloat64Sigs( float64 a, float64 b, flag zSign )
1781 return packFloat64( zSign ^ 1, 0x7FF, 0, 0 );
1794 zSign ^= 1;
1814 return normalizeRoundAndPackFloat64( zSign, zExp - 10, zSig0, zSig1 );
1871 flag aSign, bSign, zSign;
1883 zSign = aSign ^ bSign;
1890 return packFloat64( zSign, 0x7FF, 0, 0 );
1899 return packFloat64( zSign, 0x7FF, 0, 0 );
1902 if ( ( aSig0 | aSig1 ) == 0 ) return packFloat64( zSign, 0, 0, 0 );
1906 if ( ( bSig0 | bSig1 ) == 0 ) return packFloat64( zSign, 0, 0, 0 );
1920 return roundAndPackFloat64( zSign, zExp, zSig0, zSig1, zSig2 );
1933 flag aSign, bSign, zSign;
1946 zSign = aSign ^ bSign;
1953 return packFloat64( zSign, 0x7FF, 0, 0 );
1957 return packFloat64( zSign, 0, 0, 0 );
1967 return packFloat64( zSign, 0x7FF, 0, 0 );
1972 if ( ( aSig0 | aSig1 ) == 0 ) return packFloat64( zSign, 0, 0, 0 );
2000 return roundAndPackFloat64( zSign, zExp, zSig0, zSig1, zSig2 );
2014 flag aSign, bSign, zSign;
2101 zSign = ( (sbits32) aSig0 < 0 );
2102 if ( zSign ) sub64( 0, 0, aSig0, aSig1, &aSig0, &aSig1 );
2104 normalizeRoundAndPackFloat64( aSign ^ zSign, bExp - 4, aSig0, aSig1 );