2
0
Эх сурвалжийг харах

+ added tasmlist parameter to getintparaloc() (needed for llvm)

git-svn-id: trunk@30429 -
Jonas Maebe 10 жил өмнө
parent
commit
61e4a1b811

+ 3 - 3
compiler/aarch64/cgcpu.pas

@@ -1748,9 +1748,9 @@ implementation
         paraloc1.init;
         paraloc2.init;
         paraloc3.init;
-        paramanager.getintparaloc(pd,1,paraloc1);
-        paramanager.getintparaloc(pd,2,paraloc2);
-        paramanager.getintparaloc(pd,3,paraloc3);
+        paramanager.getintparaloc(list,pd,1,paraloc1);
+        paramanager.getintparaloc(list,pd,2,paraloc2);
+        paramanager.getintparaloc(list,pd,3,paraloc3);
         a_load_const_cgpara(list,OS_SINT,len,paraloc3);
         a_loadaddr_ref_cgpara(list,dest,paraloc2);
         a_loadaddr_ref_cgpara(list,source,paraloc1);

+ 0 - 20
compiler/alpha/cpupara.pas

@@ -32,7 +32,6 @@ unit cpupara;
 
     type
        tcpuparamanager = class(tparamanager)
-          function getintparaloc(nr : longint) : tparalocation;override;
           procedure create_param_loc_info(p : tabstractprocdef);override;
           function getfuncretparaloc(p : tabstractprocdef) : tparalocation;override;
        end;
@@ -45,25 +44,6 @@ unit cpupara;
        cpuinfo,cginfo,cgbase,
        defbase;
 
-    function tcpuparamanager.getintparaloc(nr : longint) : tparalocation;
-
-      begin
-         fillchar(result,sizeof(tparalocation),0);
-         if nr<1 then
-           internalerror(2002070801)
-         else if nr<=8 then
-           begin
-              result.loc:=LOC_REGISTER;
-              result.register:=tregister(longint(R_2)+nr);
-           end
-         else
-           begin
-              result.loc:=LOC_REFERENCE;
-              result.reference.index:=stack_pointer_reg;
-              result.reference.offset:=(nr-8)*4;
-           end;
-      end;
-
     function getparaloc(p : tdef) : tloc;
 
       begin

+ 3 - 3
compiler/arm/cgcpu.pas

@@ -2475,9 +2475,9 @@ unit cgcpu;
         paraloc1.init;
         paraloc2.init;
         paraloc3.init;
-        paramanager.getintparaloc(pd,1,paraloc1);
-        paramanager.getintparaloc(pd,2,paraloc2);
-        paramanager.getintparaloc(pd,3,paraloc3);
+        paramanager.getintparaloc(list,pd,1,paraloc1);
+        paramanager.getintparaloc(list,pd,2,paraloc2);
+        paramanager.getintparaloc(list,pd,3,paraloc3);
         a_load_const_cgpara(list,OS_SINT,len,paraloc3);
         a_loadaddr_ref_cgpara(list,dest,paraloc2);
         a_loadaddr_ref_cgpara(list,source,paraloc1);

+ 3 - 2
compiler/arm/cpupara.pas

@@ -28,6 +28,7 @@ unit cpupara;
 
     uses
        globtype,globals,
+       aasmdata,
        cpuinfo,cpubase,cgbase,cgutils,
        symconst,symtype,symdef,parabase,paramgr;
 
@@ -38,7 +39,7 @@ unit cpupara;
           function get_volatile_registers_mm(calloption : tproccalloption):tcpuregisterset;override;
           function push_addr_param(varspez:tvarspez;def : tdef;calloption : tproccalloption) : boolean;override;
           function ret_in_param(def:tdef;pd:tabstractprocdef):boolean;override;
-          procedure getintparaloc(pd : tabstractprocdef; nr : longint; var cgpara : tcgpara);override;
+          procedure getintparaloc(list: TAsmList; pd : tabstractprocdef; nr : longint; var cgpara : tcgpara);override;
           function create_paraloc_info(p : tabstractprocdef; side: tcallercallee):longint;override;
           function create_varargs_paraloc_info(p : tabstractprocdef; varargspara:tvarargsparalist):longint;override;
           function get_funcretloc(p : tabstractprocdef; side: tcallercallee; forcetempdef: tdef): tcgpara;override;
