60{
67 bool signZ;
72
73
74
78
79
85
86
87 if ( (expA == 0x7FFF) || (expB == 0x7FFF) ) {
89 if (
90 (! aSPtr->
signif && (expA != 0x7FFF))
91 || (! bSPtr->
signif && (expB != 0x7FFF))
92 ) {
94 return;
95 }
97 uiZ0 =
UINT64_C( 0x8000000000000000 );
98 goto uiZ;
99 }
100
101
102 if ( ! expA ) expA = 1;
104 if ( ! (sigA &
UINT64_C( 0x8000000000000000 )) ) {
105 if ( ! sigA ) goto zero;
107 }
108 if ( ! expB ) expB = 1;
110 if ( ! (sigB &
UINT64_C( 0x8000000000000000 )) ) {
111 if ( ! sigB ) goto zero;
113 }
114
115
116 expZ = expA + expB - 0x3FFE;
121 --expZ;
123 }
126 return;
127
128
129 zero:
131 uiZ0 = 0;
132 uiZ:
135
136}
#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 *)
#define signExtF80UI64(a64)
bool softfloat_tryPropagateNaNExtF80M(const struct extFloat80M *, const struct extFloat80M *, struct extFloat80M *)
int softfloat_normExtF80SigM(uint64_t *)
#define indexMultiwordHi(total, n)
#define indexWordLo(total)
#define indexWord(total, n)
#define indexWordHi(total)
#define softfloat_add96M(aPtr, bPtr, zPtr)
void softfloat_mul64To128M(uint64_t a, uint64_t b, uint32_t *zPtr)
THREAD_LOCAL uint_fast8_t extF80_roundingPrecision
unsigned __int64 uint64_t