|
@@ -138,18 +138,20 @@ procedure float_raise(i: TFPUExceptionMask);
|
|
{$if defined(SUPPORT_EXTENDED) or defined(FPC_SOFT_FPUX80)}
|
|
{$if defined(SUPPORT_EXTENDED) or defined(FPC_SOFT_FPUX80)}
|
|
TExtended80Rec = packed record
|
|
TExtended80Rec = packed record
|
|
private
|
|
private
|
|
|
|
+ const
|
|
|
|
+ Bias = $3FFF;
|
|
function GetExp : QWord;
|
|
function GetExp : QWord;
|
|
procedure SetExp(e : QWord);
|
|
procedure SetExp(e : QWord);
|
|
function GetSign : Boolean;
|
|
function GetSign : Boolean;
|
|
procedure SetSign(s : Boolean);
|
|
procedure SetSign(s : Boolean);
|
|
public
|
|
public
|
|
- function Mantissa : QWord;
|
|
|
|
|
|
+ function Mantissa(IncludeHiddenBit: Boolean = False) : QWord; // unused parameter inserted to have consistent function signature
|
|
function Fraction : Extended;
|
|
function Fraction : Extended;
|
|
function Exponent : Longint;
|
|
function Exponent : Longint;
|
|
property Sign : Boolean read GetSign write SetSign;
|
|
property Sign : Boolean read GetSign write SetSign;
|
|
property Exp : QWord read GetExp write SetExp;
|
|
property Exp : QWord read GetExp write SetExp;
|
|
function SpecialType : TFloatSpecial;
|
|
function SpecialType : TFloatSpecial;
|
|
- // procedure BuildUp(const _Sign : Boolean; const _Mantissa : QWord; const Exponent : Longint);
|
|
|
|
|
|
+ procedure BuildUp(const _Sign : Boolean; const _Mantissa : QWord; const _Exponent : Longint);
|
|
case byte of
|
|
case byte of
|
|
0: (Bytes : array[0..9] of Byte);
|
|
0: (Bytes : array[0..9] of Byte);
|
|
1: (Words : array[0..4] of Word);
|
|
1: (Words : array[0..4] of Word);
|
|
@@ -169,6 +171,8 @@ procedure float_raise(i: TFPUExceptionMask);
|
|
{$ifdef SUPPORT_DOUBLE}
|
|
{$ifdef SUPPORT_DOUBLE}
|
|
TDoubleRec = packed record
|
|
TDoubleRec = packed record
|
|
private
|
|
private
|
|
|
|
+ const
|
|
|
|
+ Bias = $3FF;
|
|
function GetExp : QWord;
|
|
function GetExp : QWord;
|
|
procedure SetExp(e : QWord);
|
|
procedure SetExp(e : QWord);
|
|
function GetSign : Boolean;
|
|
function GetSign : Boolean;
|
|
@@ -176,13 +180,14 @@ procedure float_raise(i: TFPUExceptionMask);
|
|
function GetFrac : QWord;
|
|
function GetFrac : QWord;
|
|
procedure SetFrac(e : QWord);
|
|
procedure SetFrac(e : QWord);
|
|
public
|
|
public
|
|
- function Mantissa : QWord;
|
|
|
|
|
|
+ function Mantissa(IncludeHiddenBit: Boolean = False) : QWord;
|
|
function Fraction : ValReal;
|
|
function Fraction : ValReal;
|
|
function Exponent : Longint;
|
|
function Exponent : Longint;
|
|
property Sign : Boolean read GetSign write SetSign;
|
|
property Sign : Boolean read GetSign write SetSign;
|
|
property Exp : QWord read GetExp write SetExp;
|
|
property Exp : QWord read GetExp write SetExp;
|
|
property Frac : QWord read Getfrac write SetFrac;
|
|
property Frac : QWord read Getfrac write SetFrac;
|
|
function SpecialType : TFloatSpecial;
|
|
function SpecialType : TFloatSpecial;
|
|
|
|
+ procedure BuildUp(const _Sign : Boolean; const _Mantissa : QWord; const _Exponent : Longint);
|
|
case byte of
|
|
case byte of
|
|
0: (Bytes : array[0..7] of Byte);
|
|
0: (Bytes : array[0..7] of Byte);
|
|
1: (Words : array[0..3] of Word);
|
|
1: (Words : array[0..3] of Word);
|
|
@@ -194,6 +199,8 @@ procedure float_raise(i: TFPUExceptionMask);
|
|
{$ifdef SUPPORT_SINGLE}
|
|
{$ifdef SUPPORT_SINGLE}
|
|
TSingleRec = packed record
|
|
TSingleRec = packed record
|
|
private
|
|
private
|
|
|
|
+ const
|
|
|
|
+ Bias = $7F;
|
|
function GetExp : QWord;
|
|
function GetExp : QWord;
|
|
procedure SetExp(e : QWord);
|
|
procedure SetExp(e : QWord);
|
|
function GetSign : Boolean;
|
|
function GetSign : Boolean;
|
|
@@ -201,13 +208,14 @@ procedure float_raise(i: TFPUExceptionMask);
|
|
function GetFrac : QWord;
|
|
function GetFrac : QWord;
|
|
procedure SetFrac(e : QWord);
|
|
procedure SetFrac(e : QWord);
|
|
public
|
|
public
|
|
- function Mantissa : QWord;
|
|
|
|
|
|
+ function Mantissa(IncludeHiddenBit: Boolean = False) : QWord;
|
|
function Fraction : ValReal;
|
|
function Fraction : ValReal;
|
|
function Exponent : Longint;
|
|
function Exponent : Longint;
|
|
property Sign : Boolean read GetSign write SetSign;
|
|
property Sign : Boolean read GetSign write SetSign;
|
|
property Exp : QWord read GetExp write SetExp;
|
|
property Exp : QWord read GetExp write SetExp;
|
|
property Frac : QWord read Getfrac write SetFrac;
|
|
property Frac : QWord read Getfrac write SetFrac;
|
|
function SpecialType : TFloatSpecial;
|
|
function SpecialType : TFloatSpecial;
|
|
|
|
+ procedure BuildUp(const _Sign : Boolean; const _Mantissa : QWord; const _Exponent : Longint);
|
|
case byte of
|
|
case byte of
|
|
0: (Bytes : array[0..3] of Byte);
|
|
0: (Bytes : array[0..3] of Byte);
|
|
1: (Words : array[0..1] of Word);
|
|
1: (Words : array[0..1] of Word);
|