@@ -80,7 +81,7 @@ unit cpupara;
       end;
 
 
-    procedure tcpuparamanager.getintparaloc(pd : tabstractprocdef; nr : longint; var cgpara : tcgpara);
+    procedure tcpuparamanager.getintparaloc(list: TAsmList; pd : tabstractprocdef; nr : longint; var cgpara : tcgpara);
       var
         paraloc : pcgparalocation;
         psym : tparavarsym;

+ 6 - 6
compiler/avr/cgcpu.pas

@@ -550,9 +550,9 @@ unit cgcpu;
                    paraloc1.init;
                    paraloc2.init;
                    paraloc3.init;
-                   paramanager.getintparaloc(pd,1,paraloc1);
-                   paramanager.getintparaloc(pd,2,paraloc2);
-                   paramanager.getintparaloc(pd,3,paraloc3);
+                   paramanager.getintparaloc(list,pd,1,paraloc1);
+                   paramanager.getintparaloc(list,pd,2,paraloc2);
+                   paramanager.getintparaloc(list,pd,3,paraloc3);
                    a_load_const_cgpara(list,OS_8,0,paraloc3);
                    a_load_reg_cgpara(list,OS_16,src,paraloc2);
                    a_load_reg_cgpara(list,OS_16,dst,paraloc1);
@@ -1629,9 +1629,9 @@ unit cgcpu;
         paraloc1.init;
         paraloc2.init;
         paraloc3.init;
-        paramanager.getintparaloc(pd,1,paraloc1);
-        paramanager.getintparaloc(pd,2,paraloc2);
-        paramanager.getintparaloc(pd,3,paraloc3);
+        paramanager.getintparaloc(list,pd,1,paraloc1);
+        paramanager.getintparaloc(list,pd,2,paraloc2);
+        paramanager.getintparaloc(list,pd,3,paraloc3);
         a_load_const_cgpara(list,OS_SINT,len,paraloc3);
         a_loadaddr_ref_cgpara(list,dest,paraloc2);
         a_loadaddr_ref_cgpara(list,source,paraloc1);

+ 3 - 3
compiler/cgobj.pas

@@ -2182,8 +2182,8 @@ implementation
         if (cs_check_object in current_settings.localswitches) then
          begin
            pd:=search_system_proc('fpc_check_object_ext');
-           paramanager.getintparaloc(pd,1,cgpara1);
-           paramanager.getintparaloc(pd,2,cgpara2);
+           paramanager.getintparaloc(list,pd,1,cgpara1);
+           paramanager.getintparaloc(list,pd,2,cgpara2);
            reference_reset_symbol(hrefvmt,current_asmdata.RefAsmSymbol(objdef.vmt_mangledname,AT_DATA),0,sizeof(pint));
            if pd.is_pushleftright then
              begin
@@ -2205,7 +2205,7 @@ implementation
          if (cs_check_range in current_settings.localswitches) then
           begin
             pd:=search_system_proc('fpc_check_object');
-            paramanager.getintparaloc(pd,1,cgpara1);
+            paramanager.getintparaloc(list,pd,1,cgpara1);
             a_load_reg_cgpara(list,OS_ADDR,reg,cgpara1);
             paramanager.freecgpara(list,cgpara1);
             allocallcpuregisters(list);

+ 23 - 23
compiler/hlcgobj.pas

@@ -3116,7 +3116,7 @@ implementation
          current_asmdata.getjumplabel(oklabel);
          a_cmp_const_reg_label(list,selftype,OC_NE,0,reg,oklabel);
          cgpara1.init;
-         paramanager.getintparaloc(pd,1,cgpara1);
+         paramanager.getintparaloc(list,pd,1,cgpara1);
          a_load_const_cgpara(list,s32inttype,aint(210),cgpara1);
          paramanager.freecgpara(list,cgpara1);
          g_call_system_proc(list,pd,[@cgpara1],nil);
@@ -3149,9 +3149,9 @@ implementation
       cgpara1.init;
       cgpara2.init;
       cgpara3.init;
-      paramanager.getintparaloc(pd,1,cgpara1);
-      paramanager.getintparaloc(pd,2,cgpara2);
-      paramanager.getintparaloc(pd,3,cgpara3);
+      paramanager.getintparaloc(list,pd,1,cgpara1);
+      paramanager.getintparaloc(list,pd,2,cgpara2);
+      paramanager.getintparaloc(list,pd,3,cgpara3);
       if pd.is_pushleftright then
         begin
           a_loadaddr_ref_cgpara(list,strdef,dest,cgpara1);
