45{
48 bool sign;
52#ifdef SOFTFLOAT_FAST_INT64
53 struct uint64_extra sigExtra;
54#else
56#endif
57
58
59
61 uiA = uA.ui;
65
66
67 if ( exp ) sig |=
UINT64_C( 0x0010000000000000 );
68 shiftDist = 0x433 - exp;
69#ifdef SOFTFLOAT_FAST_INT64
70 if ( shiftDist <= 0 ) {
71 if ( shiftDist < -11 ) goto invalid;
72 sigExtra.v = sig<<-shiftDist;
73 sigExtra.extra = 0;
74 } else {
76 }
77 return
79 sign, sigExtra.v, sigExtra.extra, roundingMode, exact );
80#else
82 if ( shiftDist <= 0 ) {
83 if ( shiftDist < -11 ) goto invalid;
84 sig <<= -shiftDist;
87 } else {
91 }
93#endif
94
95
96 invalid:
98 return
101
102}
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
void softfloat_raiseFlags(uint_fast8_t flags)
#define i64_fromNegOverflow
#define i64_fromPosOverflow
int_fast64_t softfloat_roundMToI64(bool, uint32_t *, uint_fast8_t, bool)
#define indexWord(total, n)
#define softfloat_shiftRightJam96M(aPtr, dist, zPtr)
int_fast64_t softfloat_roundToI64(bool sign, uint_fast64_t sig, uint_fast64_t sigExtra, uint_fast8_t roundingMode, bool exact)