* readln(r); works now, if r is a fpu register variable

This commit is contained in:
florian 2000-04-02 17:47:47 +00:00
parent 3f9126f999
commit f71ddb9e2f

View File

@ -80,6 +80,9 @@ implementation
hreg : tregister;
hregister : tregister;
oldregisterdef : boolean;
op : tasmop;
opsize : topsize;
begin
{ Get the accumulator first so it can't be used in the dest }
if (dest^.resulttype^.deftype=orddef) and
@ -92,7 +95,13 @@ implementation
{ store the value }
Case dest^.resulttype^.deftype of
floatdef:
floatstore(PFloatDef(dest^.resulttype)^.typ,dest^.location.reference);
if dest^.location.loc=LOC_CFPUREGISTER then
begin
floatstoreops(pfloatdef(dest^.resulttype)^.typ,op,opsize);
emit_reg(op,opsize,correct_fpuregister(dest^.location.register,fpuvaroffset+1));
end
else
floatstore(PFloatDef(dest^.resulttype)^.typ,dest^.location.reference);
orddef:
begin
if is_64bitint(dest^.resulttype) then
@ -1511,7 +1520,10 @@ implementation
end.
{
$Log$
Revision 1.96 2000-03-31 22:56:46 pierre
Revision 1.97 2000-04-02 17:47:47 florian
* readln(r); works now, if r is a fpu register variable
Revision 1.96 2000/03/31 22:56:46 pierre
* fix the handling of value parameters in cdecl function
Revision 1.95 2000/03/21 16:24:43 florian