MCPcopy Create free account
hub / github.com/BlitterStudio/amiberry / float32_to_floatx80_allowunnormal

Function float32_to_floatx80_allowunnormal

src/softfloat/softfloat.cpp:1678–1697  ·  view source on GitHub ↗

31-12-2016: Added for Previous

Source from the content-addressed store, hash-verified

1676
1677#ifdef SOFTFLOAT_68K // 31-12-2016: Added for Previous
1678floatx80 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/*----------------------------------------------------------------------------

Callers 1

to_singleFunction · 0.85

Calls 4

extractFloat32FracFunction · 0.85
extractFloat32ExpFunction · 0.85
extractFloat32SignFunction · 0.85
packFloatx80Function · 0.85

Tested by

no test coverage detected