Changeset 94b696c in mainline
- Timestamp:
- 2012-11-24T22:38:36Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 02ce8a0
- Parents:
- d4cd7e5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/softfloat/common.c
rd4cd7e5 r94b696c 307 307 /** 308 308 * Round and normalize number expressed by exponent and fraction with 309 * first bit (equal to hidden bit) at 62nd bit.309 * first bit (equal to hidden bit) at bit 62. 310 310 * 311 311 * @param exp Exponent part. 312 * @param fraction Fraction with hidden bit shifted to 62nd bit.312 * @param fraction Fraction with hidden bit shifted to bit 62. 313 313 */ 314 314 void round_float64(int32_t *exp, uint64_t *fraction) 315 315 { 316 /* rounding - if first bit after fraction is set then round up */ 316 /* 317 * Rounding - if first bit after fraction is set then round up. 318 */ 319 320 /* 321 * Add 1 to the least significant bit of the fraction respecting the 322 * current shift to bit 62 and see if there will be a carry to bit 63. 323 */ 317 324 (*fraction) += (0x1 << (64 - FLOAT64_FRACTION_SIZE - 3)); 318 325 326 /* See if there was a carry to bit 63. */ 319 327 if ((*fraction) & 320 (FLOAT64_HIDDEN_BIT_MASK << (64 - FLOAT64_FRACTION_SIZE - 3))) {328 (FLOAT64_HIDDEN_BIT_MASK << (64 - FLOAT64_FRACTION_SIZE - 1))) { 321 329 /* rounding overflow */ 322 330 ++(*exp);
Note:
See TracChangeset
for help on using the changeset viewer.