mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-26 18:43:42 +02:00
123 lines
3.3 KiB
PHP
123 lines
3.3 KiB
PHP
{
|
|
|
|
This file is part of the Free Pascal run time library.
|
|
Copyright (c) 2003 by the Free Pascal development team.
|
|
|
|
Implementation of mathematical Routines (for extended type)
|
|
|
|
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.
|
|
|
|
**********************************************************************}
|
|
|
|
{$asmmode intel}
|
|
{****************************************************************************
|
|
EXTENDED data type routines
|
|
****************************************************************************}
|
|
|
|
{$define FPC_SYSTEM_HAS_PI}
|
|
function fpc_pi_real : ValReal;compilerproc;
|
|
begin
|
|
{ Function is handled internal in the compiler }
|
|
runerror(207);
|
|
result:=0;
|
|
end;
|
|
{$define FPC_SYSTEM_HAS_ABS}
|
|
function fpc_abs_real(d : ValReal) : ValReal;compilerproc;
|
|
begin
|
|
{ Function is handled internal in the compiler }
|
|
runerror(207);
|
|
result:=0;
|
|
end;
|
|
{$define FPC_SYSTEM_HAS_SQR}
|
|
function fpc_sqr_real(d : ValReal) : ValReal;compilerproc;
|
|
begin
|
|
{ Function is handled internal in the compiler }
|
|
runerror(207);
|
|
result:=0;
|
|
end;
|
|
{$define FPC_SYSTEM_HAS_SQRT}
|
|
function fpc_sqrt_real(d : ValReal) : ValReal;compilerproc;
|
|
begin
|
|
{ Function is handled internal in the compiler }
|
|
runerror(207);
|
|
result:=0;
|
|
end;
|
|
{$define FPC_SYSTEM_HAS_ARCTAN}
|
|
function fpc_arctan_real(d : ValReal) : ValReal;compilerproc;
|
|
begin
|
|
{ Function is handled internal in the compiler }
|
|
runerror(207);
|
|
result:=0;
|
|
end;
|
|
{$define FPC_SYSTEM_HAS_LN}
|
|
function fpc_ln_real(d : ValReal) : ValReal;compilerproc;
|
|
begin
|
|
{ Function is handled internal in the compiler }
|
|
runerror(207);
|
|
result:=0;
|
|
end;
|
|
{$define FPC_SYSTEM_HAS_SIN}
|
|
function fpc_sin_real(d : ValReal) : ValReal;compilerproc;
|
|
begin
|
|
{ Function is handled internal in the compiler }
|
|
runerror(207);
|
|
result:=0;
|
|
end;
|
|
{$define FPC_SYSTEM_HAS_COS}
|
|
function fpc_cos_real(d : ValReal) : ValReal;compilerproc;
|
|
begin
|
|
{ Function is handled internal in the compiler }
|
|
runerror(207);
|
|
result:=0;
|
|
end;
|
|
|
|
{$define FPC_SYSTEM_HAS_EXP}
|
|
function fpc_exp_real(d : ValReal) : ValReal;assembler;compilerproc;
|
|
var
|
|
cw1,cw2: word;
|
|
asm
|
|
// comes from DJ GPP
|
|
fld tbyte[d]
|
|
fldl2e
|
|
fmulp st1, st
|
|
fstcw CW1
|
|
fstcw CW2
|
|
fwait
|
|
and CW2, $f3ff
|
|
orw CW2, $0400
|
|
fldcw CW2
|
|
fld st0
|
|
frndint
|
|
fldcw CW1
|
|
fxch st1
|
|
fsub st, st1
|
|
f2xm1
|
|
fld1
|
|
faddp st1, st
|
|
fscale
|
|
fstp st1
|
|
end;
|
|
|
|
{$define FPC_SYSTEM_HAS_INT}
|
|
function fpc_int_real(d : ValReal) : ValReal;assembler;compilerproc;
|
|
asm
|
|
sub sp, 2
|
|
fnstcw [bp-2]
|
|
fwait
|
|
mov cx, word [bp-2]
|
|
or word [bp-2], $0f00
|
|
fldcw [bp-2]
|
|
fwait
|
|
fld tbyte [d]
|
|
frndint
|
|
fwait
|
|
mov word [bp-2], cx
|
|
fldcw [bp-2]
|
|
end;
|
|
|