* adapted to procinfo as pointer

This commit is contained in:
pierre 1999-11-10 00:06:08 +00:00
parent 3fa7ed902e
commit 614fff10f0
2 changed files with 21 additions and 17 deletions

View File

@ -93,7 +93,7 @@ implementation
if (symtabletype=parasymtable) or (symtabletype=localsymtable) then
begin
p^.location.reference.base:=procinfo.framepointer;
p^.location.reference.base:=procinfo^.framepointer;
p^.location.reference.offset:=pvarsym(p^.symtableentry)^.address;
if (symtabletype=localsymtable) then
@ -109,8 +109,8 @@ implementation
{ make a reference }
new(hp);
reset_reference(hp^);
hp^.offset:=procinfo.framepointer_offset;
hp^.base:=procinfo.framepointer;
hp^.offset:=procinfo^.framepointer_offset;
hp^.base:=procinfo^.framepointer;
exprasmlist^.concat(new(paicpu,op_ref_reg(A_MOVE,S_L,hp,hregister)));
@ -157,7 +157,7 @@ implementation
new(hp);
reset_reference(hp^);
hp^.offset:=p^.symtable^.datasize;
hp^.base:=procinfo.framepointer;
hp^.base:=procinfo^.framepointer;
exprasmlist^.concat(new(paicpu,op_ref_reg(A_MOVE,S_L,hp,hregister)));
@ -177,7 +177,7 @@ implementation
if hregister=R_NO then
hregister:=getaddressreg;
{ ADDED FOR OPEN ARRAY SUPPORT. }
if (p^.location.reference.base=procinfo.framepointer) then
if (p^.location.reference.base=procinfo^.framepointer) then
begin
highframepointer:=p^.location.reference.base;
highoffset:=p^.location.reference.offset;
@ -414,11 +414,11 @@ implementation
begin
hr:=getaddressreg;
hr_valid:=true;
hp:=new_reference(procinfo.framepointer,
procinfo.framepointer_offset);
hp:=new_reference(procinfo^.framepointer,
procinfo^.framepointer_offset);
exprasmlist^.concat(new(paicpu,op_ref_reg(A_MOVE,S_L,hp,hr)));
pp:=procinfo.parent;
pp:=procinfo^.parent;
{ walk up the stack frame }
while pp<>pprocinfo(p^.funcretprocinfo) do
begin
@ -430,8 +430,8 @@ implementation
p^.location.reference.base:=hr;
end
else
p^.location.reference.base:=procinfo.framepointer;
p^.location.reference.offset:=procinfo.retoffset;
p^.location.reference.base:=procinfo^.framepointer;
p^.location.reference.offset:=procinfo^.retoffset;
if ret_in_param(p^.retdef) then
begin
if not hr_valid then
@ -473,7 +473,10 @@ implementation
end.
{
$Log$
Revision 1.9 1999-09-16 23:05:51 florian
Revision 1.10 1999-11-10 00:06:08 pierre
* adapted to procinfo as pointer
Revision 1.9 1999/09/16 23:05:51 florian
* m68k compiler is again compilable (only gas writer, no assembler reader)
Revision 1.8 1999/09/16 11:34:54 pierre
@ -515,4 +518,3 @@ end.
* m68k fixes, splitted cg68k like cgi386
}

View File

@ -1632,10 +1632,10 @@ var
if actasmpattern = 'SELF' then
{ special self variable }
Begin
if assigned(procinfo._class) then
if assigned(procinfo^._class) then
Begin
instr.operands[operandnum].ref.offset := procinfo.selfpointer_offset;
instr.operands[operandnum].ref.base := procinfo.framepointer;
instr.operands[operandnum].ref.offset := procinfo^.selfpointer_offset;
instr.operands[operandnum].ref.base := procinfo^.framepointer;
end
else
Message(assem_e_cannot_use_SELF_outside_a_method);
@ -2178,7 +2178,10 @@ Begin
end.
{
$Log$
Revision 1.10 1999-11-09 23:06:46 peter
Revision 1.11 1999-11-10 00:06:08 pierre
* adapted to procinfo as pointer
Revision 1.10 1999/11/09 23:06:46 peter
* esi_offset -> selfpointer_offset to be newcg compatible
* hcogegen -> cgbase fixes for newcg
@ -2273,4 +2276,3 @@ end.
}