* fixed maybe_save that did not support a reference with only

a index register. It now also updates the location with the new
    base register only
This commit is contained in:
peter 2002-09-01 18:50:20 +00:00
parent 274624f2f6
commit 5a06f334b7

View File

@ -595,7 +595,18 @@ implementation
(l.reference.index<>R_NO)) then
begin
{ load address into a single base register }
cg.a_loadaddr_ref_reg(list,l.reference,l.reference.base);
if l.reference.base=R_NO then
begin
cg.a_loadaddr_ref_reg(list,l.reference,l.reference.index);
rg.ungetregister(list,l.reference.base);
reference_reset_base(l.reference,l.reference.index,0);
end
else
begin
cg.a_loadaddr_ref_reg(list,l.reference,l.reference.base);
rg.ungetregister(list,l.reference.index);
reference_reset_base(l.reference,l.reference.base,0);
end;
{ save base register }
tg.GetTemp(exprasmlist,TCGSize2Size[OS_ADDR],tt_normal,s.ref);
cg.a_load_reg_ref(exprasmlist,OS_ADDR,l.reference.base,s.ref);
@ -1775,7 +1786,12 @@ implementation
end.
{
$Log$
Revision 1.44 2002-09-01 14:42:41 peter
Revision 1.45 2002-09-01 18:50:20 peter
* fixed maybe_save that did not support a reference with only
a index register. It now also updates the location with the new
base register only
Revision 1.44 2002/09/01 14:42:41 peter
* removevaluepara added to fix the stackpointer so restoring of
saved registers works