|
@@ -3296,7 +3296,7 @@ implementation
|
|
current_asmdata.getjumplabel(oklabel);
|
|
current_asmdata.getjumplabel(oklabel);
|
|
a_cmp_const_reg_label(list,selftype,OC_NE,0,reg,oklabel);
|
|
a_cmp_const_reg_label(list,selftype,OC_NE,0,reg,oklabel);
|
|
cgpara1.init;
|
|
cgpara1.init;
|
|
- paramanager.getintparaloc(list,pd,1,cgpara1);
|
|
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,1,cgpara1);
|
|
a_load_const_cgpara(list,s32inttype,aint(210),cgpara1);
|
|
a_load_const_cgpara(list,s32inttype,aint(210),cgpara1);
|
|
paramanager.freecgpara(list,cgpara1);
|
|
paramanager.freecgpara(list,cgpara1);
|
|
g_call_system_proc(list,pd,[@cgpara1],nil).resetiftemp;
|
|
g_call_system_proc(list,pd,[@cgpara1],nil).resetiftemp;
|
|
@@ -3329,9 +3329,9 @@ implementation
|
|
cgpara1.init;
|
|
cgpara1.init;
|
|
cgpara2.init;
|
|
cgpara2.init;
|
|
cgpara3.init;
|
|
cgpara3.init;
|
|
- paramanager.getintparaloc(list,pd,1,cgpara1);
|
|
|
|
- paramanager.getintparaloc(list,pd,2,cgpara2);
|
|
|
|
- paramanager.getintparaloc(list,pd,3,cgpara3);
|
|
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,1,cgpara1);
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,2,cgpara2);
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,3,cgpara3);
|
|
if pd.is_pushleftright then
|
|
if pd.is_pushleftright then
|
|
begin
|
|
begin
|
|
a_loadaddr_ref_cgpara(list,strdef,dest,cgpara1);
|
|
a_loadaddr_ref_cgpara(list,strdef,dest,cgpara1);
|
|
@@ -3361,8 +3361,8 @@ implementation
|
|
pd:=search_system_proc('fpc_variant_copy_overwrite');
|
|
pd:=search_system_proc('fpc_variant_copy_overwrite');
|
|
cgpara1.init;
|
|
cgpara1.init;
|
|
cgpara2.init;
|
|
cgpara2.init;
|
|
- paramanager.getintparaloc(list,pd,1,cgpara1);
|
|
|
|
- paramanager.getintparaloc(list,pd,2,cgpara2);
|
|
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,1,cgpara1);
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,2,cgpara2);
|
|
if pd.is_pushleftright then
|
|
if pd.is_pushleftright then
|
|
begin
|
|
begin
|
|
a_loadaddr_ref_cgpara(list,vardef,source,cgpara1);
|
|
a_loadaddr_ref_cgpara(list,vardef,source,cgpara1);
|
|
@@ -3405,7 +3405,7 @@ implementation
|
|
if incrfunc<>'' then
|
|
if incrfunc<>'' then
|
|
begin
|
|
begin
|
|
pd:=search_system_proc(incrfunc);
|
|
pd:=search_system_proc(incrfunc);
|
|
- paramanager.getintparaloc(list,pd,1,cgpara1);
|
|
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,1,cgpara1);
|
|
{ widestrings aren't ref. counted on all platforms so we need the address
|
|
{ widestrings aren't ref. counted on all platforms so we need the address
|
|
to create a real copy }
|
|
to create a real copy }
|
|
if is_widestring(t) then
|
|
if is_widestring(t) then
|
|
@@ -3419,8 +3419,8 @@ implementation
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
pd:=search_system_proc('fpc_addref');
|
|
pd:=search_system_proc('fpc_addref');
|
|
- paramanager.getintparaloc(list,pd,1,cgpara1);
|
|
|
|
- paramanager.getintparaloc(list,pd,2,cgpara2);
|
|
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,1,cgpara1);
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,2,cgpara2);
|
|
if is_open_array(t) then
|
|
if is_open_array(t) then
|
|
InternalError(201103054);
|
|
InternalError(201103054);
|
|
reference_reset_symbol(href,RTTIWriter.get_rtti_label(t,initrtti,def_needs_indirect(t)),0,sizeof(pint),[]);
|
|
reference_reset_symbol(href,RTTIWriter.get_rtti_label(t,initrtti,def_needs_indirect(t)),0,sizeof(pint),[]);
|
|
@@ -3459,7 +3459,7 @@ implementation
|
|
else if t.typ=variantdef then
|
|
else if t.typ=variantdef then
|
|
begin
|
|
begin
|
|
pd:=search_system_proc('fpc_variant_init');
|
|
pd:=search_system_proc('fpc_variant_init');
|
|
- paramanager.getintparaloc(list,pd,1,cgpara1);
|
|
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,1,cgpara1);
|
|
a_loadaddr_ref_cgpara(list,t,ref,cgpara1);
|
|
a_loadaddr_ref_cgpara(list,t,ref,cgpara1);
|
|
paramanager.freecgpara(list,cgpara1);
|
|
paramanager.freecgpara(list,cgpara1);
|
|
g_call_system_proc(list,pd,[@cgpara1],nil).resetiftemp;
|
|
g_call_system_proc(list,pd,[@cgpara1],nil).resetiftemp;
|
|
@@ -3469,8 +3469,8 @@ implementation
|
|
if is_open_array(t) then
|
|
if is_open_array(t) then
|
|
InternalError(201103052);
|
|
InternalError(201103052);
|
|
pd:=search_system_proc('fpc_initialize');
|
|
pd:=search_system_proc('fpc_initialize');
|
|
- paramanager.getintparaloc(list,pd,1,cgpara1);
|
|
|
|
- paramanager.getintparaloc(list,pd,2,cgpara2);
|
|
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,1,cgpara1);
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,2,cgpara2);
|
|
reference_reset_symbol(href,RTTIWriter.get_rtti_label(t,initrtti,def_needs_indirect(t)),0,sizeof(pint),[]);
|
|
reference_reset_symbol(href,RTTIWriter.get_rtti_label(t,initrtti,def_needs_indirect(t)),0,sizeof(pint),[]);
|
|
if pd.is_pushleftright then
|
|
if pd.is_pushleftright then
|
|
begin
|
|
begin
|
|
@@ -3519,8 +3519,8 @@ implementation
|
|
pd:=search_system_proc('fpc_dynarray_clear')
|
|
pd:=search_system_proc('fpc_dynarray_clear')
|
|
else
|
|
else
|
|
pd:=search_system_proc('fpc_finalize');
|
|
pd:=search_system_proc('fpc_finalize');
|
|
- paramanager.getintparaloc(list,pd,1,cgpara1);
|
|
|
|
- paramanager.getintparaloc(list,pd,2,cgpara2);
|
|
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,1,cgpara1);
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,2,cgpara2);
|
|
reference_reset_symbol(href,RTTIWriter.get_rtti_label(t,initrtti,def_needs_indirect(t)),0,sizeof(pint),[]);
|
|
reference_reset_symbol(href,RTTIWriter.get_rtti_label(t,initrtti,def_needs_indirect(t)),0,sizeof(pint),[]);
|
|
if pd.is_pushleftright then
|
|
if pd.is_pushleftright then
|
|
begin
|
|
begin
|
|
@@ -3541,7 +3541,7 @@ implementation
|
|
end;
|
|
end;
|
|
pd:=search_system_proc(decrfunc);
|
|
pd:=search_system_proc(decrfunc);
|
|
cgpara1.init;
|
|
cgpara1.init;
|
|
- paramanager.getintparaloc(list,pd,1,cgpara1);
|
|
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,1,cgpara1);
|
|
a_loadaddr_ref_cgpara(list,t,ref,cgpara1);
|
|
a_loadaddr_ref_cgpara(list,t,ref,cgpara1);
|
|
paramanager.freecgpara(list,cgpara1);
|
|
paramanager.freecgpara(list,cgpara1);
|
|
g_call_system_proc(list,pd,[@cgpara1],nil).resetiftemp;
|
|
g_call_system_proc(list,pd,[@cgpara1],nil).resetiftemp;
|
|
@@ -3559,9 +3559,9 @@ implementation
|
|
cgpara2.init;
|
|
cgpara2.init;
|
|
cgpara3.init;
|
|
cgpara3.init;
|
|
pd:=search_system_proc(name);
|
|
pd:=search_system_proc(name);
|
|
- paramanager.getintparaloc(list,pd,1,cgpara1);
|
|
|
|
- paramanager.getintparaloc(list,pd,2,cgpara2);
|
|
|
|
- paramanager.getintparaloc(list,pd,3,cgpara3);
|
|
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,1,cgpara1);
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,2,cgpara2);
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,3,cgpara3);
|
|
|
|
|
|
reference_reset_symbol(href,RTTIWriter.get_rtti_label(t,initrtti,def_needs_indirect(t)),0,sizeof(pint),[]);
|
|
reference_reset_symbol(href,RTTIWriter.get_rtti_label(t,initrtti,def_needs_indirect(t)),0,sizeof(pint),[]);
|
|
{ if calling convention is left to right, push parameters 1 and 2 }
|
|
{ if calling convention is left to right, push parameters 1 and 2 }
|
|
@@ -3857,7 +3857,7 @@ implementation
|
|
{ do getmem call }
|
|
{ do getmem call }
|
|
pd:=search_system_proc('fpc_getmem');
|
|
pd:=search_system_proc('fpc_getmem');
|
|
cgpara1.init;
|
|
cgpara1.init;
|
|
- paramanager.getintparaloc(list,pd,1,cgpara1);
|
|
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,1,cgpara1);
|
|
a_load_reg_cgpara(list,sinttype,sizereg,cgpara1);
|
|
a_load_reg_cgpara(list,sinttype,sizereg,cgpara1);
|
|
paramanager.freecgpara(list,cgpara1);
|
|
paramanager.freecgpara(list,cgpara1);
|
|
getmemres:=g_call_system_proc(list,pd,[@cgpara1],ptrarrdef);
|
|
getmemres:=g_call_system_proc(list,pd,[@cgpara1],ptrarrdef);
|
|
@@ -3872,9 +3872,9 @@ implementation
|
|
cgpara1.init;
|
|
cgpara1.init;
|
|
cgpara2.init;
|
|
cgpara2.init;
|
|
cgpara3.init;
|
|
cgpara3.init;
|
|
- paramanager.getintparaloc(list,pd,1,cgpara1);
|
|
|
|
- paramanager.getintparaloc(list,pd,2,cgpara2);
|
|
|
|
- paramanager.getintparaloc(list,pd,3,cgpara3);
|
|
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,1,cgpara1);
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,2,cgpara2);
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,3,cgpara3);
|
|
if pd.is_pushleftright then
|
|
if pd.is_pushleftright then
|
|
begin
|
|
begin
|
|
{ load source }
|
|
{ load source }
|
|
@@ -3911,7 +3911,7 @@ implementation
|
|
{ do freemem call }
|
|
{ do freemem call }
|
|
pd:=search_system_proc('fpc_freemem');
|
|
pd:=search_system_proc('fpc_freemem');
|
|
cgpara1.init;
|
|
cgpara1.init;
|
|
- paramanager.getintparaloc(list,pd,1,cgpara1);
|
|
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,1,cgpara1);
|
|
{ load source }
|
|
{ load source }
|
|
a_load_loc_cgpara(list,cpointerdef.getreusable(arrdef),l,cgpara1);
|
|
a_load_loc_cgpara(list,cpointerdef.getreusable(arrdef),l,cgpara1);
|
|
paramanager.freecgpara(list,cgpara1);
|
|
paramanager.freecgpara(list,cgpara1);
|
|
@@ -5367,7 +5367,7 @@ implementation
|
|
begin
|
|
begin
|
|
pd:=search_system_proc('fpc_stackcheck');
|
|
pd:=search_system_proc('fpc_stackcheck');
|
|
paraloc1.init;
|
|
paraloc1.init;
|
|
- paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
|
|
|
|
|
|
+ paramanager.getcgtempparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
|
|
hlcg.a_load_const_cgpara(list,paraloc1.def,current_procinfo.calc_stackframe_size,paraloc1);
|
|
hlcg.a_load_const_cgpara(list,paraloc1.def,current_procinfo.calc_stackframe_size,paraloc1);
|
|
paramanager.freecgpara(list,paraloc1);
|
|
paramanager.freecgpara(list,paraloc1);
|
|
paraloc1.done;
|
|
paraloc1.done;
|
|
@@ -5382,7 +5382,7 @@ implementation
|
|
paraloc1.init;
|
|
paraloc1.init;
|
|
{ The parameter to fpc_stackcheck is loaded seperately via
|
|
{ The parameter to fpc_stackcheck is loaded seperately via
|
|
gen_stack_check_size_para() }
|
|
gen_stack_check_size_para() }
|
|
- paramanager.getintparaloc(list,pd,1,paraloc1);
|
|
|
|
|
|
+ paramanager.getcgtempparaloc(list,pd,1,paraloc1);
|
|
paramanager.freecgpara(list,paraloc1);
|
|
paramanager.freecgpara(list,paraloc1);
|
|
{ Call the helper }
|
|
{ Call the helper }
|
|
g_call_system_proc(list,pd,[@paraloc1],nil).resetiftemp;
|
|
g_call_system_proc(list,pd,[@paraloc1],nil).resetiftemp;
|