Lines Matching defs:zExp
275 Packs the sign `zSign', exponent `zExp', and significand `zSig' into a
280 will have an integer portion equal to 1, the `zExp' input should be 1 less
285 INLINE float32 packFloat32( flag zSign, int16 zExp, bits32 zSig )
288 return ( ( (bits32) zSign )<<31 ) + ( ( (bits32) zExp )<<23 ) + zSig;
294 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
308 `zExp' must be 0; in that case, the result returned is a subnormal number,
310 normalized, `zExp' must be 1 less than the ``true'' floating-point exponent.
315 static float32 roundAndPackFloat32( flag zSign, int16 zExp, bits32 zSig )
340 if ( 0xFD <= (bits16) zExp ) {
341 if ( ( 0xFD < zExp )
342 || ( ( zExp == 0xFD )
348 if ( zExp < 0 ) {
351 || ( zExp < -1 )
353 shift32RightJamming( zSig, - zExp, &zSig );
354 zExp = 0;
362 if ( zSig == 0 ) zExp = 0;
363 return packFloat32( zSign, zExp, zSig );
369 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
373 Bit 31 of `zSig' must be zero, and `zExp' must be 1 less than the ``true''
378 normalizeRoundAndPackFloat32( flag zSign, int16 zExp, bits32 zSig )
383 return roundAndPackFloat32( zSign, zExp - shiftCount, zSig<<shiftCount );
444 Packs the sign `zSign', exponent `zExp', and significand `zSig' into a
449 will have an integer portion equal to 1, the `zExp' input should be 1 less
454 INLINE float64 packFloat64( flag zSign, int16 zExp, bits64 zSig )
458 ( ( (bits64) zExp )<<52 ) + zSig );
464 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
478 `zExp' must be 0; in that case, the result returned is a subnormal number,
480 normalized, `zExp' must be 1 less than the ``true'' floating-point exponent.
485 static float64 roundAndPackFloat64( flag zSign, int16 zExp, bits64 zSig )
510 if ( 0x7FD <= (bits16) zExp ) {
511 if ( ( 0x7FD < zExp )
512 || ( ( zExp == 0x7FD )
520 if ( zExp < 0 ) {
523 || ( zExp < -1 )
525 shift64RightJamming( zSig, - zExp, &zSig );
526 zExp = 0;
534 if ( zSig == 0 ) zExp = 0;
535 return packFloat64( zSign, zExp, zSig );
541 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
545 Bit 63 of `zSig' must be zero, and `zExp' must be 1 less than the ``true''
550 normalizeRoundAndPackFloat64( flag zSign, int16 zExp, bits64 zSig )
555 return roundAndPackFloat64( zSign, zExp - shiftCount, zSig<<shiftCount );
621 Packs the sign `zSign', exponent `zExp', and significand `zSig' into an
625 INLINE floatx80 packFloatx80( flag zSign, int32 zExp, bits64 zSig )
630 z.high = (bits32)( ( ( (bits32) zSign )<<15 ) + zExp )<<X80SHIFT;
637 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
654 significand is not normalized, `zExp' must be 0; in that case, the result
662 int8 roundingPrecision, flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1
699 if ( 0x7FFD <= (bits32) ( zExp - 1 ) ) {
700 if ( ( 0x7FFE < zExp )
701 || ( ( zExp == 0x7FFE ) && ( zSig0 + roundIncrement < zSig0 ) )
705 if ( zExp <= 0 ) {
708 || ( zExp < 0 )
710 shift64RightJamming( zSig0, 1 - zExp, &zSig0 );
711 zExp = 0;
716 if ( (sbits64) zSig0 < 0 ) zExp = 1;
722 return packFloatx80( zSign, zExp, zSig0 );
728 ++zExp;
736 if ( zSig0 == 0 ) zExp = 0;
737 return packFloatx80( zSign, zExp, zSig0 );
753 if ( 0x7FFD <= (bits32) ( zExp - 1 ) ) {
754 if ( ( 0x7FFE < zExp )
755 || ( ( zExp == 0x7FFE )
771 if ( zExp <= 0 ) {
774 || ( zExp < 0 )
777 shift64ExtraRightJamming( zSig0, zSig1, 1 - zExp, &zSig0, &zSig1 );
778 zExp = 0;
796 if ( (sbits64) zSig0 < 0 ) zExp = 1;
798 return packFloatx80( zSign, zExp, zSig0 );
805 ++zExp;
813 if ( zSig0 == 0 ) zExp = 0;
815 return packFloatx80( zSign, zExp, zSig0 );
822 `zExp', and significand formed by the concatenation of `zSig0' and `zSig1',
831 int8 roundingPrecision, flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1
839 zExp -= 64;
843 zExp -= shiftCount;
845 roundAndPackFloatx80( roundingPrecision, zSign, zExp, zSig0, zSig1 );
948 Packs the sign `zSign', the exponent `zExp', and the significand formed
951 proper positions, the three fields `zSign', `zExp', and `zSig0' are simply
955 to 1, the `zExp' input should be 1 less than the desired result exponent
961 packFloat128( flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1 )
966 z.high = ( ( (bits64) zSign )<<63 ) + ( ( (bits64) zExp )<<48 ) + zSig0;
973 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
986 significand is not normalized, `zExp' must be 0; in that case, the result
988 usual case that the input significand is normalized, `zExp' must be 1 less
995 flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1, bits64 zSig2 )
1016 if ( 0x7FFD <= (bits32) zExp ) {
1017 if ( ( 0x7FFD < zExp )
1018 || ( ( zExp == 0x7FFD )
1043 if ( zExp < 0 ) {
1046 || ( zExp < -1 )
1055 zSig0, zSig1, zSig2, - zExp, &zSig0, &zSig1, &zSig2 );
1056 zExp = 0;
1077 if ( ( zSig0 | zSig1 ) == 0 ) zExp = 0;
1079 return packFloat128( zSign, zExp, zSig0, zSig1 );
1085 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
1090 normalized. In all cases, `zExp' must be 1 less than the ``true'' floating-
1096 flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1 )
1104 zExp -= 64;
1115 zExp -= shiftCount;
1116 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 );
1356 int32 zExp;
1363 zExp = 0x406E - shiftCount;
1374 return packFloat128( zSign, zExp, zSig0, zSig1 );
1715 int16 aExp, bExp, zExp;
1738 zExp = aExp;
1752 zExp = bExp;
1761 zExp = aExp;
1766 --zExp;
1769 ++zExp;
1772 return roundAndPackFloat32( zSign, zExp, zSig );
1787 int16 aExp, bExp, zExp;
1827 zExp = bExp;
1845 zExp = aExp;
1847 --zExp;
1848 return normalizeRoundAndPackFloat32( zSign, zExp, zSig );
1906 int16 aExp, bExp, zExp;
1944 zExp = aExp + bExp - 0x7F;
1951 --zExp;
1953 return roundAndPackFloat32( zSign, zExp, zSig );
1967 int16 aExp, bExp, zExp;
2005 zExp = aExp - bExp + 0x7D;
2010 ++zExp;
2016 return roundAndPackFloat32( zSign, zExp, zSig );
2134 int16 aExp, zExp;
2156 zExp = ( ( aExp - 0x7F )>>1 ) + 0x7E;
2175 return roundAndPackFloat32( 0, zExp, zSig );
2681 int16 aExp, bExp, zExp;
2704 zExp = aExp;
2718 zExp = bExp;
2727 zExp = aExp;
2732 --zExp;
2735 ++zExp;
2738 return roundAndPackFloat64( zSign, zExp, zSig );
2753 int16 aExp, bExp, zExp;
2793 zExp = bExp;
2811 zExp = aExp;
2813 --zExp;
2814 return normalizeRoundAndPackFloat64( zSign, zExp, zSig );
2872 int16 aExp, bExp, zExp;
2908 zExp = aExp + bExp - 0x3FF;
2915 --zExp;
2917 zExp, zSig0 );
2931 int16 aExp, bExp, zExp;
2971 zExp = aExp - bExp + 0x3FD;
2976 ++zExp;
2988 return roundAndPackFloat64( zSign, zExp, zSig );
3089 int16 aExp, zExp;
3111 zExp = ( ( aExp - 0x3FF )>>1 ) + 0x3FE;
3127 return roundAndPackFloat64( 0, zExp, zSig );
3626 int32 aExp, bExp, zExp;
3642 zExp = aExp;
3651 zExp = bExp;
3663 normalizeFloatx80Subnormal( zSig0, &zExp, &zSig0 );
3666 zExp = aExp;
3674 ++zExp;
3678 floatx80_rounding_precision, zSign, zExp, zSig0, zSig1 );
3693 int32 aExp, bExp, zExp;
3731 zExp = bExp;
3743 zExp = aExp;
3747 floatx80_rounding_precision, zSign, zExp, zSig0, zSig1 );
3805 int32 aExp, bExp, zExp;
3843 zExp = aExp + bExp - 0x3FFE;
3847 --zExp;
3851 floatx80_rounding_precision, zSign, zExp, zSig0, zSig1 );
3865 int32 aExp, bExp, zExp;
3907 zExp = aExp - bExp + 0x3FFE;
3911 ++zExp;
3932 floatx80_rounding_precision, zSign, zExp, zSig0, zSig1 );
4044 int32 aExp, zExp;
4069 zExp = ( ( aExp - 0x3FFF )>>1 ) + 0x3FFF;
4101 floatx80_rounding_precision, 0, zExp, zSig0, zSig1 );
4775 int32 aExp, bExp, zExp;
4799 zExp = aExp;
4814 zExp = bExp;
4827 zExp = aExp;
4832 --zExp;
4834 ++zExp;
4839 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 );
4854 int32 aExp, bExp, zExp;
4903 zExp = bExp;
4921 zExp = aExp;
4923 --zExp;
4924 return normalizeRoundAndPackFloat128( zSign, zExp - 14, zSig0, zSig1 );
4982 int32 aExp, bExp, zExp;
5022 zExp = aExp + bExp - 0x4000;
5031 ++zExp;
5033 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 );
5047 int32 aExp, bExp, zExp;
5091 zExp = aExp - bExp + 0x3FFD;
5098 ++zExp;
5118 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 );
5242 int32 aExp, zExp;
5268 zExp = (int32) ( (bits32)(aExp - 0x3FFF) >> 1) + 0x3FFE;
5298 return roundAndPackFloat128( 0, zExp, zSig0, zSig1, zSig2 );