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

m68k: use the existing g_call infrastructur to handle the register allocation in the helpers

git-svn-id: trunk@33589 -
Károly Balogh 9 жил өмнө
parent
commit
aa8b45904e
1 өөрчлөгдсөн 7 нэмэгдсэн , 19 устгасан
  1. 7 19
      compiler/m68k/cgcpu.pas

+ 7 - 19
compiler/m68k/cgcpu.pas

@@ -559,15 +559,9 @@ unit cgcpu;
         paramanager.freecgpara(list,paraloc3);
         paramanager.freecgpara(list,paraloc2);
         paramanager.freecgpara(list,paraloc1);
-        if current_settings.fputype in [fpu_68881,fpu_coldfire] then
-          alloccpuregisters(list,R_FPUREGISTER,paramanager.get_volatile_registers_fpu(pocall_default));
-        alloccpuregisters(list,R_ADDRESSREGISTER,paramanager.get_volatile_registers_address(pocall_default));
-        alloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
-        a_call_name(list,name,false);
-        dealloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
-        dealloccpuregisters(list,R_ADDRESSREGISTER,paramanager.get_volatile_registers_address(pocall_default));
-        if current_settings.fputype in [fpu_68881,fpu_coldfire] then
-          dealloccpuregisters(list,R_FPUREGISTER,paramanager.get_volatile_registers_fpu(pocall_default));
+
+        g_call(list,name);
+
         cg.a_reg_alloc(list,NR_FUNCTION_RESULT_REG);
         cg.a_load_reg_reg(list,OS_32,OS_32,NR_FUNCTION_RESULT_REG,reg);
         paraloc3.done;
@@ -581,7 +575,7 @@ unit cgcpu;
         paraloc1,paraloc2,paraloc3 : tcgpara;
         pd : tprocdef;
       begin
-       pd:=search_system_proc(name);
+        pd:=search_system_proc(name);
         paraloc1.init;
         paraloc2.init;
         paraloc3.init;
@@ -594,15 +588,9 @@ unit cgcpu;
         paramanager.freecgpara(list,paraloc3);
         paramanager.freecgpara(list,paraloc2);
         paramanager.freecgpara(list,paraloc1);
-        if current_settings.fputype in [fpu_68881,fpu_coldfire] then
-          alloccpuregisters(list,R_FPUREGISTER,paramanager.get_volatile_registers_fpu(pocall_default));
-        alloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
-        alloccpuregisters(list,R_ADDRESSREGISTER,paramanager.get_volatile_registers_address(pocall_default));
-        a_call_name(list,name,false);
-        dealloccpuregisters(list,R_ADDRESSREGISTER,paramanager.get_volatile_registers_address(pocall_default));
-        dealloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
-        if current_settings.fputype in [fpu_68881,fpu_coldfire] then
-          dealloccpuregisters(list,R_FPUREGISTER,paramanager.get_volatile_registers_fpu(pocall_default));
+
+        g_call(list,name);
+
         cg.a_reg_alloc(list,NR_FUNCTION_RESULT_REG);
         cg.a_load_reg_reg(list,OS_32,OS_32,NR_FUNCTION_RESULT_REG,reg2);
         paraloc3.done;