@@ -3181,8 +3181,8 @@ implementation
       pd:=search_system_proc('fpc_variant_copy_overwrite');
       cgpara1.init;
       cgpara2.init;
-      paramanager.getintparaloc(pd,1,cgpara1);
-      paramanager.getintparaloc(pd,2,cgpara2);
+      paramanager.getintparaloc(list,pd,1,cgpara1);
+      paramanager.getintparaloc(list,pd,2,cgpara2);
       if pd.is_pushleftright then
         begin
           a_loadaddr_ref_cgpara(list,vardef,source,cgpara1);
@@ -3225,7 +3225,7 @@ implementation
        if incrfunc<>'' then
         begin
           pd:=search_system_proc(incrfunc);
-          paramanager.getintparaloc(pd,1,cgpara1);
+          paramanager.getintparaloc(list,pd,1,cgpara1);
           { widestrings aren't ref. counted on all platforms so we need the address
             to create a real copy }
           if is_widestring(t) then
@@ -3239,8 +3239,8 @@ implementation
        else
         begin
           pd:=search_system_proc('fpc_addref');
-          paramanager.getintparaloc(pd,1,cgpara1);
-          paramanager.getintparaloc(pd,2,cgpara2);
+          paramanager.getintparaloc(list,pd,1,cgpara1);
+          paramanager.getintparaloc(list,pd,2,cgpara2);
           if is_open_array(t) then
             InternalError(201103054);
           reference_reset_symbol(href,RTTIWriter.get_rtti_label(t,initrtti),0,sizeof(pint));
@@ -3279,7 +3279,7 @@ implementation
        else if t.typ=variantdef then
          begin
            pd:=search_system_proc('fpc_variant_init');
-           paramanager.getintparaloc(pd,1,cgpara1);
+           paramanager.getintparaloc(list,pd,1,cgpara1);
            a_loadaddr_ref_cgpara(list,t,ref,cgpara1);
            paramanager.freecgpara(list,cgpara1);
           g_call_system_proc(list,pd,[@cgpara1],nil);
@@ -3289,8 +3289,8 @@ implementation
             if is_open_array(t) then
               InternalError(201103052);
             pd:=search_system_proc('fpc_initialize');
-            paramanager.getintparaloc(pd,1,cgpara1);
-            paramanager.getintparaloc(pd,2,cgpara2);
+            paramanager.getintparaloc(list,pd,1,cgpara1);
+            paramanager.getintparaloc(list,pd,2,cgpara2);
             reference_reset_symbol(href,RTTIWriter.get_rtti_label(t,initrtti),0,sizeof(pint));
             if pd.is_pushleftright then
               begin
@@ -3339,8 +3339,8 @@ implementation
             pd:=search_system_proc('fpc_dynarray_clear')
           else
             pd:=search_system_proc('fpc_finalize');
-          paramanager.getintparaloc(pd,1,cgpara1);
-          paramanager.getintparaloc(pd,2,cgpara2);
+          paramanager.getintparaloc(list,pd,1,cgpara1);
+          paramanager.getintparaloc(list,pd,2,cgpara2);
           reference_reset_symbol(href,RTTIWriter.get_rtti_label(t,initrtti),0,sizeof(pint));
           if pd.is_pushleftright then
             begin
@@ -3361,7 +3361,7 @@ implementation
         end;
       pd:=search_system_proc(decrfunc);
       cgpara1.init;
-      paramanager.getintparaloc(pd,1,cgpara1);
+      paramanager.getintparaloc(list,pd,1,cgpara1);
       a_loadaddr_ref_cgpara(list,t,ref,cgpara1);
       paramanager.freecgpara(list,cgpara1);
       g_call_system_proc(list,pd,[@cgpara1],nil);
@@ -3379,9 +3379,9 @@ implementation
       cgpara2.init;
       cgpara3.init;
       pd:=search_system_proc(name);
-      paramanager.getintparaloc(pd,1,cgpara1);
-      paramanager.getintparaloc(pd,2,cgpara2);
-      paramanager.getintparaloc(pd,3,cgpara3);
+      paramanager.getintparaloc(list,pd,1,cgpara1);
+      paramanager.getintparaloc(list,pd,2,cgpara2);
+      paramanager.getintparaloc(list,pd,3,cgpara3);
 
       reference_reset_symbol(href,RTTIWriter.get_rtti_label(t,initrtti),0,sizeof(pint));
       { if calling convention is left to right, push parameters 1 and 2 }
