58{
65 bool signZ;
72
73
74
78
79
85
86
87 if ( (expA == 0x7FFF) || (expB == 0x7FFF) ) {
89 ptr = aWPtr;
90 if ( ! expA ) goto possiblyInvalid;
91 if ( ! expB ) {
92 ptr = bWPtr;
93 possiblyInvalid:
94 if (
98 ) {
100 return;
101 }
102 }
104 goto uiZ96;
105 }
106
107
108 if ( expA ) {
113 } else {
115 if ( expA == -128 ) goto zero;
116 }
117 if ( expB ) {
122 } else {
124 if ( expB == -128 ) goto zero;
125 }
126
127
128 expZ = expA + expB - 0x4000;
130 if (
133 ) {
135 }
137 shiftDist = 16;
139 ++expZ;
140 shiftDist = 15;
141 }
144 return;
145
146
147 zero:
149 uiZ96:
154
155}
void softfloat_invalidF128M(uint32_t *)
#define fracF128UI96(a96)
void softfloat_roundPackMToF128M(bool, int32_t, uint32_t *, uint32_t *)
#define packToF128UI96(sign, exp, sig96)
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 indexMultiwordHi(total, n)
#define indexWord(total, n)
#define indexWordHi(total)
void softfloat_mul128MTo256M(const uint32_t *aPtr, const uint32_t *bPtr, uint32_t *zPtr)
#define softfloat_shortShiftLeft160M(aPtr, dist, zPtr)