* fixed previous commit

This commit is contained in:
florian 2005-04-06 19:39:04 +00:00
parent 1f4e15705c
commit e33bf907d8
3 changed files with 42 additions and 9 deletions

View File

@ -190,13 +190,12 @@ implementation
hsym:=tparavarsym(currpi.procdef.parast.search('parentfp'));
if not assigned(hsym) then
internalerror(200309282);
{
if hsym.localloc.loc<>LOC_REFERENCE then
internalerror(200309283);
reference_reset_base(href,location.register,hsym.localloc.reference.offset);
}
cg.a_load_loc_reg(exprasmlist,OS_ADDR,hsym.localloc,location.register);
cg.a_load_ref_reg(exprasmlist,OS_ADDR,OS_ADDR,href,location.register);
end;
end;
end;
@ -864,7 +863,10 @@ begin
end.
{
$Log$
Revision 1.105 2005-04-06 19:09:39 florian
Revision 1.106 2005-04-06 19:39:04 florian
* fixed previous commit
Revision 1.105 2005/04/06 19:09:39 florian
* hidden parameters can be put now in registers as well
Revision 1.104 2005/02/14 17:13:06 peter

View File

@ -230,9 +230,31 @@ implementation
function tloadparentfpnode.det_resulttype:tnode;
var
currpi : tprocinfo;
hsym : tparavarsym;
begin
result:=nil;
resulttype:=voidpointertype;
{
currently parentfps are never loaded in registers (FK)
if (current_procinfo.procdef.parast.symtablelevel<>parentpd.parast.symtablelevel) then
begin
currpi:=current_procinfo;
{ walk parents }
while (currpi.procdef.owner.symtablelevel>parentpd.parast.symtablelevel) do
begin
currpi:=currpi.parent;
if not assigned(currpi) then
internalerror(2005040602);
hsym:=tparavarsym(currpi.procdef.parast.search('parentfp'));
if not assigned(hsym) then
internalerror(2005040601);
hsym.varregable:=vr_none;
end;
end;
}
end;
@ -933,7 +955,10 @@ begin
end.
{
$Log$
Revision 1.95 2005-03-25 22:20:19 peter
Revision 1.96 2005-04-06 19:39:04 florian
* fixed previous commit
Revision 1.95 2005/03/25 22:20:19 peter
* add hint when passing an uninitialized variable to a var parameter
Revision 1.94 2005/02/14 17:13:06 peter

View File

@ -2078,13 +2078,16 @@ const
{ insert funcret parameter if required }
insert_funcret_para(pd);
{ insert parentfp parameter if required }
insert_parentfp_para(pd);
{ Make var parameters regable, this must be done after the calling
convention is set. }
{ this must be done before parentfp is insert, because getting all cases
where parentfp must be in a memory location isn't catched properly so
we put parentfp never in a register }
pd.parast.foreach_static(@set_addr_param_regable,pd);
{ insert parentfp parameter if required }
insert_parentfp_para(pd);
{ Calculate parameter tlist }
pd.calcparas;
end;
@ -2458,7 +2461,10 @@ const
end.
{
$Log$
Revision 1.232 2005-04-06 19:09:39 florian
Revision 1.233 2005-04-06 19:39:04 florian
* fixed previous commit
Revision 1.232 2005/04/06 19:09:39 florian
* hidden parameters can be put now in registers as well
Revision 1.231 2005/03/27 14:10:52 jonas