@@ -3666,7 +3666,7 @@ implementation
       { do getmem call }
       pd:=search_system_proc('fpc_getmem');
       cgpara1.init;
-      paramanager.getintparaloc(pd,1,cgpara1);
+      paramanager.getintparaloc(list,pd,1,cgpara1);
       a_load_reg_cgpara(list,sinttype,sizereg,cgpara1);
       paramanager.freecgpara(list,cgpara1);
       getmemres:=g_call_system_proc(list,pd,[@cgpara1],ptrarrdef);
@@ -3681,9 +3681,9 @@ implementation
       cgpara1.init;
       cgpara2.init;
       cgpara3.init;
-      paramanager.getintparaloc(pd,1,cgpara1);
-      paramanager.getintparaloc(pd,2,cgpara2);
-      paramanager.getintparaloc(pd,3,cgpara3);
+      paramanager.getintparaloc(list,pd,1,cgpara1);
+      paramanager.getintparaloc(list,pd,2,cgpara2);
+      paramanager.getintparaloc(list,pd,3,cgpara3);
       if pd.is_pushleftright then
         begin
           { load source }
@@ -3720,7 +3720,7 @@ implementation
       { do freemem call }
       pd:=search_system_proc('fpc_freemem');
       cgpara1.init;
-      paramanager.getintparaloc(pd,1,cgpara1);
+      paramanager.getintparaloc(list,pd,1,cgpara1);
       { load source }
       a_load_loc_cgpara(list,getpointerdef(arrdef),l,cgpara1);
       paramanager.freecgpara(list,cgpara1);

+ 2 - 2
compiler/i8086/cpupara.pas

@@ -51,7 +51,7 @@ unit cpupara;
             other memory models, this mechanism has to be extended somehow to
             support 32-bit addresses on a 16-bit CPU.
           }
-          procedure getintparaloc(pd : tabstractprocdef; nr : longint; var cgpara : tcgpara);override;
+          procedure getintparaloc(list: TAsmList; pd : tabstractprocdef; nr : longint; var cgpara : tcgpara);override;
           function create_paraloc_info(p : tabstractprocdef; side: tcallercallee):longint;override;
           function create_varargs_paraloc_info(p : tabstractprocdef; varargspara:tvarargsparalist):longint;override;
           procedure createtempparaloc(list: TAsmList;calloption : tproccalloption;parasym : tparavarsym;can_use_final_stack_loc : boolean;var cgpara:TCGPara);override;
@@ -227,7 +227,7 @@ unit cpupara;
       end;
 
 
-    procedure tcpuparamanager.getintparaloc(pd : tabstractprocdef; nr : longint; var cgpara : tcgpara);
+    procedure tcpuparamanager.getintparaloc(list: TAsmList; pd : tabstractprocdef; nr : longint; var cgpara : tcgpara);
       var
         paraloc : pcgparalocation;
         psym: tparavarsym;

+ 1 - 1
compiler/i8086/n8086mem.pas

@@ -156,7 +156,7 @@ implementation
                  internalerror(2012010601);
                pd:=tprocdef(tprocsym(sym).ProcdefList[0]);
                paraloc1.init;
-               paramanager.getintparaloc(pd,1,paraloc1);
+               paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
                hlcg.a_load_reg_cgpara(current_asmdata.CurrAsmList,resultdef,location.reference.base,paraloc1);
                paramanager.freecgpara(current_asmdata.CurrAsmList,paraloc1);
                paraloc1.done;

+ 2 - 2
compiler/jvm/cpupara.pas

@@ -43,7 +43,7 @@ interface
         {Returns a structure giving the information on the storage of the parameter
         (which must be an integer parameter)
         @param(nr Parameter number of routine, starting from 1)}
-        procedure getintparaloc(pd : tabstractprocdef; nr : longint; var cgpara : tcgpara);override;
+        procedure getintparaloc(list: TAsmList; pd : tabstractprocdef; nr : longint; var cgpara : tcgpara);override;
         function  create_paraloc_info(p : TAbstractProcDef; side: tcallercallee):longint;override;
         function  create_varargs_paraloc_info(p : tabstractprocdef; varargspara:tvarargsparalist):longint;override;
         function  get_funcretloc(p : tabstractprocdef; side: tcallercallee; forcetempdef: tdef): tcgpara;override;
