* Mantis #17273: don't generate x87 instructions on win64 target.

git-svn-id: trunk@25995 -
This commit is contained in:
sergei 2013-11-08 13:31:07 +00:00
parent d83fbd7602
commit 2b1e5f7014
2 changed files with 32 additions and 9 deletions

View File

@ -91,15 +91,25 @@ implementation
function tx86inlinenode.first_pi : tnode;
begin
expectloc:=LOC_FPUREGISTER;
first_pi := nil;
if (tfloatdef(pbestrealtype^).floattype=s80real) then
begin
expectloc:=LOC_FPUREGISTER;
first_pi := nil;
end
else
result:=inherited;
end;
function tx86inlinenode.first_arctan_real : tnode;
begin
expectloc:=LOC_FPUREGISTER;
first_arctan_real := nil;
if (tfloatdef(pbestrealtype^).floattype=s80real) then
begin
expectloc:=LOC_FPUREGISTER;
first_arctan_real := nil;
end
else
result:=inherited;
end;
function tx86inlinenode.first_abs_real : tnode;
@ -113,20 +123,31 @@ implementation
function tx86inlinenode.first_sqr_real : tnode;
begin
expectloc:=LOC_FPUREGISTER;
if use_vectorfpu(resultdef) then
expectloc:=LOC_MMREGISTER
else
expectloc:=LOC_FPUREGISTER;
first_sqr_real := nil;
end;
function tx86inlinenode.first_sqrt_real : tnode;
begin
expectloc:=LOC_FPUREGISTER;
if use_vectorfpu(resultdef) then
expectloc:=LOC_MMREGISTER
else
expectloc:=LOC_FPUREGISTER;
first_sqrt_real := nil;
end;
function tx86inlinenode.first_ln_real : tnode;
begin
expectloc:=LOC_FPUREGISTER;
first_ln_real := nil;
if (tfloatdef(pbestrealtype^).floattype=s80real) then
begin
expectloc:=LOC_FPUREGISTER;
first_ln_real := nil;
end
else
result:=inherited;
end;
function tx86inlinenode.first_cos_real : tnode;

View File

@ -102,6 +102,9 @@ const
result:=0;
end;
{$endif FPC_SYSTEM_HAS_SQRT}
{$ifdef FPC_HAS_TYPE_EXTENDED}
{$ifndef FPC_SYSTEM_HAS_ARCTAN}
{$define FPC_SYSTEM_HAS_ARCTAN}
function fpc_arctan_real(d : ValReal) : ValReal;compilerproc;
@ -139,7 +142,6 @@ const
end;
{$endif FPC_SYSTEM_HAS_COS}
{$ifdef FPC_HAS_TYPE_EXTENDED}
{$ifndef FPC_SYSTEM_HAS_EXP}
{$define FPC_SYSTEM_HAS_EXP}
function fpc_exp_real(d : ValReal) : ValReal;assembler;compilerproc;