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

Function float64_to_floatx80_allowunnormal

src/softfloat/softfloat.cpp:1731–1751  ·  view source on GitHub ↗

31-12-2016: Added for Previous

Source from the content-addressed store, hash-verified

1729
1730#ifdef SOFTFLOAT_68K // 31-12-2016: Added for Previous
1731floatx80 float64_to_floatx80_allowunnormal( float64 a, float_status *status )
1732{
1733 flag aSign;
1734 int16_t aExp;
1735 uint64_t aSig;
1736
1737 aSig = extractFloat64Frac( a );
1738 aExp = extractFloat64Exp( a );
1739 aSign = extractFloat64Sign( a );
1740 if ( aExp == 0x7FF ) {
1741 return packFloatx80( aSign, 0x7FFF, aSig<<11 );
1742 }
1743 if ( aExp == 0 ) {
1744 if ( aSig == 0 ) return packFloatx80( aSign, 0, 0 );
1745 return packFloatx80( aSign, 0x3C01, aSig<<11 );
1746 }
1747 return
1748 packFloatx80(
1749 aSign, aExp + 0x3C00, ( aSig | LIT64( 0x0010000000000000 ) )<<11 );
1750
1751}
1752#endif // end of addition for Previous
1753
1754/*----------------------------------------------------------------------------

Callers 1

to_doubleFunction · 0.85

Calls 4

extractFloat64FracFunction · 0.85
extractFloat64ExpFunction · 0.85
extractFloat64SignFunction · 0.85
packFloatx80Function · 0.85

Tested by

no test coverage detected