56{
62 bool sign;
65
66
67
72
73
74 if ( ! sig && (exp != 0x7FFF) ) return 0;
75 shiftDist = 0x403E - exp;
76 if ( 64 <= shiftDist ) {
78 return 0;
79 }
80
81
83 if ( shiftDist < 0 ) {
84 if ( sign || sig>>32 || (shiftDist <= -31) ) goto invalid;
86 if ( shiftedSig>>32 ) goto invalid;
87 z = shiftedSig;
88 } else {
89 shiftedSig = sig;
90 if ( shiftDist ) shiftedSig >>= shiftDist;
91 if ( shiftedSig>>32 ) goto invalid;
92 z = shiftedSig;
93 if ( sign && z ) goto invalid;
94 if ( exact && shiftDist && ((
uint64_t) z<<shiftDist != sig) ) {
96 }
97 }
98 return z;
99
100
101 invalid:
103 return
104 (exp == 0x7FFF) && (sig &
UINT64_C( 0x7FFFFFFFFFFFFFFF ))
107
108}
void softfloat_raiseFlags(uint_fast8_t flags)
#define ui32_fromNegOverflow
#define ui32_fromPosOverflow
#define expExtF80UI64(a64)
#define signExtF80UI64(a64)
THREAD_LOCAL uint_fast8_t softfloat_exceptionFlags
unsigned __int64 uint64_t