41#include "specialize.h"
44#ifdef SOFTFLOAT_FAST_INT64
67 uint32_t rem2[5], *altRemPtr, *newRemPtr, wordMeanRem;
81 if ( (expA == 0x7FFF) || (expB == 0x7FFF) ) {
83 if ( expA == 0x7FFF )
goto invalid;
88 if ( expA < expB - 1 )
goto copyA;
92 if ( expB == -128 )
goto invalid;
95 if ( expA == -128 )
goto copyA;
99 expDiff = expA - expB;
101 if ( expDiff < -1 )
goto copyA;
119 if ( expDiff < 0 )
break;
120 q = (q64 + 0x80000000)>>32;
130 q = (
uint32_t) (q64>>32)>>(~expDiff & 31);
143 newRemPtr = altRemPtr;
147 }
while ( ! (remPtr[
indexWordHi( 4 )] & 0x80000000) );
152 (wordMeanRem & 0x80000000)
153 || (! wordMeanRem && (q & 1) && ! x[
indexWord( 4, 0 )]
float128_t f128_rem(float128_t a, float128_t b)
void f128M_rem(const float128_t *aPtr, const float128_t *bPtr, float128_t *zPtr)
void softfloat_invalidF128M(uint32_t *)
void softfloat_normRoundPackMToF128M(bool, int32_t, uint32_t *, uint32_t *)
int softfloat_shiftNormSigF128M(const uint32_t *, uint_fast8_t, uint32_t *)
bool softfloat_tryPropagateNaNF128M(const uint32_t *, const uint32_t *, uint32_t *)
#define signF128UI96(a96)
#define indexMultiwordLo(total, n)
#define indexWord(total, n)
#define indexWordHi(total)
#define softfloat_add128M(aPtr, bPtr, zPtr)
int_fast8_t softfloat_compare128M(const uint32_t *aPtr, const uint32_t *bPtr)
#define softfloat_remStep128MBy32(remPtr, dist, bPtr, q, zPtr)
#define softfloat_sub128M(aPtr, bPtr, zPtr)
uint32_t softfloat_approxRecip32_1(uint32_t a)
#define softfloat_negX128M(zPtr)
unsigned __int64 uint64_t