mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 01:09:06 +02:00
* save/result nestsym to ppufile for inline routines
git-svn-id: branches/jvmbackend@18670 -
This commit is contained in:
parent
3a983d8ea5
commit
ff37507bca
@ -38,12 +38,17 @@ interface
|
|||||||
tcgnestloadnode = class(tcgloadnode)
|
tcgnestloadnode = class(tcgloadnode)
|
||||||
protected
|
protected
|
||||||
nestsym: tsym;
|
nestsym: tsym;
|
||||||
|
nestsymderef: tderef;
|
||||||
procedure generate_nested_access(vs: tsym);override;
|
procedure generate_nested_access(vs: tsym);override;
|
||||||
public
|
public
|
||||||
function pass_typecheck: tnode; override;
|
function pass_typecheck: tnode; override;
|
||||||
function pass_1:tnode;override;
|
function pass_1:tnode;override;
|
||||||
function dogetcopy: tnode; override;
|
function dogetcopy: tnode; override;
|
||||||
function docompare(p: tnode): boolean; override;
|
function docompare(p: tnode): boolean; override;
|
||||||
|
constructor ppuload(t: tnodetype; ppufile: tcompilerppufile); override;
|
||||||
|
procedure ppuwrite(ppufile: tcompilerppufile); override;
|
||||||
|
procedure buildderefimpl; override;
|
||||||
|
procedure derefimpl; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -192,6 +197,34 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
constructor tcgnestloadnode.ppuload(t: tnodetype; ppufile: tcompilerppufile);
|
||||||
|
begin
|
||||||
|
inherited ppuload(t, ppufile);
|
||||||
|
ppufile.getderef(nestsymderef);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure tcgnestloadnode.ppuwrite(ppufile: tcompilerppufile);
|
||||||
|
begin
|
||||||
|
inherited ppuwrite(ppufile);
|
||||||
|
ppufile.putderef(nestsymderef);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure tcgnestloadnode.buildderefimpl;
|
||||||
|
begin
|
||||||
|
inherited buildderefimpl;
|
||||||
|
nestsymderef.build(nestsym);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure tcgnestloadnode.derefimpl;
|
||||||
|
begin
|
||||||
|
inherited derefimpl;
|
||||||
|
nestsym:=tsym(nestsymderef.resolve);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
begin
|
begin
|
||||||
cloadnode:=tcgnestloadnode;
|
cloadnode:=tcgnestloadnode;
|
||||||
end.
|
end.
|
||||||
|
Loading…
Reference in New Issue
Block a user