Sfoglia il codice sorgente

Fix parameter loading of FPC_CHECKPOINTER to handle correctly references with offsets

git-svn-id: trunk@34743 -
pierre 8 anni fa
parent
commit
abaea9959f
2 ha cambiato i file con 3 aggiunte e 3 eliminazioni
  1. 1 1
      compiler/i8086/n8086mem.pas
  2. 2 2
      compiler/ncgmem.pas

+ 1 - 1
compiler/i8086/n8086mem.pas

@@ -177,7 +177,7 @@ implementation
                pd:=tprocdef(tprocsym(sym).ProcdefList[0]);
                paraloc1.init;
                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);
                paraloc1.done;
                hlcg.allocallcpuregisters(current_asmdata.CurrAsmList);

+ 2 - 2
compiler/ncgmem.pas

@@ -313,7 +313,7 @@ implementation
             pd:=tprocdef(tprocsym(sym).ProcdefList[0]);
             paraloc1.init;
             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);
             paraloc1.done;
             hlcg.allocallcpuregisters(current_asmdata.CurrAsmList);
@@ -403,7 +403,7 @@ implementation
                       internalerror(2012010602);
                     pd:=tprocdef(tprocsym(sym).ProcdefList[0]);
                     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);
                     hlcg.allocallcpuregisters(current_asmdata.CurrAsmList);
                     hlcg.a_call_name(current_asmdata.CurrAsmList,pd,'FPC_CHECKPOINTER',[@paraloc1],nil,false);