mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-09 09:06:08 +02:00
* Softfloat: added some typecasts to prevent promotion to 64 bits where it is not intended.
git-svn-id: trunk@28308 -
This commit is contained in:
parent
96abd7f370
commit
bf51683e78
@ -3732,7 +3732,7 @@ Function float32_mul(a: float32rec; b: float32rec ) : float32rec; compilerproc;
|
|||||||
float32_mul.float32 := propagateFloat32NaN( a.float32, b.float32 );
|
float32_mul.float32 := propagateFloat32NaN( a.float32, b.float32 );
|
||||||
exit;
|
exit;
|
||||||
End;
|
End;
|
||||||
if ( ( bExp OR bSig ) = 0 ) then
|
if ( ( bits32(bExp) OR bSig ) = 0 ) then
|
||||||
Begin
|
Begin
|
||||||
float_raise( float_flag_invalid );
|
float_raise( float_flag_invalid );
|
||||||
float32_mul.float32 := float32_default_nan;
|
float32_mul.float32 := float32_default_nan;
|
||||||
@ -3748,7 +3748,7 @@ Function float32_mul(a: float32rec; b: float32rec ) : float32rec; compilerproc;
|
|||||||
float32_mul.float32 := propagateFloat32NaN( a.float32, b.float32 );
|
float32_mul.float32 := propagateFloat32NaN( a.float32, b.float32 );
|
||||||
exit;
|
exit;
|
||||||
End;
|
End;
|
||||||
if ( ( aExp OR aSig ) = 0 ) then
|
if ( ( bits32(aExp) OR aSig ) = 0 ) then
|
||||||
Begin
|
Begin
|
||||||
float_raise( float_flag_invalid );
|
float_raise( float_flag_invalid );
|
||||||
float32_mul.float32 := float32_default_nan;
|
float32_mul.float32 := float32_default_nan;
|
||||||
@ -3843,7 +3843,7 @@ Function float32_div(a: float32rec;b: float32rec ): float32rec; compilerproc;
|
|||||||
Begin
|
Begin
|
||||||
if ( bSig = 0 ) Then
|
if ( bSig = 0 ) Then
|
||||||
Begin
|
Begin
|
||||||
if ( ( aExp OR aSig ) = 0 ) then
|
if ( ( bits32(aExp) OR aSig ) = 0 ) then
|
||||||
Begin
|
Begin
|
||||||
float_raise( float_flag_invalid );
|
float_raise( float_flag_invalid );
|
||||||
float32_div.float32 := float32_default_nan;
|
float32_div.float32 := float32_default_nan;
|
||||||
@ -4041,7 +4041,7 @@ Begin
|
|||||||
End;
|
End;
|
||||||
if ( aSign <> 0) then
|
if ( aSign <> 0) then
|
||||||
Begin
|
Begin
|
||||||
if ( ( aExp OR aSig ) = 0 ) then
|
if ( ( bits32(aExp) OR aSig ) = 0 ) then
|
||||||
Begin
|
Begin
|
||||||
float32_sqrt := a;
|
float32_sqrt := a;
|
||||||
exit;
|
exit;
|
||||||
@ -4399,7 +4399,7 @@ Var
|
|||||||
Begin
|
Begin
|
||||||
if ( aExp < $3FF ) then
|
if ( aExp < $3FF ) then
|
||||||
Begin
|
Begin
|
||||||
if ( aExp OR aSig0 OR aSig1 )<>0 then
|
if ( bits32(aExp) OR aSig0 OR aSig1 )<>0 then
|
||||||
Begin
|
Begin
|
||||||
set_inexact_flag;
|
set_inexact_flag;
|
||||||
End;
|
End;
|
||||||
@ -5047,7 +5047,7 @@ Begin
|
|||||||
propagateFloat64NaN( a, b, result );
|
propagateFloat64NaN( a, b, result );
|
||||||
exit;
|
exit;
|
||||||
End;
|
End;
|
||||||
if ( ( bExp OR bSig0 OR bSig1 ) = 0 ) then goto invalid;
|
if ( ( bits32(bExp) OR bSig0 OR bSig1 ) = 0 ) then goto invalid;
|
||||||
packFloat64( zSign, $7FF, 0, 0, result );
|
packFloat64( zSign, $7FF, 0, 0, result );
|
||||||
exit;
|
exit;
|
||||||
End;
|
End;
|
||||||
@ -5162,7 +5162,7 @@ Begin
|
|||||||
Begin
|
Begin
|
||||||
if ( ( bSig0 OR bSig1 ) = 0 ) then
|
if ( ( bSig0 OR bSig1 ) = 0 ) then
|
||||||
Begin
|
Begin
|
||||||
if ( ( aExp OR aSig0 OR aSig1 ) = 0 ) then
|
if ( ( bits32(aExp) OR aSig0 OR aSig1 ) = 0 ) then
|
||||||
Begin
|
Begin
|
||||||
invalid:
|
invalid:
|
||||||
float_raise( float_flag_invalid );
|
float_raise( float_flag_invalid );
|
||||||
@ -5394,7 +5394,7 @@ Begin
|
|||||||
End;
|
End;
|
||||||
if ( aSign <> 0 ) then
|
if ( aSign <> 0 ) then
|
||||||
Begin
|
Begin
|
||||||
if ( ( aExp OR aSig0 OR aSig1 ) = 0 ) then
|
if ( ( bits32(aExp) OR aSig0 OR aSig1 ) = 0 ) then
|
||||||
Begin
|
Begin
|
||||||
result := a;
|
result := a;
|
||||||
exit;
|
exit;
|
||||||
|
Loading…
Reference in New Issue
Block a user