mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-10 03:28:40 +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)
|
||||
protected
|
||||
nestsym: tsym;
|
||||
nestsymderef: tderef;
|
||||
procedure generate_nested_access(vs: tsym);override;
|
||||
public
|
||||
function pass_typecheck: tnode; override;
|
||||
function pass_1:tnode;override;
|
||||
function dogetcopy: tnode; 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;
|
||||
|
||||
implementation
|
||||
@ -192,6 +197,34 @@ implementation
|
||||
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
|
||||
cloadnode:=tcgnestloadnode;
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user