Lines Matching refs:zExp

264 Packs the sign `zSign', exponent `zExp', and significand `zSig' into a
269 will have an integer portion equal to 1, the `zExp' input should be 1 less
274 INLINE float32 packFloat32( flag zSign, int16 zExp, bits32 zSig )
277 return ( ( (bits32) zSign )<<31 ) + ( ( (bits32) zExp )<<23 ) + zSig;
283 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
297 `zExp' must be 0; in that case, the result returned is a subnormal number,
299 normalized, `zExp' must be 1 less than the ``true'' floating-point exponent.
304 static float32 roundAndPackFloat32( flag zSign, int16 zExp, bits32 zSig )
329 if ( 0xFD <= (bits16) zExp ) {
330 if ( ( 0xFD < zExp )
331 || ( ( zExp == 0xFD )
337 if ( zExp < 0 ) {
340 || ( zExp < -1 )
342 shift32RightJamming( zSig, - zExp, &zSig );
343 zExp = 0;
351 if ( zSig == 0 ) zExp = 0;
352 return packFloat32( zSign, zExp, zSig );
358 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
362 Bit 31 of `zSig' must be zero, and `zExp' must be 1 less than the ``true''
367 normalizeRoundAndPackFloat32( flag zSign, int16 zExp, bits32 zSig )
372 return roundAndPackFloat32( zSign, zExp - shiftCount, zSig<<shiftCount );
433 Packs the sign `zSign', exponent `zExp', and significand `zSig' into a
438 will have an integer portion equal to 1, the `zExp' input should be 1 less
443 INLINE float64 packFloat64( flag zSign, int16 zExp, bits64 zSig )
447 ( ( (bits64) zExp )<<52 ) + zSig );
453 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
467 `zExp' must be 0; in that case, the result returned is a subnormal number,
469 normalized, `zExp' must be 1 less than the ``true'' floating-point exponent.
474 static float64 roundAndPackFloat64( flag zSign, int16 zExp, bits64 zSig )
499 if ( 0x7FD <= (bits16) zExp ) {
500 if ( ( 0x7FD < zExp )
501 || ( ( zExp == 0x7FD )
509 if ( zExp < 0 ) {
512 || ( zExp < -1 )
514 shift64RightJamming( zSig, - zExp, &zSig );
515 zExp = 0;
523 if ( zSig == 0 ) zExp = 0;
524 return packFloat64( zSign, zExp, zSig );
530 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
534 Bit 63 of `zSig' must be zero, and `zExp' must be 1 less than the ``true''
539 normalizeRoundAndPackFloat64( flag zSign, int16 zExp, bits64 zSig )
544 return roundAndPackFloat64( zSign, zExp - shiftCount, zSig<<shiftCount );
610 Packs the sign `zSign', exponent `zExp', and significand `zSig' into an
614 INLINE floatx80 packFloatx80( flag zSign, int32 zExp, bits64 zSig )
619 z.high = ( ( (bits16) zSign )<<15 ) + zExp;
626 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
643 significand is not normalized, `zExp' must be 0; in that case, the result
651 int8 roundingPrecision, flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1
688 if ( 0x7FFD <= (bits32) ( zExp - 1 ) ) {
689 if ( ( 0x7FFE < zExp )
690 || ( ( zExp == 0x7FFE ) && ( zSig0 + roundIncrement < zSig0 ) )
694 if ( zExp <= 0 ) {
697 || ( zExp < 0 )
699 shift64RightJamming( zSig0, 1 - zExp, &zSig0 );
700 zExp = 0;
705 if ( (sbits64) zSig0 < 0 ) zExp = 1;
711 return packFloatx80( zSign, zExp, zSig0 );
717 ++zExp;
725 if ( zSig0 == 0 ) zExp = 0;
726 return packFloatx80( zSign, zExp, zSig0 );
742 if ( 0x7FFD <= (bits32) ( zExp - 1 ) ) {
743 if ( ( 0x7FFE < zExp )
744 || ( ( zExp == 0x7FFE )
760 if ( zExp <= 0 ) {
763 || ( zExp < 0 )
766 shift64ExtraRightJamming( zSig0, zSig1, 1 - zExp, &zSig0, &zSig1 );
767 zExp = 0;
785 if ( (sbits64) zSig0 < 0 ) zExp = 1;
787 return packFloatx80( zSign, zExp, zSig0 );
794 ++zExp;
802 if ( zSig0 == 0 ) zExp = 0;
804 return packFloatx80( zSign, zExp, zSig0 );
811 `zExp', and significand formed by the concatenation of `zSig0' and `zSig1',
820 int8 roundingPrecision, flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1
828 zExp -= 64;
832 zExp -= shiftCount;
834 roundAndPackFloatx80( roundingPrecision, zSign, zExp, zSig0, zSig1 );
937 Packs the sign `zSign', the exponent `zExp', and the significand formed
940 proper positions, the three fields `zSign', `zExp', and `zSig0' are simply
944 to 1, the `zExp' input should be 1 less than the desired result exponent
950 packFloat128( flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1 )
955 z.high = ( ( (bits64) zSign )<<63 ) + ( ( (bits64) zExp )<<48 ) + zSig0;
962 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
975 significand is not normalized, `zExp' must be 0; in that case, the result
977 usual case that the input significand is normalized, `zExp' must be 1 less
984 flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1, bits64 zSig2 )
1005 if ( 0x7FFD <= (bits32) zExp ) {
1006 if ( ( 0x7FFD < zExp )
1007 || ( ( zExp == 0x7FFD )
1032 if ( zExp < 0 ) {
1035 || ( zExp < -1 )
1044 zSig0, zSig1, zSig2, - zExp, &zSig0, &zSig1, &zSig2 );
1045 zExp = 0;
1066 if ( ( zSig0 | zSig1 ) == 0 ) zExp = 0;
1068 return packFloat128( zSign, zExp, zSig0, zSig1 );
1074 Takes an abstract floating-point value having sign `zSign', exponent `zExp',
1079 normalized. In all cases, `zExp' must be 1 less than the ``true'' floating-
1085 flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1 )
1093 zExp -= 64;
1104 zExp -= shiftCount;
1105 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 );
1349 int32 zExp;
1356 zExp = 0x406E - shiftCount;
1367 return packFloat128( zSign, zExp, zSig0, zSig1 );
1708 int16 aExp, bExp, zExp;
1731 zExp = aExp;
1745 zExp = bExp;
1754 zExp = aExp;
1759 --zExp;
1762 ++zExp;
1765 return roundAndPackFloat32( zSign, zExp, zSig );
1780 int16 aExp, bExp, zExp;
1820 zExp = bExp;
1838 zExp = aExp;
1840 --zExp;
1841 return normalizeRoundAndPackFloat32( zSign, zExp, zSig );
1899 int16 aExp, bExp, zExp;
1937 zExp = aExp + bExp - 0x7F;
1944 --zExp;
1946 return roundAndPackFloat32( zSign, zExp, zSig );
1960 int16 aExp, bExp, zExp;
1998 zExp = aExp - bExp + 0x7D;
2003 ++zExp;
2009 return roundAndPackFloat32( zSign, zExp, zSig );
2127 int16 aExp, zExp;
2149 zExp = ( ( aExp - 0x7F )>>1 ) + 0x7E;
2168 return roundAndPackFloat32( 0, zExp, zSig );
2674 int16 aExp, bExp, zExp;
2697 zExp = aExp;
2711 zExp = bExp;
2720 zExp = aExp;
2725 --zExp;
2728 ++zExp;
2731 return roundAndPackFloat64( zSign, zExp, zSig );
2746 int16 aExp, bExp, zExp;
2786 zExp = bExp;
2804 zExp = aExp;
2806 --zExp;
2807 return normalizeRoundAndPackFloat64( zSign, zExp, zSig );
2865 int16 aExp, bExp, zExp;
2901 zExp = aExp + bExp - 0x3FF;
2908 --zExp;
2910 return roundAndPackFloat64( zSign, zExp, zSig0 );
2924 int16 aExp, bExp, zExp;
2964 zExp = aExp - bExp + 0x3FD;
2969 ++zExp;
2981 return roundAndPackFloat64( zSign, zExp, zSig );
3082 int16 aExp, zExp;
3104 zExp = ( ( aExp - 0x3FF )>>1 ) + 0x3FE;
3120 return roundAndPackFloat64( 0, zExp, zSig );
3618 int32 aExp, bExp, zExp;
3634 zExp = aExp;
3643 zExp = bExp;
3655 normalizeFloatx80Subnormal( zSig0, &zExp, &zSig0 );
3658 zExp = aExp;
3666 ++zExp;
3670 floatx80_rounding_precision, zSign, zExp, zSig0, zSig1 );
3685 int32 aExp, bExp, zExp;
3723 zExp = bExp;
3735 zExp = aExp;
3739 floatx80_rounding_precision, zSign, zExp, zSig0, zSig1 );
3797 int32 aExp, bExp, zExp;
3835 zExp = aExp + bExp - 0x3FFE;
3839 --zExp;
3843 floatx80_rounding_precision, zSign, zExp, zSig0, zSig1 );
3857 int32 aExp, bExp, zExp;
3899 zExp = aExp - bExp + 0x3FFE;
3903 ++zExp;
3924 floatx80_rounding_precision, zSign, zExp, zSig0, zSig1 );
4036 int32 aExp, zExp;
4061 zExp = ( ( aExp - 0x3FFF )>>1 ) + 0x3FFF;
4093 floatx80_rounding_precision, 0, zExp, zSig0, zSig1 );
4767 int32 aExp, bExp, zExp;
4791 zExp = aExp;
4806 zExp = bExp;
4819 zExp = aExp;
4824 --zExp;
4826 ++zExp;
4831 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 );
4846 int32 aExp, bExp, zExp;
4895 zExp = bExp;
4913 zExp = aExp;
4915 --zExp;
4916 return normalizeRoundAndPackFloat128( zSign, zExp - 14, zSig0, zSig1 );
4974 int32 aExp, bExp, zExp;
5014 zExp = aExp + bExp - 0x4000;
5023 ++zExp;
5025 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 );
5039 int32 aExp, bExp, zExp;
5083 zExp = aExp - bExp + 0x3FFD;
5090 ++zExp;
5110 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 );
5235 int32 aExp, zExp;
5261 zExp = ( ( aExp - 0x3FFF )>>1 ) + 0x3FFE;
5291 return roundAndPackFloat128( 0, zExp, zSig0, zSig1, zSig2 );