| 2494 | *----------------------------------------------------------------------------*/ |
| 2495 | |
| 2496 | floatx80 floatx80_sub(floatx80 a, floatx80 b, float_status *status) |
| 2497 | { |
| 2498 | flag aSign, bSign; |
| 2499 | |
| 2500 | if (floatx80_invalid_encoding(a) || floatx80_invalid_encoding(b)) { |
| 2501 | float_raise(float_flag_invalid, status); |
| 2502 | return floatx80_default_nan(status); |
| 2503 | } |
| 2504 | aSign = extractFloatx80Sign( a ); |
| 2505 | bSign = extractFloatx80Sign( b ); |
| 2506 | if ( aSign == bSign ) { |
| 2507 | return subFloatx80Sigs(a, b, aSign, status); |
| 2508 | } |
| 2509 | else { |
| 2510 | return addFloatx80Sigs(a, b, aSign, status); |
| 2511 | } |
| 2512 | |
| 2513 | } |
| 2514 | |
| 2515 | /*---------------------------------------------------------------------------- |
| 2516 | | Returns the result of multiplying the extended double-precision floating- |