@@ -64,7 +64,7 @@ implementation
       hlcgobj;
 
 
-    procedure tcpuparamanager.GetIntParaLoc(pd : tabstractprocdef; nr : longint; var cgpara : tcgpara);
+    procedure tcpuparamanager.GetIntParaLoc(list: TAsmList; pd : tabstractprocdef; nr : longint; var cgpara : tcgpara);
       begin
         { not yet implemented/used }
         internalerror(2010121001);

+ 6 - 6
compiler/m68k/cgcpu.pas

@@ -634,9 +634,9 @@ unit cgcpu;
         paraloc1.init;
         paraloc2.init;
         paraloc3.init;
-        paramanager.getintparaloc(pd,1,paraloc1);
-        paramanager.getintparaloc(pd,2,paraloc2);
-        paramanager.getintparaloc(pd,3,paraloc3);
+        paramanager.getintparaloc(list,pd,1,paraloc1);
+        paramanager.getintparaloc(list,pd,2,paraloc2);
+        paramanager.getintparaloc(list,pd,3,paraloc3);
         a_load_const_cgpara(list,OS_8,0,paraloc3);
         a_load_const_cgpara(list,size,a,paraloc2);
         a_load_reg_cgpara(list,OS_32,reg,paraloc1);
@@ -669,9 +669,9 @@ unit cgcpu;
         paraloc1.init;
         paraloc2.init;
         paraloc3.init;
-        paramanager.getintparaloc(pd,1,paraloc1);
-        paramanager.getintparaloc(pd,2,paraloc2);
-        paramanager.getintparaloc(pd,3,paraloc3);
+        paramanager.getintparaloc(list,pd,1,paraloc1);
+        paramanager.getintparaloc(list,pd,2,paraloc2);
+        paramanager.getintparaloc(list,pd,3,paraloc3);
         a_load_const_cgpara(list,OS_8,0,paraloc3);
         a_load_reg_cgpara(list,OS_32,reg1,paraloc2);
         a_load_reg_cgpara(list,OS_32,reg2,paraloc1);

+ 3 - 3
compiler/mips/cgcpu.pas

@@ -1480,9 +1480,9 @@ begin
   paraloc1.init;
   paraloc2.init;
   paraloc3.init;
-  paramanager.getintparaloc(pd, 1, paraloc1);
-  paramanager.getintparaloc(pd, 2, paraloc2);
-  paramanager.getintparaloc(pd, 3, paraloc3);
+  paramanager.getintparaloc(list, pd, 1, paraloc1);
+  paramanager.getintparaloc(list, pd, 2, paraloc2);
+  paramanager.getintparaloc(list, pd, 3, paraloc3);
   a_load_const_cgpara(list, OS_SINT, len, paraloc3);
   a_loadaddr_ref_cgpara(list, dest, paraloc2);
   a_loadaddr_ref_cgpara(list, Source, paraloc1);

+ 1 - 1
compiler/ncgcal.pas

@@ -1237,7 +1237,7 @@ implementation
            begin
              pd:=search_system_proc('fpc_safecallcheck');
              cgpara.init;
-             paramanager.getintparaloc(pd,1,cgpara);
+             paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,cgpara);
              cg.a_load_reg_cgpara(current_asmdata.CurrAsmList,OS_INT,NR_FUNCTION_RESULT_REG,cgpara);
              paramanager.freecgpara(current_asmdata.CurrAsmList,cgpara);
              cg.g_call(current_asmdata.CurrAsmList,'FPC_SAFECALLCHECK');

+ 2 - 2
compiler/ncgflw.pas

@@ -1268,7 +1268,7 @@ implementation
          { send the vmt parameter }
          pd:=search_system_proc('fpc_catches');
          reference_reset_symbol(href2,current_asmdata.RefAsmSymbol(excepttype.vmt_mangledname,AT_DATA),0,sizeof(pint));
-         paramanager.getintparaloc(pd,1,paraloc1);
+         paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
          cg.a_loadaddr_ref_cgpara(current_asmdata.CurrAsmList,href2,paraloc1);
          paramanager.freecgpara(current_asmdata.CurrAsmList,paraloc1);
          fpc_catches_res:=hlcg.g_call_system_proc(current_asmdata.CurrAsmList,pd,[@paraloc1],nil);
