Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 833 → Rev 834

/uspace/trunk/softfloat/generic/add.c
102,7 → 102,11
if (expdiff < (FLOAT32_FRACTION_SIZE + 2) ) {
frac2 >>= expdiff;
frac1 += frac2;
};
} else {
a.parts.exp = exp1;
a.parts.fraction = (frac1 >> 6) & (~(FLOAT32_HIDDEN_BIT_MASK));
return a;
}
if (frac1 & (FLOAT32_HIDDEN_BIT_MASK << 7) ) {
++exp1;
142,7 → 146,7
__u32 exp1, exp2;
__u64 frac1, frac2;
expdiff = a.parts.exp - b.parts.exp;
expdiff = ((int )a.parts.exp) - b.parts.exp;
if (expdiff < 0) {
if (isFloat64NaN(b)) {
/* TODO: fix SigNaN */
211,7 → 215,11
if (expdiff < (FLOAT64_FRACTION_SIZE + 2) ) {
frac2 >>= expdiff;
frac1 += frac2;
};
} else {
a.parts.exp = exp1;
a.parts.fraction = (frac1 >> 6) & (~(FLOAT64_HIDDEN_BIT_MASK));
return a;
}
if (frac1 & (FLOAT64_HIDDEN_BIT_MASK << 7) ) {
++exp1;
227,7 → 235,7
frac1 >>= 1;
};
if ((a.parts.exp == FLOAT64_MAX_EXPONENT ) || (a.parts.exp < exp1)) {
if ((exp1 == FLOAT64_MAX_EXPONENT ) || (exp2 > exp1)) {
/* overflow - set infinity as result */
a.parts.exp = FLOAT64_MAX_EXPONENT;
a.parts.fraction = 0;
237,6 → 245,7
a.parts.exp = exp1;
/*Clear hidden bit and shift */
a.parts.fraction = ( (frac1 >> 6 ) & (~FLOAT64_HIDDEN_BIT_MASK));
return a;
}