41#include "specialize.h"
44#ifdef SOFTFLOAT_FAST_INT64
62 bool sign, raiseInexact;
76 if ( ! sig && (exp != 0x7FFF) )
return 0;
77 shiftDist = 0x403E - exp;
78 if ( 64 <= shiftDist ) {
84 if ( shiftDist < 0 ) {
85 if ( sig>>32 || (shiftDist <= -31) )
goto invalid;
87 if ( shiftedSig>>32 )
goto invalid;
91 if ( shiftDist ) shiftedSig >>= shiftDist;
92 if ( shiftedSig>>32 )
goto invalid;
94 if ( exact && shiftDist ) {
95 raiseInexact = ((
uint64_t) absZ<<shiftDist != sig);
99 if ( 0x80000000 < absZ )
goto invalid;
103 if ( 0x80000000 <= absZ )
goto invalid;
void softfloat_raiseFlags(uint_fast8_t flags)
#define i32_fromNegOverflow
#define i32_fromPosOverflow
int_fast32_t extF80_to_i32_r_minMag(extFloat80_t a, bool exact)
int_fast32_t extF80M_to_i32_r_minMag(const extFloat80_t *aPtr, bool exact)
#define expExtF80UI64(a64)
#define signExtF80UI64(a64)
THREAD_LOCAL uint_fast8_t softfloat_exceptionFlags
unsigned __int64 uint64_t