Home | History | Annotate | Download | only in libkern

Lines Matching defs:zExp

281 | Packs the sign `zSign', exponent `zExp', and significand `zSig' into a
286 | will have an integer portion equal to 1, the `zExp' input should be 1 less
291 INLINE float32 packFloat32( flag zSign, int16 zExp, bits32 zSig )
294 return ( ( (bits32) zSign )<<31 ) + ( ( (bits32) zExp )<<23 ) + zSig;
299 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
313 | `zExp' must be 0; in that case, the result returned is a subnormal number,
315 | normalized, `zExp' must be 1 less than the ``true'' floating-point exponent.
320 static float32 roundAndPackFloat32( flag zSign, int16 zExp, bits32 zSig )
345 if ( 0xFD <= (bits16) zExp ) {
346 if ( ( 0xFD < zExp )
347 || ( ( zExp == 0xFD )
353 if ( zExp < 0 ) {
356 || ( zExp < -1 )
358 shift32RightJamming( zSig, - zExp, &zSig );
359 zExp = 0;
367 if ( zSig == 0 ) zExp = 0;
368 return packFloat32( zSign, zExp, zSig );
373 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
377 | Bit 31 of `zSig' must be zero, and `zExp' must be 1 less than the ``true''
382 normalizeRoundAndPackFloat32( flag zSign, int16 zExp, bits32 zSig )
387 return roundAndPackFloat32( zSign, zExp - shiftCount, zSig<<shiftCount );
442 | Packs the sign `zSign', exponent `zExp', and significand `zSig' into a
447 | will have an integer portion equal to 1, the `zExp' input should be 1 less
452 INLINE float64 packFloat64( flag zSign, int16 zExp, bits64 zSig )
455 return ( ( (bits64) zSign )<<63 ) + ( ( (bits64) zExp )<<52 ) + zSig;
460 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
474 | `zExp' must be 0; in that case, the result returned is a subnormal number,
476 | normalized, `zExp' must be 1 less than the ``true'' floating-point exponent.
481 static float64 roundAndPackFloat64( flag zSign, int16 zExp, bits64 zSig )
506 if ( 0x7FD <= (bits16) zExp ) {
507 if ( ( 0x7FD < zExp )
508 || ( ( zExp == 0x7FD )
514 if ( zExp < 0 ) {
517 || ( zExp < -1 )
519 shift64RightJamming( zSig, - zExp, &zSig );
520 zExp = 0;
528 if ( zSig == 0 ) zExp = 0;
529 return packFloat64( zSign, zExp, zSig );
534 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
538 | Bit 63 of `zSig' must be zero, and `zExp' must be 1 less than the ``true''
543 normalizeRoundAndPackFloat64( flag zSign, int16 zExp, bits64 zSig )
548 return roundAndPackFloat64( zSign, zExp - shiftCount, zSig<<shiftCount );
609 | Packs the sign `zSign', exponent `zExp', and significand `zSig' into an
613 INLINE floatx80 packFloatx80( flag zSign, int32 zExp, bits64 zSig )
618 z.high = ( ( (bits16) zSign )<<15 ) + zExp;
624 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
641 | significand is not normalized, `zExp' must be 0; in that case, the result
649 int8 roundingPrecision, flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1
686 if ( 0x7FFD <= (bits32) ( zExp - 1 ) ) {
687 if ( ( 0x7FFE < zExp )
688 || ( ( zExp == 0x7FFE ) && ( zSig0 + roundIncrement < zSig0 ) )
692 if ( zExp <= 0 ) {
695 || ( zExp < 0 )
697 shift64RightJamming( zSig0, 1 - zExp, &zSig0 );
698 zExp = 0;
703 if ( (sbits64) zSig0 < 0 ) zExp = 1;
709 return packFloatx80( zSign, zExp, zSig0 );
715 ++zExp;
723 if ( zSig0 == 0 ) zExp = 0;
724 return packFloatx80( zSign, zExp, zSig0 );
740 if ( 0x7FFD <= (bits32) ( zExp - 1 ) ) {
741 if ( ( 0x7FFE < zExp )
742 || ( ( zExp == 0x7FFE )
758 if ( zExp <= 0 ) {
761 || ( zExp < 0 )
764 shift64ExtraRightJamming( zSig0, zSig1, 1 - zExp, &zSig0, &zSig1 );
765 zExp = 0;
783 if ( (sbits64) zSig0 < 0 ) zExp = 1;
785 return packFloatx80( zSign, zExp, zSig0 );
792 ++zExp;
800 if ( zSig0 == 0 ) zExp = 0;
802 return packFloatx80( zSign, zExp, zSig0 );
808 | `zExp', and significand formed by the concatenation of `zSig0' and `zSig1',
817 int8 roundingPrecision, flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1
825 zExp -= 64;
829 zExp -= shiftCount;
831 roundAndPackFloatx80( roundingPrecision, zSign, zExp, zSig0, zSig1 );
928 | Packs the sign `zSign', the exponent `zExp', and the significand formed
931 | proper positions, the three fields `zSign', `zExp', and `zSig0' are simply
935 | to 1, the `zExp' input should be 1 less than the desired result exponent
941 packFloat128( flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1 )
946 z.high = ( ( (bits64) zSign )<<63 ) + ( ( (bits64) zExp )<<48 ) + zSig0;
952 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
965 | significand is not normalized, `zExp' must be 0; in that case, the result
967 | usual case that the input significand is normalized, `zExp' must be 1 less
974 flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1, bits64 zSig2 )
995 if ( 0x7FFD <= (bits32) zExp ) {
996 if ( ( 0x7FFD < zExp )
997 || ( ( zExp == 0x7FFD )
1022 if ( zExp < 0 ) {
1025 || ( zExp < -1 )
1034 zSig0, zSig1, zSig2, - zExp, &zSig0, &zSig1, &zSig2 );
1035 zExp = 0;
1056 if ( ( zSig0 | zSig1 ) == 0 ) zExp = 0;
1058 return packFloat128( zSign, zExp, zSig0, zSig1 );
1063 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
1068 | normalized. In all cases, `zExp' must be 1 less than the ``true'' floating-
1074 flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1 )
1082 zExp -= 64;
1093 zExp -= shiftCount;
1094 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 );
1282 int32 zExp;
1289 zExp = 0x406E - shiftCount;
1300 return packFloat128( zSign, zExp, zSig0, zSig1 );
1631 int16 aExp, bExp, zExp;
1654 zExp = aExp;
1668 zExp = bExp;
1677 zExp = aExp;
1682 --zExp;
1685 ++zExp;
1688 return roundAndPackFloat32( zSign, zExp, zSig );
1702 int16 aExp, bExp, zExp;
1742 zExp = bExp;
1760 zExp = aExp;
1762 --zExp;
1763 return normalizeRoundAndPackFloat32( zSign, zExp, zSig );
1818 int16 aExp, bExp, zExp;
1856 zExp = aExp + bExp - 0x7F;
1863 --zExp;
1865 return roundAndPackFloat32( zSign, zExp, zSig );
1878 int16 aExp, bExp, zExp;
1916 zExp = aExp - bExp + 0x7D;
1921 ++zExp;
1927 return roundAndPackFloat32( zSign, zExp, zSig );
2044 int16 aExp, zExp;
2066 zExp = ( ( aExp - 0x7F )>>1 ) + 0x7E;
2085 return roundAndPackFloat32( 0, zExp, zSig );
2612 int16 aExp, bExp, zExp;
2635 zExp = aExp;
2649 zExp = bExp;
2658 zExp = aExp;
2663 --zExp;
2666 ++zExp;
2669 return roundAndPackFloat64( zSign, zExp, zSig );
2683 int16 aExp, bExp, zExp;
2723 zExp = bExp;
2741 zExp = aExp;
2743 --zExp;
2744 return normalizeRoundAndPackFloat64( zSign, zExp, zSig );
2799 int16 aExp, bExp, zExp;
2835 zExp = aExp + bExp - 0x3FF;
2842 --zExp;
2844 return roundAndPackFloat64( zSign, zExp, zSig0 );
2857 int16 aExp, bExp, zExp;
2897 zExp = aExp - bExp + 0x3FD;
2902 ++zExp;
2914 return roundAndPackFloat64( zSign, zExp, zSig );
3013 int16 aExp, zExp;
3035 zExp = ( ( aExp - 0x3FF )>>1 ) + 0x3FE;
3051 return roundAndPackFloat64( 0, zExp, zSig );
3523 int32 aExp, bExp, zExp;
3539 zExp = aExp;
3548 zExp = bExp;
3560 normalizeFloatx80Subnormal( zSig0, &zExp, &zSig0 );
3563 zExp = aExp;
3571 ++zExp;
3575 floatx80_rounding_precision, zSign, zExp, zSig0, zSig1 );
3589 int32 aExp, bExp, zExp;
3627 zExp = bExp;
3639 zExp = aExp;
3643 floatx80_rounding_precision, zSign, zExp, zSig0, zSig1 );
3698 int32 aExp, bExp, zExp;
3736 zExp = aExp + bExp - 0x3FFE;
3740 --zExp;
3744 floatx80_rounding_precision, zSign, zExp, zSig0, zSig1 );
3757 int32 aExp, bExp, zExp;
3799 zExp = aExp - bExp + 0x3FFE;
3803 ++zExp;
3824 floatx80_rounding_precision, zSign, zExp, zSig0, zSig1 );
3934 int32 aExp, zExp;
3959 zExp = ( ( aExp - 0x3FFF )>>1 ) + 0x3FFF;
3991 floatx80_rounding_precision, 0, zExp, zSig0, zSig1 );
4595 int32 aExp, bExp, zExp;
4619 zExp = aExp;
4634 zExp = bExp;
4647 zExp = aExp;
4652 --zExp;
4654 ++zExp;
4659 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 );
4673 int32 aExp, bExp, zExp;
4722 zExp = bExp;
4740 zExp = aExp;
4742 --zExp;
4743 return normalizeRoundAndPackFloat128( zSign, zExp - 14, zSig0, zSig1 );
4798 int32 aExp, bExp, zExp;
4838 zExp = aExp + bExp - 0x4000;
4847 ++zExp;
4849 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 );
4862 int32 aExp, bExp, zExp;
4906 zExp = aExp - bExp + 0x3FFD;
4913 ++zExp;
4933 return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 );
5056 int32 aExp, zExp;
5082 zExp = ( ( aExp - 0x3FFF )>>1 ) + 0x3FFE;
5112 return roundAndPackFloat128( 0, zExp, zSig0, zSig1, zSig2 );