@@ -1387,7 +1387,7 @@ implementation
           nil otherwise. }
         pd:=search_system_proc('fpc_safecallhandler');
         cgpara.init;
-        paramanager.getintparaloc(pd,1,cgpara);
+        paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,cgpara);
         if is_class(current_procinfo.procdef.struct) then
           begin
             selfsym:=tparavarsym(current_procinfo.procdef.parast.Find('self'));

+ 2 - 2
compiler/ncgld.pas

@@ -326,7 +326,7 @@ implementation
                           begin
                             paraloc1.init;
                             pd:=search_system_proc('fpc_tls_add');
-                            paramanager.getintparaloc(pd,1,paraloc1);
+                            paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
                             if not(vo_is_weak_external in gvs.varoptions) then
                               reference_reset_symbol(href,current_asmdata.RefAsmSymbol(gvs.mangledname),0,sizeof(pint))
                             else
@@ -377,7 +377,7 @@ implementation
                         if pvd.typ<>procvardef then
                           internalerror(2012120901);
                         paraloc1.init;
-                        paramanager.getintparaloc(tprocvardef(pvd),1,paraloc1);
+                        paramanager.getintparaloc(current_asmdata.CurrAsmList,tprocvardef(pvd),1,paraloc1);
                         hregister:=hlcg.getaddressregister(current_asmdata.CurrAsmList,pvd);
                         reference_reset_symbol(href,current_asmdata.RefAsmSymbol('FPC_THREADVAR_RELOCATE'),0,pvd.size);
                         hlcg.a_load_ref_reg(current_asmdata.CurrAsmList,pvd,pvd,href,hregister);

+ 1 - 1
compiler/ncgmat.pas

@@ -426,7 +426,7 @@ implementation
                       cg.a_cmp_const_reg_label(current_asmdata.CurrAsmList,OS_INT,OC_NE,0,hdenom,hl);
                       paraloc1.init;
                       pd:=search_system_proc('fpc_handleerror');
-                      paramanager.getintparaloc(pd,1,paraloc1);
+                      paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
                       cg.a_load_const_cgpara(current_asmdata.CurrAsmList,OS_S32,aint(200),paraloc1);
                       paramanager.freecgpara(current_asmdata.CurrAsmList,paraloc1);
                       cg.a_call_name(current_asmdata.CurrAsmList,'FPC_HANDLEERROR',false);

+ 6 - 6
compiler/ncgmem.pas

@@ -305,7 +305,7 @@ implementation
               internalerror(2012010601);
             pd:=tprocdef(tprocsym(sym).ProcdefList[0]);
             paraloc1.init;
-            paramanager.getintparaloc(pd,1,paraloc1);
+            paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
             hlcg.a_load_reg_cgpara(current_asmdata.CurrAsmList,left.resultdef,location.reference.base,paraloc1);
             paramanager.freecgpara(current_asmdata.CurrAsmList,paraloc1);
             paraloc1.done;
@@ -393,7 +393,7 @@ implementation
                        (sym.typ<>procsym) then
                       internalerror(2012010602);
                     pd:=tprocdef(tprocsym(sym).ProcdefList[0]);
-                    paramanager.getintparaloc(pd,1,paraloc1);
+                    paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
                     hlcg.a_load_reg_cgpara(current_asmdata.CurrAsmList,left.resultdef,location.reference.base,paraloc1);
                     paramanager.freecgpara(current_asmdata.CurrAsmList,paraloc1);
                     hlcg.allocallcpuregisters(current_asmdata.CurrAsmList);
@@ -778,8 +778,8 @@ implementation
           if is_dynamic_array(left.resultdef) then
             begin
                pd:=search_system_proc('fpc_dynarray_rangecheck');
-               paramanager.getintparaloc(pd,1,paraloc1);
-               paramanager.getintparaloc(pd,2,paraloc2);
+               paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
+               paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,2,paraloc2);
                if pd.is_pushleftright then
                  begin
                    cg.a_load_loc_cgpara(current_asmdata.CurrAsmList,left.location,paraloc1);
