45{
48 bool sign;
53
54
55
57 uiA = uA.ui;
61
62
63 shiftDist = 0x433 - exp;
64 if ( shiftDist <= 0 ) {
65
66
67 if ( shiftDist < -10 ) {
69 return -
INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1;
70 }
72 return
75 }
76
77
78 sig |=
UINT64_C( 0x0010000000000000 );
79 absZ = sig<<-shiftDist;
80 } else {
81
82
83 if ( 53 <= shiftDist ) {
84 if ( exact && (exp | sig) ) {
86 }
87 return 0;
88 }
89
90
91 sig |=
UINT64_C( 0x0010000000000000 );
92 absZ = sig>>shiftDist;
93 if ( exact && (absZ<<shiftDist != sig) ) {
95 }
96 }
97 return sign ? -absZ : absZ;
98
99}
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
void softfloat_raiseFlags(uint_fast8_t flags)
#define i64_fromNegOverflow
#define i64_fromPosOverflow
#define packToF64UI(sign, exp, sig)
THREAD_LOCAL uint_fast8_t softfloat_exceptionFlags