mirror of
https://git.proxmox.com/git/qemu
synced 2025-08-08 13:07:01 +00:00
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;
|
u.f = a1;
|
||||||
a = u.i;
|
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)
|
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;
|
floatx80u u;
|
||||||
u.f = a1;
|
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( floatx80, floatx80 STATUS_PARAM );
|
||||||
int floatx80_compare_quiet( floatx80, floatx80 STATUS_PARAM );
|
int floatx80_compare_quiet( floatx80, floatx80 STATUS_PARAM );
|
||||||
int floatx80_is_signaling_nan( floatx80 );
|
int floatx80_is_signaling_nan( floatx80 );
|
||||||
|
int floatx80_is_nan( floatx80 );
|
||||||
|
|
||||||
INLINE floatx80 floatx80_abs(floatx80 a)
|
INLINE floatx80 floatx80_abs(floatx80 a)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user