git-svn-id: trunk@4784 -
@@ -368,20 +368,34 @@ interface
procedure tppcaddnode.second_addfloat;
var
op : TAsmOp;
- cmpop : boolean;
+ cmpop,
+ singleprec : boolean;
begin
pass_left_and_right;
cmpop:=false;
+ singleprec:=tfloatdef(left.resulttype.def).typ=s32real;
case nodetype of
addn :
- op:=A_FADD;
+ if singleprec then
+ op:=A_FADDS
+ else
+ op:=A_FADD;
muln :
+ op:=A_FMULS
op:=A_FMUL;
subn :
- op:=A_FSUB;
+ op:=A_FSUBS
+ op:=A_FSUB;
slashn :
- op:=A_FDIV;
+ op:=A_FDIVS
+ op:=A_FDIV;
ltn,lten,gtn,gten,
equaln,unequaln :