@@ -820,8 +820,8 @@ implementation
             begin
               helpername:='fpc_'+tstringdef(left.resultdef).stringtypname+'_rangecheck';
               pd:=search_system_proc(helpername);
-              paramanager.getintparaloc(pd,1,paraloc1);
-              paramanager.getintparaloc(pd,2,paraloc2);
+              paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
+              paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,2,paraloc2);
               if pd.is_pushleftright then
                 begin
                   cg.a_load_loc_cgpara(current_asmdata.CurrAsmList,left.location,paraloc1);

+ 6 - 6
compiler/ncgutil.pas

@@ -413,9 +413,9 @@ implementation
 
         { fpc_pushexceptaddr(exceptionframetype, setjmp_buffer, exception_address_chain_entry) }
         pd:=search_system_proc('fpc_pushexceptaddr');
-        paramanager.getintparaloc(pd,1,paraloc1);
-        paramanager.getintparaloc(pd,2,paraloc2);
-        paramanager.getintparaloc(pd,3,paraloc3);
+        paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
+        paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,2,paraloc2);
+        paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,3,paraloc3);
         if pd.is_pushleftright then
           begin
             { type of exceptionframe }
@@ -445,7 +445,7 @@ implementation
 
         { fpc_setjmp(result_of_pushexceptaddr_call) }
         pd:=search_system_proc('fpc_setjmp');
-        paramanager.getintparaloc(pd,1,paraloc1);
+        paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
 
         hlcg.a_load_reg_cgpara(list,pushexceptres.def,tmpresloc.register,paraloc1);
         paramanager.freecgpara(list,paraloc1);
@@ -1393,7 +1393,7 @@ implementation
       begin
         pd:=search_system_proc('fpc_stackcheck');
         paraloc1.init;
-        paramanager.getintparaloc(pd,1,paraloc1);
+        paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
         cg.a_load_const_cgpara(list,OS_INT,current_procinfo.calc_stackframe_size,paraloc1);
         paramanager.freecgpara(list,paraloc1);
         paraloc1.done;
@@ -1408,7 +1408,7 @@ implementation
         pd:=search_system_proc('fpc_stackcheck');
         paraloc1.init;
         { Also alloc the register needed for the parameter }
-        paramanager.getintparaloc(pd,1,paraloc1);
+        paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
         paramanager.freecgpara(list,paraloc1);
         { Call the helper }
         cg.allocallcpuregisters(list);

+ 2 - 2
compiler/paramgr.pas

@@ -81,7 +81,7 @@ unit paramgr;
           function get_volatile_registers_flags(calloption : tproccalloption):tcpuregisterset;virtual;
           function get_volatile_registers_mm(calloption : tproccalloption):tcpuregisterset;virtual;
 
-          procedure getintparaloc(pd: tabstractprocdef; nr : longint; var cgpara: tcgpara);virtual;
+          procedure getintparaloc(list: TAsmList; pd: tabstractprocdef; nr : longint; var cgpara: tcgpara);virtual;
 
           {# allocate an individual pcgparalocation that's part of a tcgpara
 
@@ -624,7 +624,7 @@ implementation
       end;
 
 
-    procedure tparamanager.getintparaloc(pd: tabstractprocdef; nr : longint; var cgpara: tcgpara);
+    procedure tparamanager.getintparaloc(list: TAsmList; pd: tabstractprocdef; nr : longint; var cgpara: tcgpara);
       begin
         if (nr<1) or (nr>pd.paras.count) then
           InternalError(2013060101);

+ 2 - 2
compiler/powerpc/cpupara.pas

@@ -37,7 +37,7 @@ unit cpupara;
           function get_volatile_registers_fpu(calloption : tproccalloption):tcpuregisterset;override;
           function push_addr_param(varspez:tvarspez;def : tdef;calloption : tproccalloption) : boolean;override;
 
-          procedure getintparaloc(pd : tabstractprocdef; nr : longint; var cgpara : tcgpara);override;
+          procedure getintparaloc(list: TAsmList; pd : tabstractprocdef; nr : longint; var cgpara : tcgpara);override;
           function create_paraloc_info(p : tabstractprocdef; side: tcallercallee):longint;override;
           function create_varargs_paraloc_info(p : tabstractprocdef; varargspara:tvarargsparalist):longint;override;
           function get_funcretloc(p : tabstractprocdef; side: tcallercallee; forcetempdef: tdef): tcgpara;override;
@@ -78,7 +78,7 @@ unit cpupara;
       end;
 
 
-    procedure tcpuparamanager.getintparaloc(pd : tabstractprocdef; nr : longint; var cgpara : tcgpara);
+    procedure tcpuparamanager.getintparaloc(list: TAsmList; pd : tabstractprocdef; nr : longint; var cgpara : tcgpara);
       var
         paraloc : pcgparalocation;
         psym : tparavarsym;

+ 2 - 2
compiler/powerpc64/cpupara.pas

@@ -41,7 +41,7 @@ type
       tproccalloption): boolean; override;
     function ret_in_param(def: tdef; pd: tabstractprocdef): boolean; override;
 
