Lines Matching defs:zExp

225 | Packs the sign `zSign', exponent `zExp', and significand `zSig' into a
230 | will have an integer portion equal to 1, the `zExp' input should be 1 less
235 INLINE float32 packFloat32( flag zSign, int16 zExp, bits32 zSig )
239 ( ( (bits32) zSign )<<31 ) + ( ( (bits32) zExp )<<23 ) + zSig);
244 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
258 | `zExp' must be 0; in that case, the result returned is a subnormal number,
260 | normalized, `zExp' must be 1 less than the ``true'' floating-point exponent.
265 static float32 roundAndPackFloat32( flag zSign, int16 zExp, bits32 zSig STATUS_PARAM)
290 if ( 0xFD <= (bits16) zExp ) {
291 if ( ( 0xFD < zExp )
292 || ( ( zExp == 0xFD )
298 if ( zExp < 0 ) {
302 || ( zExp < -1 )
304 shift32RightJamming( zSig, - zExp, &zSig );
305 zExp = 0;
313 if ( zSig == 0 ) zExp = 0;
314 return packFloat32( zSign, zExp, zSig );
319 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
323 | Bit 31 of `zSig' must be zero, and `zExp' must be 1 less than the ``true''
328 normalizeRoundAndPackFloat32( flag zSign, int16 zExp, bits32 zSig STATUS_PARAM)
333 return roundAndPackFloat32( zSign, zExp - shiftCount, zSig<<shiftCount STATUS_VAR);
389 | Packs the sign `zSign', exponent `zExp', and significand `zSig' into a
394 | will have an integer portion equal to 1, the `zExp' input should be 1 less
399 INLINE float64 packFloat64( flag zSign, int16 zExp, bits64 zSig )
403 ( ( (bits64) zSign )<<63 ) + ( ( (bits64) zExp )<<52 ) + zSig);
408 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
422 | `zExp' must be 0; in that case, the result returned is a subnormal number,
424 | normalized, `zExp' must be 1 less than the ``true'' floating-point exponent.
429 static float64 roundAndPackFloat64( flag zSign, int16 zExp, bits64 zSig STATUS_PARAM)
454 if ( 0x7FD <= (bits16) zExp ) {
455 if ( ( 0x7FD < zExp )
456 || ( ( zExp == 0x7FD )
462 if ( zExp < 0 ) {
466 || ( zExp < -1 )
468 shift64RightJamming( zSig, - zExp, &zSig );
469 zExp = 0;
477 if ( zSig == 0 ) zExp = 0;
478 return packFloat64( zSign, zExp, zSig );
483 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
487 | Bit 63 of `zSig' must be zero, and `zExp' must be 1 less than the ``true''
492 normalizeRoundAndPackFloat64( flag zSign, int16 zExp, bits64 zSig STATUS_PARAM)
497 return roundAndPackFloat64( zSign, zExp - shiftCount, zSig<<shiftCount STATUS_VAR);
558 | Packs the sign `zSign', exponent `zExp', and significand `zSig' into an
562 INLINE floatx80 packFloatx80( flag zSign, int32 zExp, bits64 zSig )
567 z.high = ( ( (bits16) zSign )<<15 ) + zExp;
573 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
590 | significand is not normalized, `zExp' must be 0; in that case, the result
598 int8 roundingPrecision, flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1
635 if ( 0x7FFD <= (bits32) ( zExp - 1 ) ) {
636 if ( ( 0x7FFE < zExp )
637 || ( ( zExp == 0x7FFE ) && ( zSig0 + roundIncrement < zSig0 ) )
641 if ( zExp <= 0 ) {
645 || ( zExp < 0 )
647 shift64RightJamming( zSig0, 1 - zExp, &zSig0 );
648 zExp = 0;
653 if ( (sbits64) zSig0 < 0 ) zExp = 1;
659 return packFloatx80( zSign, zExp, zSig0 );
665 ++zExp;
673 if ( zSig0 == 0 ) zExp = 0;
674 return packFloatx80( zSign, zExp, zSig0 );
690 if ( 0x7FFD <= (bits32) ( zExp - 1 ) ) {
691 if ( ( 0x7FFE < zExp )
692 || ( ( zExp == 0x7FFE )
708 if ( zExp <= 0 ) {
711 || ( zExp < 0 )
714 shift64ExtraRightJamming( zSig0, zSig1, 1 - zExp, &zSig0, &zSig1 );
715 zExp = 0;
733 if ( (sbits64) zSig0 < 0 ) zExp = 1;
735 return packFloatx80( zSign, zExp, zSig0 );
742 ++zExp;
750 if ( zSig0 == 0 ) zExp = 0;
752 return packFloatx80( zSign, zExp, zSig0 );
758 | `zExp', and significand formed by the concatenation of `zSig0' and `zSig1',
767 int8 roundingPrecision, flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1
775 zExp -= 64;
779 zExp -= shiftCount;
781 roundAndPackFloatx80( roundingPrecision, zSign, zExp, zSig0, zSig1 STATUS_VAR);
878 | Packs the sign `zSign', the exponent `zExp', and the significand formed
881 | proper positions, the three fields `zSign', `zExp', and `zSig0' are simply
885 | to 1, the `zExp' input should be 1 less than the desired result exponent
891 packFloat128( flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1 )
896 z.high = ( ( (bits64) zSign )<<63 ) + ( ( (bits64) zExp )<<48 ) + zSig0;
902 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
915 | significand is not normalized, `zExp' must be 0; in that case, the result
917 | usual case that the input significand is normalized, `zExp' must be 1 less
924 flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1, bits64 zSig2 STATUS_PARAM)
945 if ( 0x7FFD <= (bits32) zExp ) {
946 if ( ( 0x7FFD < zExp )
947 || ( ( zExp == 0x7FFD )
972 if ( zExp < 0 ) {
976 || ( zExp < -1 )
985 zSig0, zSig1, zSig2, - zExp, &zSig0, &zSig1, &zSig2 );
986 zExp = 0;
1007 if ( ( zSig0 | zSig1 ) == 0 ) zExp = 0;
1009 return packFloat128( zSign, zExp, zSig0, zSig1 );
1014 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
1019 | normalized. In all cases, `zExp' must be 1 less than the ``true'' floating-
1025 flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1 STATUS_PARAM)
1033 zExp -= 64;
1044 zExp -= shiftCount;
1045 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 STATUS_VAR);
1260 int32 zExp;
1267 zExp = 0x406E - shiftCount;
1278 return packFloat128( zSign, zExp, zSig0, zSig1 );
1602 int16 aExp, bExp, zExp;
1625 zExp = aExp;
1639 zExp = bExp;
1651 zExp = aExp;
1656 --zExp;
1659 ++zExp;
1662 return roundAndPackFloat32( zSign, zExp, zSig STATUS_VAR );
1676 int16 aExp, bExp, zExp;
1716 zExp = bExp;
1734 zExp = aExp;
1736 --zExp;
1737 return normalizeRoundAndPackFloat32( zSign, zExp, zSig STATUS_VAR );
1792 int16 aExp, bExp, zExp;
1830 zExp = aExp + bExp - 0x7F;
1837 --zExp;
1839 return roundAndPackFloat32( zSign, zExp, zSig STATUS_VAR );
1852 int16 aExp, bExp, zExp;
1890 zExp = aExp - bExp + 0x7D;
1895 ++zExp;
1901 return roundAndPackFloat32( zSign, zExp, zSig STATUS_VAR );
2013 int16 aExp, zExp;
2035 zExp = ( ( aExp - 0x7F )>>1 ) + 0x7E;
2054 return roundAndPackFloat32( 0, zExp, zSig STATUS_VAR );
2540 | Packs the sign `zSign', exponent `zExp', and significand `zSig' into a
2545 | will have an integer portion equal to 1, the `zExp' input should be 1 less
2549 static bits16 packFloat16(flag zSign, int16 zExp, bits16 zSig)
2551 return (((bits32)zSign) << 15) + (((bits32)zExp) << 10) + zSig;
2826 int16 aExp, bExp, zExp;
2849 zExp = aExp;
2863 zExp = bExp;
2875 zExp = aExp;
2880 --zExp;
2883 ++zExp;
2886 return roundAndPackFloat64( zSign, zExp, zSig STATUS_VAR );
2900 int16 aExp, bExp, zExp;
2940 zExp = bExp;
2958 zExp = aExp;
2960 --zExp;
2961 return normalizeRoundAndPackFloat64( zSign, zExp, zSig STATUS_VAR );
3016 int16 aExp, bExp, zExp;
3052 zExp = aExp + bExp - 0x3FF;
3059 --zExp;
3061 return roundAndPackFloat64( zSign, zExp, zSig0 STATUS_VAR );
3074 int16 aExp, bExp, zExp;
3114 zExp = aExp - bExp + 0x3FD;
3119 ++zExp;
3131 return roundAndPackFloat64( zSign, zExp, zSig STATUS_VAR );
3228 int16 aExp, zExp;
3250 zExp = ( ( aExp - 0x3FF )>>1 ) + 0x3FE;
3266 return roundAndPackFloat64( 0, zExp, zSig STATUS_VAR );
3799 int32 aExp, bExp, zExp;
3815 zExp = aExp;
3824 zExp = bExp;
3836 normalizeFloatx80Subnormal( zSig0, &zExp, &zSig0 );
3839 zExp = aExp;
3847 ++zExp;
3851 STATUS(floatx80_rounding_precision), zSign, zExp, zSig0, zSig1 STATUS_VAR );
3865 int32 aExp, bExp, zExp;
3903 zExp = bExp;
3915 zExp = aExp;
3919 STATUS(floatx80_rounding_precision), zSign, zExp, zSig0, zSig1 STATUS_VAR );
3974 int32 aExp, bExp, zExp;
4012 zExp = aExp + bExp - 0x3FFE;
4016 --zExp;
4020 STATUS(floatx80_rounding_precision), zSign, zExp, zSig0, zSig1 STATUS_VAR );
4033 int32 aExp, bExp, zExp;
4075 zExp = aExp - bExp + 0x3FFE;
4079 ++zExp;
4100 STATUS(floatx80_rounding_precision), zSign, zExp, zSig0, zSig1 STATUS_VAR );
4209 int32 aExp, zExp;
4234 zExp = ( ( aExp - 0x3FFF )>>1 ) + 0x3FFF;
4266 STATUS(floatx80_rounding_precision), 0, zExp, zSig0, zSig1 STATUS_VAR );
4870 int32 aExp, bExp, zExp;
4894 zExp = aExp;
4909 zExp = bExp;
4925 zExp = aExp;
4930 --zExp;
4932 ++zExp;
4937 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 STATUS_VAR );
4951 int32 aExp, bExp, zExp;
5000 zExp = bExp;
5018 zExp = aExp;
5020 --zExp;
5021 return normalizeRoundAndPackFloat128( zSign, zExp - 14, zSig0, zSig1 STATUS_VAR );
5076 int32 aExp, bExp, zExp;
5116 zExp = aExp + bExp - 0x4000;
5125 ++zExp;
5127 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 STATUS_VAR );
5140 int32 aExp, bExp, zExp;
5184 zExp = aExp - bExp + 0x3FFD;
5191 ++zExp;
5211 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 STATUS_VAR );
5333 int32 aExp, zExp;
5359 zExp = ( ( aExp - 0x3FFF )>>1 ) + 0x3FFE;
5389 return roundAndPackFloat128( 0, zExp, zSig0, zSig1, zSig2 STATUS_VAR );