| 2469 | *----------------------------------------------------------------------------*/ |
| 2470 | |
| 2471 | floatx80 floatx80_add(floatx80 a, floatx80 b, float_status *status) |
| 2472 | { |
| 2473 | flag aSign, bSign; |
| 2474 | |
| 2475 | if (floatx80_invalid_encoding(a) || floatx80_invalid_encoding(b)) { |
| 2476 | float_raise(float_flag_invalid, status); |
| 2477 | return floatx80_default_nan(status); |
| 2478 | } |
| 2479 | aSign = extractFloatx80Sign( a ); |
| 2480 | bSign = extractFloatx80Sign( b ); |
| 2481 | if ( aSign == bSign ) { |
| 2482 | return addFloatx80Sigs(a, b, aSign, status); |
| 2483 | } |
| 2484 | else { |
| 2485 | return subFloatx80Sigs(a, b, aSign, status); |
| 2486 | } |
| 2487 | |
| 2488 | } |
| 2489 | |
| 2490 | /*---------------------------------------------------------------------------- |
| 2491 | | Returns the result of subtracting the extended double-precision floating- |