mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-04 19:50:54 +02:00
* length parameter for copyvaluearray changed to tlocation
This commit is contained in:
parent
d288070a7a
commit
8b3e00244f
@ -79,7 +79,7 @@ unit cgcpu;
|
|||||||
|
|
||||||
procedure g_flags2reg(list: taasmoutput; size: TCgSize; const f: TResFlags; reg: TRegister); override;
|
procedure g_flags2reg(list: taasmoutput; size: TCgSize; const f: TResFlags; reg: TRegister); override;
|
||||||
|
|
||||||
procedure g_copyvaluepara_openarray(list : taasmoutput;const ref, lenref:treference;elesize:aint);override;
|
procedure g_copyvaluepara_openarray(list : taasmoutput;const ref:treference;const lenloc:tlocation;elesize:aint);override;
|
||||||
procedure g_proc_entry(list : taasmoutput;localsize : longint;nostackframe:boolean);override;
|
procedure g_proc_entry(list : taasmoutput;localsize : longint;nostackframe:boolean);override;
|
||||||
procedure g_proc_exit(list : taasmoutput;parasize : longint;nostackframe:boolean); override;
|
procedure g_proc_exit(list : taasmoutput;parasize : longint;nostackframe:boolean); override;
|
||||||
|
|
||||||
@ -837,7 +837,7 @@ unit cgcpu;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tcgarm.g_copyvaluepara_openarray(list : taasmoutput;const ref, lenref:treference;elesize:aint);
|
procedure tcgarm.g_copyvaluepara_openarray(list : taasmoutput;const ref:treference;const lenloc:tlocation;elesize:aint);
|
||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1324,7 +1324,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.54 2004-07-03 19:29:14 florian
|
Revision 1.55 2004-10-11 15:46:45 peter
|
||||||
|
* length parameter for copyvaluearray changed to tlocation
|
||||||
|
|
||||||
|
Revision 1.54 2004/07/03 19:29:14 florian
|
||||||
* fixed problem with cpu interferences
|
* fixed problem with cpu interferences
|
||||||
|
|
||||||
Revision 1.53 2004/06/20 08:55:31 florian
|
Revision 1.53 2004/06/20 08:55:31 florian
|
||||||
|
@ -384,7 +384,7 @@ unit cgobj;
|
|||||||
procedure g_overflowcheck(list: taasmoutput; const Loc:tlocation; def:tdef); virtual;abstract;
|
procedure g_overflowcheck(list: taasmoutput; const Loc:tlocation; def:tdef); virtual;abstract;
|
||||||
procedure g_overflowCheck_loc(List:TAasmOutput;const Loc:TLocation;def:TDef;ovloc : tlocation);virtual;
|
procedure g_overflowCheck_loc(List:TAasmOutput;const Loc:TLocation;def:TDef;ovloc : tlocation);virtual;
|
||||||
|
|
||||||
procedure g_copyvaluepara_openarray(list : taasmoutput;const ref, lenref:treference;elesize:aint);virtual;
|
procedure g_copyvaluepara_openarray(list : taasmoutput;const ref:treference;const lenloc:tlocation;elesize:aint);virtual;
|
||||||
procedure g_releasevaluepara_openarray(list : taasmoutput;const ref:treference);virtual;
|
procedure g_releasevaluepara_openarray(list : taasmoutput;const ref:treference);virtual;
|
||||||
|
|
||||||
{# Emits instructions when compilation is done in profile
|
{# Emits instructions when compilation is done in profile
|
||||||
@ -1888,7 +1888,7 @@ implementation
|
|||||||
Entry/Exit Code Functions
|
Entry/Exit Code Functions
|
||||||
*****************************************************************************}
|
*****************************************************************************}
|
||||||
|
|
||||||
procedure tcg.g_copyvaluepara_openarray(list : taasmoutput;const ref, lenref:treference;elesize:aint);
|
procedure tcg.g_copyvaluepara_openarray(list : taasmoutput;const ref:treference;const lenloc:tlocation;elesize:aint);
|
||||||
var
|
var
|
||||||
sizereg,sourcereg,destreg : tregister;
|
sizereg,sourcereg,destreg : tregister;
|
||||||
paraloc1,paraloc2,paraloc3 : TCGPara;
|
paraloc1,paraloc2,paraloc3 : TCGPara;
|
||||||
@ -1902,7 +1902,7 @@ implementation
|
|||||||
destreg:=getintregister(list,OS_ADDR);
|
destreg:=getintregister(list,OS_ADDR);
|
||||||
|
|
||||||
{ calculate necessary memory }
|
{ calculate necessary memory }
|
||||||
a_load_ref_reg(list,OS_INT,OS_INT,lenref,sizereg);
|
a_load_loc_reg(list,OS_INT,lenloc,sizereg);
|
||||||
a_op_const_reg(list,OP_ADD,OS_INT,1,sizereg);
|
a_op_const_reg(list,OP_ADD,OS_INT,1,sizereg);
|
||||||
a_op_const_reg(list,OP_IMUL,OS_INT,elesize,sizereg);
|
a_op_const_reg(list,OP_IMUL,OS_INT,elesize,sizereg);
|
||||||
{ load source }
|
{ load source }
|
||||||
@ -2084,7 +2084,10 @@ finalization
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.176 2004-10-10 20:31:48 peter
|
Revision 1.177 2004-10-11 15:46:45 peter
|
||||||
|
* length parameter for copyvaluearray changed to tlocation
|
||||||
|
|
||||||
|
Revision 1.176 2004/10/10 20:31:48 peter
|
||||||
* concatcopy_unaligned maps by default to concatcopy, sparc will
|
* concatcopy_unaligned maps by default to concatcopy, sparc will
|
||||||
override it with call to fpc_move
|
override it with call to fpc_move
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ unit cgcpu;
|
|||||||
procedure g_save_all_registers(list : taasmoutput);override;
|
procedure g_save_all_registers(list : taasmoutput);override;
|
||||||
procedure g_restore_all_registers(list : taasmoutput;const funcretparaloc:tcgpara);override;
|
procedure g_restore_all_registers(list : taasmoutput;const funcretparaloc:tcgpara);override;
|
||||||
procedure g_proc_exit(list : taasmoutput;parasize:longint;nostackframe:boolean);override;
|
procedure g_proc_exit(list : taasmoutput;parasize:longint;nostackframe:boolean);override;
|
||||||
procedure g_copyvaluepara_openarray(list : taasmoutput;const ref, lenref:treference;elesize:aint);override;
|
procedure g_copyvaluepara_openarray(list : taasmoutput;const ref:treference;const lenloc:tlocation;elesize:aint);override;
|
||||||
|
|
||||||
procedure g_exception_reason_save(list : taasmoutput; const href : treference);override;
|
procedure g_exception_reason_save(list : taasmoutput; const href : treference);override;
|
||||||
procedure g_exception_reason_save_const(list : taasmoutput; const href : treference; a: aint);override;
|
procedure g_exception_reason_save_const(list : taasmoutput; const href : treference; a: aint);override;
|
||||||
@ -299,7 +299,7 @@ unit cgcpu;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tcg386.g_copyvaluepara_openarray(list : taasmoutput;const ref, lenref:treference;elesize:aint);
|
procedure tcg386.g_copyvaluepara_openarray(list : taasmoutput;const ref:treference;const lenloc:tlocation;elesize:aint);
|
||||||
var
|
var
|
||||||
power,len : longint;
|
power,len : longint;
|
||||||
opsize : topsize;
|
opsize : topsize;
|
||||||
@ -309,7 +309,7 @@ unit cgcpu;
|
|||||||
begin
|
begin
|
||||||
{ get stack space }
|
{ get stack space }
|
||||||
getcpuregister(list,NR_EDI);
|
getcpuregister(list,NR_EDI);
|
||||||
list.concat(Taicpu.op_ref_reg(A_MOV,S_L,lenref,NR_EDI));
|
a_load_loc_reg(list,OS_INT,lenloc,NR_EDI);
|
||||||
list.concat(Taicpu.op_reg(A_INC,S_L,NR_EDI));
|
list.concat(Taicpu.op_reg(A_INC,S_L,NR_EDI));
|
||||||
if (elesize<>1) then
|
if (elesize<>1) then
|
||||||
begin
|
begin
|
||||||
@ -338,7 +338,7 @@ unit cgcpu;
|
|||||||
ungetcpuregister(list,NR_EDI);
|
ungetcpuregister(list,NR_EDI);
|
||||||
{ now reload EDI }
|
{ now reload EDI }
|
||||||
getcpuregister(list,NR_EDI);
|
getcpuregister(list,NR_EDI);
|
||||||
list.concat(Taicpu.op_ref_reg(A_MOV,S_L,lenref,NR_EDI));
|
a_load_loc_reg(list,OS_INT,lenloc,NR_EDI);
|
||||||
list.concat(Taicpu.op_reg(A_INC,S_L,NR_EDI));
|
list.concat(Taicpu.op_reg(A_INC,S_L,NR_EDI));
|
||||||
|
|
||||||
if (elesize<>1) then
|
if (elesize<>1) then
|
||||||
@ -362,7 +362,7 @@ unit cgcpu;
|
|||||||
getcpuregister(list,NR_ESI);
|
getcpuregister(list,NR_ESI);
|
||||||
|
|
||||||
{ load count }
|
{ load count }
|
||||||
a_load_ref_reg(list,OS_INT,OS_INT,lenref,NR_ECX);
|
a_load_loc_reg(list,OS_INT,lenloc,NR_ECX);
|
||||||
|
|
||||||
{ load source }
|
{ load source }
|
||||||
a_load_ref_reg(list,OS_INT,OS_INT,ref,NR_ESI);
|
a_load_ref_reg(list,OS_INT,OS_INT,ref,NR_ESI);
|
||||||
@ -556,7 +556,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.54 2004-10-05 20:41:01 peter
|
Revision 1.55 2004-10-11 15:46:45 peter
|
||||||
|
* length parameter for copyvaluearray changed to tlocation
|
||||||
|
|
||||||
|
Revision 1.54 2004/10/05 20:41:01 peter
|
||||||
* more spilling rewrites
|
* more spilling rewrites
|
||||||
|
|
||||||
Revision 1.53 2004/09/25 14:23:54 peter
|
Revision 1.53 2004/09/25 14:23:54 peter
|
||||||
|
Loading…
Reference in New Issue
Block a user