56{
   63    uint32_t rem96[3], sig32A, recipSqrt32, sig32Z, q;
 
   65    uint32_t rem32, term[4], rem[4], extSigZ[3];
 
   66 
   67    
   68
   71    
   72
   77    
   78
   79    if ( expA == 0x7FFF ) {
   80        if ( rem64 & 
UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) {
 
   82            return;
   83        }
   84        if ( signUI64 ) goto invalid;
   85        rem64 = 
UINT64_C( 0x8000000000000000 );
 
   86        goto copyA;
   87    }
   88    
   89
   90    if ( ! expA ) expA = 1;
   91    if ( ! (rem64 & 
UINT64_C( 0x8000000000000000 )) ) {
 
   92        if ( ! rem64 ) {
   93            uiA64 = signUI64;
   94            goto copyA;
   95        }
   97    }
   98    if ( signUI64 ) goto invalid;
   99    
  100
  101    expZ = ((expA - 0x3FFF)>>1) + 0x3FFF;
  102    expA &= 1;
  104    sig32A = rem64>>32;
  106    sig32Z = ((
uint64_t) sig32A * recipSqrt32)>>32;
 
  107    if ( expA ) sig32Z >>= 1;
  108    rem64 =
  113    
  114
  118    
  119
  120
  121    for (;;) {
  122        x64 = ((
uint64_t) sig32Z<<32) + sig64Z;
 
  128        if ( ! (rem32 & 0x80000000) ) break;
  129        --q;
  130        sig64Z -= 1<<3;
  131    }
  133    
  134
  136    if ( rem64>>34 ) q += recipSqrt32;
  139    x64 = (sig64Z<<1) + (x64>>32);
  142    
  143
  144    if ( (q & 0xFFFFFF) <= 2 ) {
  147        x64 = sig64Z + (q>>27);
  155        if ( q & 0x80000000 ) {
  157        } else {
  160            }
  161        }
  162    }
  165    return;
  166    
  167
  168 invalid:
  170    return;
  171    
  172
  173 copyA:
  176 
  177}
void softfloat_propagateNaNExtF80M(const struct extFloat80M *aSPtr, const struct extFloat80M *bSPtr, struct extFloat80M *zSPtr)
#define packToExtF80UI64(sign, exp)
#define expExtF80UI64(a64)
void softfloat_invalidExtF80M(struct extFloat80M *)
void softfloat_roundPackMToExtF80M(bool, int32_t, uint32_t *, uint_fast8_t, struct extFloat80M *)
int softfloat_normExtF80SigM(uint64_t *)
#define indexMultiwordHi(total, n)
#define indexWordLo(total)
#define indexWord(total, n)
#define indexWordHi(total)
#define softfloat_sub1X96M(zPtr)
#define softfloat_remStep128MBy32(remPtr, dist, bPtr, q, zPtr)
#define softfloat_remStep96MBy32(remPtr, dist, bPtr, q, zPtr)
void softfloat_shortShiftLeft64To96M(uint64_t a, uint_fast8_t dist, uint32_t *zPtr)
uint32_t softfloat_approxRecipSqrt32_1(unsigned int oddExpA, uint32_t a)
THREAD_LOCAL uint_fast8_t extF80_roundingPrecision
unsigned __int64 uint64_t