From 6f8b934ce70b513f5765a72167b8b951130c6be0 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 5 Apr 2001 21:02:13 +0000 Subject: [PATCH] * fixed fpu inline functions typeconvs --- compiler/ninl.pas | 47 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/compiler/ninl.pas b/compiler/ninl.pas index ceec14ddae..ecf7a99c8a 100644 --- a/compiler/ninl.pas +++ b/compiler/ninl.pas @@ -872,7 +872,11 @@ implementation if left.nodetype in [ordconstn,realconstn] then setconstrealvalue(cos(getconstrealvalue)) else - resulttype:=s80floattype; + begin + set_varstate(left,true); + inserttypeconv(left,s80floattype); + resulttype:=s80floattype; + end; end; in_sin_extended : @@ -880,7 +884,11 @@ implementation if left.nodetype in [ordconstn,realconstn] then setconstrealvalue(sin(getconstrealvalue)) else - resulttype:=s80floattype; + begin + set_varstate(left,true); + inserttypeconv(left,s80floattype); + resulttype:=s80floattype; + end; end; in_arctan_extended : @@ -888,7 +896,11 @@ implementation if left.nodetype in [ordconstn,realconstn] then setconstrealvalue(arctan(getconstrealvalue)) else - resulttype:=s80floattype; + begin + set_varstate(left,true); + inserttypeconv(left,s80floattype); + resulttype:=s80floattype; + end; end; in_abs_extended : @@ -896,7 +908,11 @@ implementation if left.nodetype in [ordconstn,realconstn] then setconstrealvalue(abs(getconstrealvalue)) else - resulttype:=s80floattype; + begin + set_varstate(left,true); + inserttypeconv(left,s80floattype); + resulttype:=s80floattype; + end; end; in_sqr_extended : @@ -904,7 +920,11 @@ implementation if left.nodetype in [ordconstn,realconstn] then setconstrealvalue(sqr(getconstrealvalue)) else - resulttype:=s80floattype; + begin + set_varstate(left,true); + inserttypeconv(left,s80floattype); + resulttype:=s80floattype; + end; end; in_sqrt_extended : @@ -921,7 +941,11 @@ implementation setconstrealvalue(sqrt(vr)); end else - resulttype:=s80floattype; + begin + set_varstate(left,true); + inserttypeconv(left,s80floattype); + resulttype:=s80floattype; + end; end; in_ln_extended : @@ -939,11 +963,9 @@ implementation end else begin - resulttype:=s80floattype; set_varstate(left,true); - if (left.resulttype.def^.deftype<>floatdef) or - (pfloatdef(left.resulttype.def)^.typ<>s80real) then - inserttypeconv(left,s80floattype); + inserttypeconv(left,s80floattype); + resulttype:=s80floattype; end; end; @@ -1699,7 +1721,10 @@ begin end. { $Log$ - Revision 1.34 2001-04-04 22:42:40 peter + Revision 1.35 2001-04-05 21:02:13 peter + * fixed fpu inline functions typeconvs + + Revision 1.34 2001/04/04 22:42:40 peter * move constant folding into det_resulttype Revision 1.33 2001/04/04 21:30:43 florian