+ floatdef support for array of const

This commit is contained in:
peter 1998-09-28 11:07:39 +00:00
parent b17ea95bdd
commit 040a2cf89f
2 changed files with 24 additions and 5 deletions

View File

@ -608,9 +608,22 @@ implementation
end;
procedure emit_lea_loc_ref(const t:tlocation;const ref:treference);
procedure emit_lea_tree_ref(const p:ptree;const ref:treference);
var
href : treference;
t : tlocation;
begin
t:=p^.location;
case t.loc of
LOC_FPU : begin
reset_reference(href);
gettempofsizereference(10,href);
floatstore(pfloatdef(p^.resulttype)^.typ,href);
exprasmlist^.concat(new(pai386,op_ref_reg(A_LEA,S_L,
newreference(href),R_EDI)));
exprasmlist^.concat(new(pai386,op_reg_ref(A_MOV,S_L,
R_EDI,newreference(ref))));
end;
LOC_MEM,
LOC_REFERENCE : begin
if t.reference.isintvalue then
@ -697,7 +710,7 @@ implementation
inc(href.offset,4);
{ write changing field update href to the next element }
if vaddr then
emit_lea_loc_ref(hp^.left^.location,href)
emit_lea_tree_ref(hp^.left,href)
else
emit_mov_loc_ref(hp^.left^.location,href);
inc(href.offset,4);
@ -710,7 +723,10 @@ implementation
end.
{
$Log$
Revision 1.20 1998-09-24 14:26:03 peter
Revision 1.21 1998-09-28 11:07:39 peter
+ floatdef support for array of const
Revision 1.20 1998/09/24 14:26:03 peter
* updated for new tvarrec
Revision 1.19 1998/09/23 17:49:59 peter

View File

@ -349,7 +349,7 @@ implementation
firstpass(hp^.left);
case hp^.left^.resulttype^.deftype of
floatdef : begin
gentypeconvnode(hp^.left,s80floatdef);
hp^.left:=gentypeconvnode(hp^.left,s80floatdef);
firstpass(hp^.left);
end;
end;
@ -399,7 +399,10 @@ implementation
end.
{
$Log$
Revision 1.3 1998-09-27 10:16:27 florian
Revision 1.4 1998-09-28 11:07:40 peter
+ floatdef support for array of const
Revision 1.3 1998/09/27 10:16:27 florian
* type casts pchar<->ansistring fixed
* ansistring[..] calls does now an unique call