* use single precision fpu ops in case of single precision operands

git-svn-id: trunk@4784 -
This commit is contained in:
Jonas Maebe 2006-10-04 15:26:10 +00:00
parent 564f36f51e
commit e9c5049275

View File

@ -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