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

Function float32_to_floatx80

src/softfloat/softfloat.cpp:1655–1675  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1653*----------------------------------------------------------------------------*/
1654
1655floatx80 float32_to_floatx80(float32 a, float_status *status)
1656{
1657 flag aSign;
1658 int aExp;
1659 uint32_t aSig;
1660
1661 aSig = extractFloat32Frac( a );
1662 aExp = extractFloat32Exp( a );
1663 aSign = extractFloat32Sign( a );
1664 if ( aExp == 0xFF ) {
1665 if ( aSig ) return commonNaNToFloatx80( float32ToCommonNaN( a, status ), status );
1666 return packFloatx80( aSign, 0x7FFF, floatx80_default_infinity_low );
1667 }
1668 if ( aExp == 0 ) {
1669 if ( aSig == 0 ) return packFloatx80( aSign, 0, 0 );
1670 normalizeFloat32Subnormal( aSig, &aExp, &aSig );
1671 }
1672 aSig |= 0x00800000;
1673 return packFloatx80( aSign, aExp + 0x3F80, ( (uint64_t) aSig )<<40 );
1674
1675}
1676
1677#ifdef SOFTFLOAT_68K // 31-12-2016: Added for Previous
1678floatx80 float32_to_floatx80_allowunnormal(float32 a , float_status *status)

Callers 14

checkvaltype2Function · 0.85
floatx80_cosFunction · 0.85
floatx80_coshFunction · 0.85
floatx80_etoxFunction · 0.85
floatx80_etoxm1Function · 0.85
floatx80_lognFunction · 0.85
floatx80_lognp1Function · 0.85
floatx80_sinFunction · 0.85
floatx80_sincosFunction · 0.85
floatx80_sinhFunction · 0.85
floatx80_tanFunction · 0.85
floatx80_tanhFunction · 0.85

Calls 7

extractFloat32FracFunction · 0.85
extractFloat32ExpFunction · 0.85
extractFloat32SignFunction · 0.85
commonNaNToFloatx80Function · 0.85
float32ToCommonNaNFunction · 0.85
packFloatx80Function · 0.85

Tested by

no test coverage detected