mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-08 11:48:04 +02:00
* "improved" behavior of real2str for arm, still needs fixing
This commit is contained in:
parent
a50e082468
commit
72a8ac8dd7
@ -262,11 +262,20 @@ begin
|
||||
((TSplitExtended(d).cards[1] and $7fffffff) = 0);
|
||||
{$else SUPPORT_EXTENDED}
|
||||
{$ifdef SUPPORT_DOUBLE}
|
||||
{$ifdef CPUARM}
|
||||
{ double, format (MSB): 1 Sign bit, 11 bit exponent, 52 bit mantissa }
|
||||
{ high and low dword are swapped when using the arm fpa }
|
||||
sign := ((TSplitDouble(d).cards[0] shr 20) and $800) <> 0;
|
||||
expMaximal := ((TSplitDouble(d).cards[0] shr 20) and $7ff) = 2047;
|
||||
fraczero:= (TSplitDouble(d).cards[0] and $fffff = 0) and
|
||||
(TSplitDouble(d).cards[1] = 0);
|
||||
{$else CPUARM}
|
||||
{ double, format (MSB): 1 Sign bit, 11 bit exponent, 52 bit mantissa }
|
||||
sign := ((TSplitDouble(d).cards[1] shr 20) and $800) <> 0;
|
||||
expMaximal := ((TSplitDouble(d).cards[1] shr 20) and $7ff) = 2047;
|
||||
fraczero := (TSplitDouble(d).cards[1] and $fffff = 0) and
|
||||
(TSplitDouble(d).cards[0] = 0);
|
||||
{$endif CPUARM}
|
||||
{$else SUPPORT_DOUBLE}
|
||||
{$ifdef SUPPORT_SINGLE}
|
||||
{ single, format (MSB): 1 Sign bit, 8 bit exponent, 23 bit mantissa }
|
||||
@ -283,19 +292,11 @@ begin
|
||||
{$error sign/NaN/Inf not yet supported for big endian CPU's in str_real}
|
||||
{$else SUPPORT_EXTENDED}
|
||||
{$ifdef SUPPORT_DOUBLE}
|
||||
{$ifdef CPUARM}
|
||||
{ double, format (MSB): 1 Sign bit, 11 bit exponent, 52 bit mantissa }
|
||||
sign := ((TSplitDouble(d).cards[1] shr 20) and $800) <> 0;
|
||||
expMaximal := ((TSplitDouble(d).cards[1] shr 20) and $7ff) = 2047;
|
||||
fraczero := (TSplitDouble(d).cards[1] and $fffff = 0) and
|
||||
(TSplitDouble(d).cards[0] = 0);
|
||||
{$else CPUARM}
|
||||
{ double, format (MSB): 1 Sign bit, 11 bit exponent, 52 bit mantissa }
|
||||
sign := ((TSplitDouble(d).cards[0] shr 20) and $800) <> 0;
|
||||
expMaximal := ((TSplitDouble(d).cards[0] shr 20) and $7ff) = 2047;
|
||||
fraczero:= (TSplitDouble(d).cards[0] and $fffff = 0) and
|
||||
(TSplitDouble(d).cards[1] = 0);
|
||||
{$endif CPUARM}
|
||||
{$else SUPPORT_DOUBLE}
|
||||
{$ifdef SUPPORT_SINGLE}
|
||||
{ single, format (MSB): 1 Sign bit, 8 bit exponent, 23 bit mantissa }
|
||||
@ -460,7 +461,10 @@ end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.14 2004-03-13 18:33:52 florian
|
||||
Revision 1.15 2004-03-13 18:47:57 florian
|
||||
* "improved" behavior of real2str for arm, still needs fixing
|
||||
|
||||
Revision 1.14 2004/03/13 18:33:52 florian
|
||||
* fixed some arm related real stuff
|
||||
|
||||
Revision 1.13 2003/12/29 19:19:21 jonas
|
||||
|
Loading…
Reference in New Issue
Block a user