|
@@ -87,7 +87,6 @@ type
|
|
procedure g_proc_exit(list: tasmlist; parasize: longint; nostackframe: boolean); override;
|
|
procedure g_proc_exit(list: tasmlist; parasize: longint; nostackframe: boolean); override;
|
|
procedure g_concatcopy(list: tasmlist; const Source, dest: treference; len: tcgint); override;
|
|
procedure g_concatcopy(list: tasmlist; const Source, dest: treference; len: tcgint); override;
|
|
procedure g_concatcopy_unaligned(list: tasmlist; const Source, dest: treference; len: tcgint); override;
|
|
procedure g_concatcopy_unaligned(list: tasmlist; const Source, dest: treference; len: tcgint); override;
|
|
- procedure g_concatcopy_move(list: tasmlist; const Source, dest: treference; len: tcgint);
|
|
|
|
procedure g_adjust_self_value(list:TAsmList;procdef: tprocdef;ioffset: tcgint); override;
|
|
procedure g_adjust_self_value(list:TAsmList;procdef: tprocdef;ioffset: tcgint); override;
|
|
procedure g_profilecode(list: TAsmList);override;
|
|
procedure g_profilecode(list: TAsmList);override;
|
|
end;
|
|
end;
|
|
@@ -1528,38 +1527,6 @@ begin
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
-{ ************* concatcopy ************ }
|
|
|
|
-
|
|
|
|
-procedure TCGMIPS.g_concatcopy_move(list: tasmlist; const Source, dest: treference; len: tcgint);
|
|
|
|
-var
|
|
|
|
- paraloc1, paraloc2, paraloc3: TCGPara;
|
|
|
|
- pd: tprocdef;
|
|
|
|
-begin
|
|
|
|
- pd:=search_system_proc('MOVE');
|
|
|
|
- paraloc1.init;
|
|
|
|
- paraloc2.init;
|
|
|
|
- paraloc3.init;
|
|
|
|
- paramanager.getcgtempparaloc(list, pd, 1, paraloc1);
|
|
|
|
- paramanager.getcgtempparaloc(list, pd, 2, paraloc2);
|
|
|
|
- paramanager.getcgtempparaloc(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);
|
|
|
|
- paramanager.freecgpara(list, paraloc3);
|
|
|
|
- paramanager.freecgpara(list, paraloc2);
|
|
|
|
- paramanager.freecgpara(list, paraloc1);
|
|
|
|
- alloccpuregisters(list, R_INTREGISTER, paramanager.get_volatile_registers_int(pocall_default));
|
|
|
|
- alloccpuregisters(list, R_FPUREGISTER, paramanager.get_volatile_registers_fpu(pocall_default));
|
|
|
|
- a_call_name(list, 'FPC_MOVE', false);
|
|
|
|
- dealloccpuregisters(list, R_FPUREGISTER, paramanager.get_volatile_registers_fpu(pocall_default));
|
|
|
|
- dealloccpuregisters(list, R_INTREGISTER, paramanager.get_volatile_registers_int(pocall_default));
|
|
|
|
- paraloc3.done;
|
|
|
|
- paraloc2.done;
|
|
|
|
- paraloc1.done;
|
|
|
|
-end;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
procedure TCGMIPS.g_concatcopy(list: tasmlist; const Source, dest: treference; len: tcgint);
|
|
procedure TCGMIPS.g_concatcopy(list: tasmlist; const Source, dest: treference; len: tcgint);
|
|
var
|
|
var
|
|
tmpreg1, hreg, countreg: TRegister;
|
|
tmpreg1, hreg, countreg: TRegister;
|