mirror of https://gitee.com/openkylin/qemu.git
softfloat-native: fix *nan()
Fix float64_is_nan() Fix floatx80_is_signaling_nan() Add floatx80_is_nan() Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6049 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
3b27fc36e3
commit
1b2ad2ec7a
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue