From e6e43724c33b47de44e374988d95ca153551f500 Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 17 Jun 2003 16:34:19 +0000 Subject: [PATCH] * freeintparaloc added --- compiler/i386/cpupara.pas | 12 +++++++++++- compiler/sparc/rgcpu.pas | 11 ++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/compiler/i386/cpupara.pas b/compiler/i386/cpupara.pas index 530c8c6f3d..5fc96e6890 100644 --- a/compiler/i386/cpupara.pas +++ b/compiler/i386/cpupara.pas @@ -45,6 +45,7 @@ unit cpupara; function ret_in_param(def : tdef;calloption : tproccalloption) : boolean;override; function push_addr_param(def : tdef;calloption : tproccalloption) : boolean;override; function getintparaloc(list: taasmoutput; nr : longint) : tparalocation;override; + procedure freeintparaloc(list: taasmoutput; nr : longint); override; function getparaloc(p : tdef) : tcgloc; procedure create_param_loc_info(p : tabstractprocdef);override; function getselflocation(p : tabstractprocdef) : tparalocation;override; @@ -119,6 +120,12 @@ unit cpupara; end; + procedure ti386paramanager.freeintparaloc(list: taasmoutput; nr : longint); + begin + { nothing to release } + end; + + function ti386paramanager.getparaloc(p : tdef) : tcgloc; begin result:=LOC_REFERENCE; @@ -169,7 +176,10 @@ begin end. { $Log$ - Revision 1.18 2003-06-07 18:57:04 jonas + Revision 1.19 2003-06-17 16:34:19 peter + * freeintparaloc added + + Revision 1.18 2003/06/07 18:57:04 jonas + added freeintparaloc * ppc get/freeintparaloc now check whether the parameter regs are properly allocated/deallocated (and get an extra list para) diff --git a/compiler/sparc/rgcpu.pas b/compiler/sparc/rgcpu.pas index a03d7a6f25..a4d33680df 100644 --- a/compiler/sparc/rgcpu.pas +++ b/compiler/sparc/rgcpu.pas @@ -58,7 +58,8 @@ implementation not((reg shr 8) in is_reg_var_int) then begin if (reg shr 8) in UsedParaRegs then - InternalError(2003060701); + InternalError(2003060701) + ; include(UsedParaRegs,reg shr 8); result.enum:=R_INTREGISTER; result.number:=reg; @@ -77,7 +78,8 @@ implementation not((reg.number shr 8) in is_reg_var_int) then begin if not((reg.number shr 8) in usedpararegs) then - internalerror(2003060702); + internalerror(2003060702) + ; exclude(usedpararegs,reg.number shr 8); cg.a_reg_dealloc(list,reg); end @@ -152,7 +154,10 @@ begin end. { $Log$ - Revision 1.13 2003-06-12 22:47:52 mazen + Revision 1.14 2003-06-17 16:36:11 peter + * freeintparaloc added + + Revision 1.13 2003/06/12 22:47:52 mazen - unused temp var r removed in GetExplicitRegisterInt function * some case added for var and fauncions naming