Commit 1b2ad2ec authored by aurel32's avatar aurel32

softfloat-native: fix *nan()

Fix float64_is_nan()
Fix floatx80_is_signaling_nan()
Add floatx80_is_nan()
Signed-off-by: default avatarAurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6049 c046a42c-6fe2-441c-8c8c-71466251a162
parent 3b27fc36
......@@ -431,7 +431,7 @@ int float64_is_nan( float64 a1 )
u.f = a1;
a = u.i;
return ( LIT64( 0xFFE0000000000000 ) < (bits64) ( a<<1 ) );
return ( LIT64( 0xFFF0000000000000 ) < (bits64) ( a<<1 ) );
}
......@@ -505,6 +505,19 @@ int floatx80_compare_quiet( floatx80 a, floatx80 b STATUS_PARAM )
}
}
int floatx80_is_signaling_nan( floatx80 a1)
{
floatx80u u;
uint64_t aLow;
u.f = a1;
aLow = u.i.low & ~ LIT64( 0x4000000000000000 );
return
( ( u.i.high & 0x7FFF ) == 0x7FFF )
&& (bits64) ( aLow<<1 )
&& ( u.i.low == aLow );
}
int floatx80_is_nan( floatx80 a1 )
{
floatx80u u;
u.f = a1;
......
......@@ -425,6 +425,7 @@ INLINE int floatx80_unordered( floatx80 a, floatx80 b STATUS_PARAM)
int floatx80_compare( floatx80, floatx80 STATUS_PARAM );
int floatx80_compare_quiet( floatx80, floatx80 STATUS_PARAM );
int floatx80_is_signaling_nan( floatx80 );
int floatx80_is_nan( floatx80 );
INLINE floatx80 floatx80_abs(floatx80 a)
{
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment