* fix bootstrapping on aarch64-linux with 3.2.x

git-svn-id: trunk@49264 -
This commit is contained in:
florian 2021-04-25 19:24:18 +00:00
parent f261146b6f
commit 822b460096

View File

@ -51,27 +51,6 @@
{$endif FPC_SYSTEM_HAS_SQRT}
{$ifndef FPC_SYSTEM_HAS_INT}
{$define FPC_SYSTEM_HAS_INT}
function fpc_int_real(d : ValReal) : ValReal;compilerproc;
begin
{ Function is handled internal in the compiler }
runerror(207);
result:=0;
end;
{$endif FPC_SYSTEM_HAS_INT}
{$ifndef FPC_SYSTEM_HAS_TRUNC}
{$define FPC_SYSTEM_HAS_TRUNC}
function fpc_trunc_real(d : ValReal) : int64;compilerproc;
begin
{ Function is handled internal in the compiler }
runerror(207);
result:=0;
end;
{$endif FPC_SYSTEM_HAS_TRUNC}
{$ifndef VER3_2}
{$ifndef FPC_SYSTEM_HAS_FRAC}
{$define FPC_SYSTEM_HAS_FRAC}
@ -84,14 +63,35 @@
{$endif FPC_SYSTEM_HAS_FRAC}
{$endif VER3_2}
{$ifndef FPC_SYSTEM_HAS_INT}
{$define FPC_SYSTEM_HAS_INT}
function fpc_int_real(d : ValReal) : ValReal;assembler;nostackframe;compilerproc;
asm
// { round as floating point towards zero }
frintz d0,d0
end;
{$endif FPC_SYSTEM_HAS_INT}
{$ifndef FPC_SYSTEM_HAS_TRUNC}
{$define FPC_SYSTEM_HAS_TRUNC}
function fpc_trunc_real(d : ValReal) : int64;assembler;nostackframe;compilerproc;
asm
// { round to signed integer towards zero }
fcvtzs x0,d0
end;
{$endif FPC_SYSTEM_HAS_TRUNC}
{$ifndef FPC_SYSTEM_HAS_ROUND}
{$define FPC_SYSTEM_HAS_ROUND}
function fpc_round_real(d : ValReal) : int64;compilerproc;
begin
{ Function is handled internal in the compiler }
runerror(207);
result:=0;
function fpc_round_real(d : ValReal) : int64;assembler;nostackframe;compilerproc;
asm
// { round as floating point using current rounding mode }
frintx d0,d0
// { convert to signed integer rounding towards zero (there's no "round to
// integer using current rounding mode") }
fcvtzs x0,d0
end;
{$endif FPC_SYSTEM_HAS_ROUND}