45{
51 bool sign;
53
54
55
57 uiA64 = uA.s.signExp;
59 sig = uA.s.signif;
60
61
62 shiftDist = 0x403E - exp;
63 if ( 64 <= shiftDist ) {
64 if ( exact && (exp | sig) ) {
66 }
67 return 0;
68 }
69
70
72 if ( shiftDist < 33 ) {
73 if (
75 && (sig <
UINT64_C( 0x8000000100000000 ))
76 ) {
77 if ( exact && (sig &
UINT64_C( 0x00000000FFFFFFFF )) ) {
79 }
80 return -0x7FFFFFFF - 1;
81 }
83 return
84 (exp == 0x7FFF) && (sig &
UINT64_C( 0x7FFFFFFFFFFFFFFF ))
87 }
88
89
90 absZ = sig>>shiftDist;
93 }
94 return sign ? -absZ : absZ;
95
96}
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
void softfloat_raiseFlags(uint_fast8_t flags)
#define i32_fromNegOverflow
#define i32_fromPosOverflow
#define packToExtF80UI64(sign, exp)
#define expExtF80UI64(a64)
#define signExtF80UI64(a64)
THREAD_LOCAL uint_fast8_t softfloat_exceptionFlags