From 757e3976fe0e31264603341d69bbd78e5c72d74c Mon Sep 17 00:00:00 2001 From: florian Date: Sat, 7 Sep 2002 19:40:39 +0000 Subject: [PATCH] * tvarsym.paraitem is set now --- compiler/paramgr.pas | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/compiler/paramgr.pas b/compiler/paramgr.pas index 765b08b4ab..bdb0e3b4da 100644 --- a/compiler/paramgr.pas +++ b/compiler/paramgr.pas @@ -70,7 +70,7 @@ unit paramgr; Returns the location where the invisible parameter for structured function results will be passed. } - function getfuncretparaloc(p : tabstractprocdef) : tparalocation;virtual;abstract; + function getfuncretparaloc(p : tabstractprocdef) : tparalocation;virtual; { Returns the self pointer location for the given tabstractprocdef, when the stack frame is already created. This is used by the code generating the wrappers for implemented interfaces. @@ -173,6 +173,16 @@ unit paramgr; end; + function tparamanager.getfuncretparaloc(p : tabstractprocdef) : tparalocation; + begin + result.loc:=LOC_REFERENCE; + result.size:=OS_ADDR; + result.sp_fixup:=pointer_size; + result.reference.index:=stack_pointer_reg; + result.reference.offset:=0; + end; + + function tparamanager.getfuncresultloc(def : tdef): tparalocation; begin fillchar(result,sizeof(tparalocation),0); @@ -292,8 +302,7 @@ unit paramgr; hp.paraloc.loc := LOC_CMMREGISTER; {$endif} end; - tvarsym(hp.parasym).reg:=hp.paraloc.register; - rg.regvar_loaded[hp.paraloc.register]:=true; + tvarsym(hp.parasym).paraitem:=hp; end; hp:=tparaitem(hp.next); end; @@ -305,7 +314,10 @@ end. { $Log$ - Revision 1.16 2002-09-01 21:04:48 florian + Revision 1.17 2002-09-07 19:40:39 florian + * tvarsym.paraitem is set now + + Revision 1.16 2002/09/01 21:04:48 florian * several powerpc related stuff fixed Revision 1.15 2002/08/25 19:25:19 peter @@ -373,3 +385,4 @@ end. Revision 1.1 2002/07/11 14:41:28 florian * start of the new generic parameter handling } +