mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 16:09:25 +02:00
Fix parameter loading of FPC_CHECKPOINTER to handle correctly references with offsets
git-svn-id: trunk@34743 -
This commit is contained in:
parent
f9e7600fe3
commit
abaea9959f
@ -177,7 +177,7 @@ implementation
|
|||||||
pd:=tprocdef(tprocsym(sym).ProcdefList[0]);
|
pd:=tprocdef(tprocsym(sym).ProcdefList[0]);
|
||||||
paraloc1.init;
|
paraloc1.init;
|
||||||
paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
|
paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
|
||||||
hlcg.a_load_reg_cgpara(current_asmdata.CurrAsmList,resultdef,location.reference.base,paraloc1);
|
hlcg.a_loadaddr_ref_cgpara(current_asmdata.CurrAsmList,resultdef,location.reference,paraloc1);
|
||||||
paramanager.freecgpara(current_asmdata.CurrAsmList,paraloc1);
|
paramanager.freecgpara(current_asmdata.CurrAsmList,paraloc1);
|
||||||
paraloc1.done;
|
paraloc1.done;
|
||||||
hlcg.allocallcpuregisters(current_asmdata.CurrAsmList);
|
hlcg.allocallcpuregisters(current_asmdata.CurrAsmList);
|
||||||
|
@ -313,7 +313,7 @@ implementation
|
|||||||
pd:=tprocdef(tprocsym(sym).ProcdefList[0]);
|
pd:=tprocdef(tprocsym(sym).ProcdefList[0]);
|
||||||
paraloc1.init;
|
paraloc1.init;
|
||||||
paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
|
paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
|
||||||
hlcg.a_load_reg_cgpara(current_asmdata.CurrAsmList,left.resultdef,location.reference.base,paraloc1);
|
hlcg.a_loadaddr_ref_cgpara(current_asmdata.CurrAsmList,left.resultdef,location.reference,paraloc1);
|
||||||
paramanager.freecgpara(current_asmdata.CurrAsmList,paraloc1);
|
paramanager.freecgpara(current_asmdata.CurrAsmList,paraloc1);
|
||||||
paraloc1.done;
|
paraloc1.done;
|
||||||
hlcg.allocallcpuregisters(current_asmdata.CurrAsmList);
|
hlcg.allocallcpuregisters(current_asmdata.CurrAsmList);
|
||||||
@ -403,7 +403,7 @@ implementation
|
|||||||
internalerror(2012010602);
|
internalerror(2012010602);
|
||||||
pd:=tprocdef(tprocsym(sym).ProcdefList[0]);
|
pd:=tprocdef(tprocsym(sym).ProcdefList[0]);
|
||||||
paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
|
paramanager.getintparaloc(current_asmdata.CurrAsmList,pd,1,paraloc1);
|
||||||
hlcg.a_load_reg_cgpara(current_asmdata.CurrAsmList,left.resultdef,location.reference.base,paraloc1);
|
hlcg.a_loadaddr_ref_cgpara(current_asmdata.CurrAsmList,left.resultdef,location.reference,paraloc1);
|
||||||
paramanager.freecgpara(current_asmdata.CurrAsmList,paraloc1);
|
paramanager.freecgpara(current_asmdata.CurrAsmList,paraloc1);
|
||||||
hlcg.allocallcpuregisters(current_asmdata.CurrAsmList);
|
hlcg.allocallcpuregisters(current_asmdata.CurrAsmList);
|
||||||
hlcg.a_call_name(current_asmdata.CurrAsmList,pd,'FPC_CHECKPOINTER',[@paraloc1],nil,false);
|
hlcg.a_call_name(current_asmdata.CurrAsmList,pd,'FPC_CHECKPOINTER',[@paraloc1],nil,false);
|
||||||
|
Loading…
Reference in New Issue
Block a user