62 bool sign, raiseInexact;
75 if ( ! sig && (exp != 0x7FFF) )
return 0;
76 shiftDist = 0x403E - exp;
77 if ( 64 <= shiftDist ) {
83 if ( shiftDist < 0 ) {
84 if ( shiftDist <= -63 )
goto invalid;
85 shiftDist = -shiftDist;
86 absZ = sig<<shiftDist;
87 if ( absZ>>shiftDist != sig )
goto invalid;
90 if ( shiftDist ) absZ >>= shiftDist;
91 if ( exact && shiftDist ) raiseInexact = (absZ<<shiftDist != sig);
94 if (
UINT64_C( 0x8000000000000000 ) < absZ )
goto invalid;
98 if (
UINT64_C( 0x8000000000000000 ) <= absZ )
goto invalid;