Print this page

        

*** 98,120 **** frac |= 1; if (!frac) return (x); xx.i[LOWORD] = 0; xx.i[HIWORD] &= ~(i - 1); ! if (rm == FE_UPWARD || (rm == FE_TONEAREST && ! (frac > 0x80000000u || (frac == 0x80000000) && ! (xx.i[HIWORD] & i)))) xx.i[HIWORD] += i; } else { i = 1 << j; frac = (xx.i[LOWORD] << 1) << (31 - j); if (!frac) return (x); xx.i[LOWORD] &= ~(i - 1); ! if (rm == FE_UPWARD || (rm == FE_TONEAREST && ! (frac > 0x80000000u || (frac == 0x80000000) && ! (xx.i[LOWORD] & i)))) { xx.i[LOWORD] += i; if (xx.i[LOWORD] == 0) xx.i[HIWORD]++; } } --- 98,120 ---- frac |= 1; if (!frac) return (x); xx.i[LOWORD] = 0; xx.i[HIWORD] &= ~(i - 1); ! if ((rm == FE_UPWARD) || ((rm == FE_TONEAREST) && ! ((frac > 0x80000000u) || ((frac == 0x80000000) && ! (xx.i[HIWORD] & i))))) xx.i[HIWORD] += i; } else { i = 1 << j; frac = (xx.i[LOWORD] << 1) << (31 - j); if (!frac) return (x); xx.i[LOWORD] &= ~(i - 1); ! if ((rm == FE_UPWARD) || ((rm == FE_TONEAREST) && ! (frac > 0x80000000u || ((frac == 0x80000000) && ! (xx.i[LOWORD] & i))))) { xx.i[LOWORD] += i; if (xx.i[LOWORD] == 0) xx.i[HIWORD]++; } }