-    procedure getintparaloc(pd : tabstractprocdef; nr: longint; var cgpara: tcgpara); override;
+    procedure getintparaloc(list: TAsmList; pd : tabstractprocdef; nr: longint; var cgpara: tcgpara); override;
     function create_paraloc_info(p: tabstractprocdef; side: tcallercallee): longint; override;
     function create_varargs_paraloc_info(p: tabstractprocdef; varargspara:
       tvarargsparalist): longint; override;
@@ -79,7 +79,7 @@ begin
   result := [RS_F0..RS_F13];
 end;
 
-procedure tcpuparamanager.getintparaloc(pd : tabstractprocdef; nr: longint; var cgpara: tcgpara);
+procedure tcpuparamanager.getintparaloc(list: TAsmList; pd : tabstractprocdef; nr: longint; var cgpara: tcgpara);
 var
   paraloc: pcgparalocation;
   psym: tparavarsym;

+ 1 - 1
compiler/ppcgen/cgppc.pas

@@ -692,7 +692,7 @@ unit cgppc;
         begin
           pd:=search_system_proc('mcount');
           paraloc1.init;
-          paramanager.getintparaloc(pd,1,paraloc1);
+          paramanager.getintparaloc(list,pd,1,paraloc1);
           a_load_reg_cgpara(list,OS_ADDR,NR_R0,paraloc1);
           paramanager.freecgpara(list,paraloc1);
           paraloc1.done;

+ 3 - 3
compiler/sparc/cgcpu.pas

@@ -1102,9 +1102,9 @@ implementation
         paraloc1.init;
         paraloc2.init;
         paraloc3.init;
-        paramanager.getintparaloc(pd,1,paraloc1);
-        paramanager.getintparaloc(pd,2,paraloc2);
-        paramanager.getintparaloc(pd,3,paraloc3);
+        paramanager.getintparaloc(list,pd,1,paraloc1);
+        paramanager.getintparaloc(list,pd,2,paraloc2);
+        paramanager.getintparaloc(list,pd,3,paraloc3);
         a_load_const_cgpara(list,OS_SINT,len,paraloc3);
         a_loadaddr_ref_cgpara(list,dest,paraloc2);
         a_loadaddr_ref_cgpara(list,source,paraloc1);

+ 0 - 5
compiler/vis/cpupara.pas

@@ -39,7 +39,6 @@ unit cpupara;
          rtl are used.
        }
        tcpuparamanager = class(tparamanager)
-          function getintparaloc(nr : longint) : tparalocation;override;
           procedure create_param_loc_info(p : tabstractprocdef);override;
           function getselflocation(p : tabstractprocdef) : tparalocation;override;
        end;
@@ -54,10 +53,6 @@ unit cpupara;
        cpuinfo,cginfo,cgbase,
        defutil;
 
-    function tcpuparamanager.getintparaloc(nr : longint) : tparalocation;
-      begin
-      end;
-
     procedure tcpuparamanager.create_param_loc_info(p : tabstractprocdef);
       var
         param_offset : integer;

+ 2 - 2
compiler/x86_64/cgcpu.pas

@@ -438,8 +438,8 @@ unit cgcpu;
         pd:=search_system_proc('_fpc_local_unwind');
         para1.init;
         para2.init;
-        paramanager.getintparaloc(pd,1,para1);
-        paramanager.getintparaloc(pd,2,para2);
+        paramanager.getintparaloc(list,pd,1,para1);
+        paramanager.getintparaloc(list,pd,2,para2);
         reference_reset_symbol(href,l,0,1);
         { TODO: using RSP is correct only while the stack is fixed!!
           (true now, but will change if/when allocating from stack is implemented) }