Procházet zdrojové kódy

further fix for tw10233 on powerpc(64) platforms:
* do not overwrite left.location.register in second_int_to_bool() but use temp register when converting input value to C style truth values (i.e. 0,-1). With -Or enabled this register will be reused not containing the correct value anymore.

git-svn-id: trunk@10729 -

tom_at_work před 17 roky
rodič
revize
d84e8adc77
1 změnil soubory, kde provedl 2 přidání a 1 odebrání
  1. 2 1
      compiler/ppcgen/ngppccnv.pas

+ 2 - 1
compiler/ppcgen/ngppccnv.pas

@@ -132,6 +132,7 @@ implementation
                   end
                 else
                   begin
+                    hreg1:=cg.getintregister(current_asmdata.CurrAsmList,OS_INT);
 {$ifndef cpu64bitalu}
                      if left.location.size in [OS_64,OS_S64] then
                        begin
@@ -140,7 +141,7 @@ implementation
                        end
                      else
 {$endif not cpu64bitalu}
-                       hreg1 := left.location.register;
+                       cg.a_load_reg_reg(current_asmdata.CurrAsmList,opsize,opsize,left.location.register,hreg1);
                   end;
                 hreg2 := cg.getintregister(current_asmdata.CurrAsmList,OS_INT);