mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 10:49:09 +02:00
* use single precision fpu ops in case of single precision operands
git-svn-id: trunk@4784 -
This commit is contained in:
parent
564f36f51e
commit
e9c5049275
@ -368,20 +368,34 @@ interface
|
|||||||
procedure tppcaddnode.second_addfloat;
|
procedure tppcaddnode.second_addfloat;
|
||||||
var
|
var
|
||||||
op : TAsmOp;
|
op : TAsmOp;
|
||||||
cmpop : boolean;
|
cmpop,
|
||||||
|
singleprec : boolean;
|
||||||
begin
|
begin
|
||||||
pass_left_and_right;
|
pass_left_and_right;
|
||||||
|
|
||||||
cmpop:=false;
|
cmpop:=false;
|
||||||
|
singleprec:=tfloatdef(left.resulttype.def).typ=s32real;
|
||||||
case nodetype of
|
case nodetype of
|
||||||
addn :
|
addn :
|
||||||
op:=A_FADD;
|
if singleprec then
|
||||||
|
op:=A_FADDS
|
||||||
|
else
|
||||||
|
op:=A_FADD;
|
||||||
muln :
|
muln :
|
||||||
|
if singleprec then
|
||||||
|
op:=A_FMULS
|
||||||
|
else
|
||||||
op:=A_FMUL;
|
op:=A_FMUL;
|
||||||
subn :
|
subn :
|
||||||
op:=A_FSUB;
|
if singleprec then
|
||||||
|
op:=A_FSUBS
|
||||||
|
else
|
||||||
|
op:=A_FSUB;
|
||||||
slashn :
|
slashn :
|
||||||
op:=A_FDIV;
|
if singleprec then
|
||||||
|
op:=A_FDIVS
|
||||||
|
else
|
||||||
|
op:=A_FDIV;
|
||||||
ltn,lten,gtn,gten,
|
ltn,lten,gtn,gten,
|
||||||
equaln,unequaln :
|
equaln,unequaln :
|
||||||
begin
|
begin
|
||||||
|
Loading…
Reference in New Issue
Block a user