mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 08:19:34 +02:00
109 lines
3.2 KiB
PHP
109 lines
3.2 KiB
PHP
{
|
|
$Id$
|
|
This file is part of the Free Pascal run time library.
|
|
Copyright (c) 1999-2000 by Florian Klaempfl,
|
|
member of the Free Pascal development team
|
|
|
|
See the file COPYING.FPC, included in this distribution,
|
|
for details about the copyright.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
**********************************************************************}
|
|
|
|
{ i386 FPU Controlword }
|
|
|
|
{$ifdef cpui386}
|
|
const
|
|
Default8087CW : word = $1332;
|
|
|
|
procedure Set8087CW(cw:word);
|
|
function Get8087CW:word;
|
|
{$endif cpui386}
|
|
|
|
{$ifdef cpux86_64}
|
|
const
|
|
Default8087CW : word = $1332;
|
|
|
|
procedure Set8087CW(cw:word);
|
|
function Get8087CW:word;
|
|
{$endif cpux86_64}
|
|
|
|
{ declarations of the math routines }
|
|
|
|
function abs(d : extended) : extended;
|
|
function arctan(d : extended) : extended;
|
|
function cos(d : extended) : extended;
|
|
function exp(d : extended) : extended;
|
|
function frac(d : extended) : extended;
|
|
function int(d : extended) : extended;
|
|
function ln(d : extended) : extended;
|
|
function pi : extended;
|
|
function round(d : extended) : int64;
|
|
function sin(d : extended) : extended;
|
|
function sqr(d : extended) : extended;
|
|
function sqrt(d : extended) : extended;
|
|
function trunc(d : extended) : int64;
|
|
function power(bas,expo : extended) : extended;
|
|
function power(bas,expo : int64) : int64;
|
|
|
|
{$ifdef FPC_CURRENCY_IS_INT64}
|
|
function trunc(c : currency) : int64;
|
|
function trunc(c : comp) : int64;
|
|
function round(c : currency) : int64;
|
|
function round(c : comp) : int64;
|
|
{$endif FPC_CURRENCY_IS_INT64}
|
|
|
|
|
|
type
|
|
real48 = array[0..5] of byte;
|
|
|
|
{$ifdef SUPPORT_DOUBLE}
|
|
function Real2Double(r : real48) : double;
|
|
operator := (b:real48) d:double;
|
|
{$endif}
|
|
{$ifdef SUPPORT_EXTENDED}
|
|
operator := (b:real48) e:extended;
|
|
{$endif SUPPORT_EXTENDED}
|
|
|
|
{
|
|
$Log$
|
|
Revision 1.15 2004-02-08 15:33:50 florian
|
|
* linking problems fixed
|
|
+ abi tag added
|
|
|
|
Revision 1.14 2004/01/02 17:19:04 jonas
|
|
* if currency = int64, FPC_CURRENCY_IS_INT64 is defined
|
|
+ round and trunc for currency and comp if FPC_CURRENCY_IS_INT64 is
|
|
defined
|
|
* if currency = orddef, prefer currency -> int64/qword conversion over
|
|
currency -> float conversions
|
|
* optimized currency/currency if currency = orddef
|
|
* TODO: write FPC_DIV_CURRENCY and FPC_MUL_CURRENCY routines to prevent
|
|
precision loss if currency=int64 and bestreal = double
|
|
|
|
Revision 1.13 2003/01/21 19:36:36 mazen
|
|
- fpc_int64_to_double removed as not supported by most cpu targets
|
|
|
|
Revision 1.12 2003/01/20 22:21:36 mazen
|
|
* many stuff related to RTL fixed
|
|
|
|
Revision 1.11 2003/01/15 00:40:18 peter
|
|
* power returns int64
|
|
|
|
Revision 1.10 2003/01/03 20:34:02 peter
|
|
* i386 fpu controlword functions added
|
|
|
|
Revision 1.9 2002/10/06 21:26:18 peter
|
|
* round returns int64
|
|
|
|
Revision 1.8 2002/09/07 15:07:45 peter
|
|
* old logs removed and tabs fixed
|
|
|
|
Revision 1.7 2002/07/26 22:46:06 florian
|
|
* interface of system unit for Linux/PowerPC compiles
|
|
|
|
}
|