summaryrefslogtreecommitdiff
path: root/compiler/nmem.pas
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/nmem.pas')
-rw-r--r--compiler/nmem.pas39
1 files changed, 16 insertions, 23 deletions
diff --git a/compiler/nmem.pas b/compiler/nmem.pas
index c5a83a6dca..f0a82ecd17 100644
--- a/compiler/nmem.pas
+++ b/compiler/nmem.pas
@@ -53,6 +53,10 @@ interface
lpf_forload
);
tloadparentfpnode = class(tunarynode)
+ private
+ _parentfpsym: tparavarsym;
+ function getparentfpsym: tparavarsym;
+ public
parentpd : tprocdef;
parentpdderef : tderef;
kind: tloadparentfpkind;
@@ -65,6 +69,7 @@ interface
function pass_typecheck:tnode;override;
function docompare(p: tnode): boolean; override;
function dogetcopy : tnode;override;
+ property parentfpsym: tparavarsym read getparentfpsym;
end;
tloadparentfpnodeclass = class of tloadparentfpnode;
@@ -372,32 +377,9 @@ implementation
function tloadparentfpnode.pass_typecheck:tnode;
-{$ifdef dummy}
- var
- currpi : tprocinfo;
- hsym : tparavarsym;
-{$endif dummy}
begin
result:=nil;
resultdef:=parentfpvoidpointertype;
-{$ifdef dummy}
- { 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.Find('parentfp'));
- if not assigned(hsym) then
- internalerror(2005040601);
- hsym.varregable:=vr_none;
- end;
- end;
-{$endif dummy}
end;
@@ -408,6 +390,17 @@ implementation
end;
+ function tloadparentfpnode.getparentfpsym: tparavarsym;
+ begin
+ if not assigned(_parentfpsym) then
+ begin
+ _parentfpsym:=tparavarsym(current_procinfo.procdef.parast.Find('parentfp'));
+ if not assigned(_parentfpsym) then
+ internalerror(200309281);
+ end;
+ result:=_parentfpsym;
+ end;
+
{*****************************************************************************
TADDRNODE
*****************************************************************************}