31-12-2016: Added for Previous
| 1676 | |
| 1677 | #ifdef SOFTFLOAT_68K // 31-12-2016: Added for Previous |
| 1678 | floatx80 float32_to_floatx80_allowunnormal(float32 a , float_status *status) |
| 1679 | { |
| 1680 | flag aSign; |
| 1681 | int16_t aExp; |
| 1682 | uint32_t aSig; |
| 1683 | |
| 1684 | aSig = extractFloat32Frac(a); |
| 1685 | aExp = extractFloat32Exp(a); |
| 1686 | aSign = extractFloat32Sign(a); |
| 1687 | if (aExp == 0xFF) { |
| 1688 | return packFloatx80( aSign, 0x7FFF, ( (uint64_t) aSig )<<40 ); |
| 1689 | } |
| 1690 | if (aExp == 0) { |
| 1691 | if (aSig == 0) return packFloatx80(aSign, 0, 0); |
| 1692 | return packFloatx80(aSign, 0x3F81, ((uint64_t) aSig) << 40); |
| 1693 | } |
| 1694 | aSig |= 0x00800000; |
| 1695 | return packFloatx80(aSign, aExp + 0x3F80, ((uint64_t)aSig) << 40); |
| 1696 | |
| 1697 | } |
| 1698 | #endif // end of addition for Previous |
| 1699 | |
| 1700 | /*---------------------------------------------------------------------------- |
no test coverage detected