mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-10 01:26:03 +02:00
m68k: use the existing g_call infrastructur to handle the register allocation in the helpers
git-svn-id: trunk@33589 -
This commit is contained in:
parent
0b7464e4cd
commit
aa8b45904e
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user