Bladeren bron

* call method pointers located in registers correctly

git-svn-id: trunk@22343 -
florian 13 jaren geleden
bovenliggende
commit
4514a55ec6
1 gewijzigde bestanden met toevoegingen van 2 en 0 verwijderingen
  1. 2 0
      compiler/ncgcal.pas

+ 2 - 0
compiler/ncgcal.pas

@@ -889,6 +889,8 @@ implementation
                 watch out with procedure of object) }
                 watch out with procedure of object) }
               if right.location.loc in [LOC_REFERENCE,LOC_CREFERENCE] then
               if right.location.loc in [LOC_REFERENCE,LOC_CREFERENCE] then
                 cg.a_load_ref_reg(current_asmdata.CurrAsmList,OS_ADDR,OS_ADDR,right.location.reference,pvreg)
                 cg.a_load_ref_reg(current_asmdata.CurrAsmList,OS_ADDR,OS_ADDR,right.location.reference,pvreg)
+              else if right.location.loc in [LOC_REGISTER,LOC_CREGISTER] then
+                hlcg.a_load_reg_reg(current_asmdata.CurrAsmList,voidpointertype,voidpointertype,right.location.register,pvreg)
               else
               else
                 hlcg.a_load_loc_reg(current_asmdata.CurrAsmList,voidpointertype,voidpointertype,right.location,pvreg);
                 hlcg.a_load_loc_reg(current_asmdata.CurrAsmList,voidpointertype,voidpointertype,right.location,pvreg);
               location_freetemp(current_asmdata.CurrAsmList,right.location);
               location_freetemp(current_asmdata.CurrAsmList,right.location);