Przeglądaj źródła

* optimization in tcgz80.a_load_const_cgpara for pushing longints, where the low 16 bits are equal
to the high 16 bits (works for e.g. 0)

git-svn-id: branches/z80@45126 -

nickysn 5 lat temu
rodzic
commit
5a5a8602d3
1 zmienionych plików z 2 dodań i 1 usunięć
  1. 2 1
      compiler/z80/cgcpu.pas

+ 2 - 1
compiler/z80/cgcpu.pas

@@ -394,7 +394,8 @@ unit cgcpu;
                    getcpuregister(list,NR_IY);
                    list.Concat(taicpu.op_reg_const(A_LD,NR_IY,Word(a shr 16)));
                    list.Concat(taicpu.op_reg(A_PUSH,NR_IY));
-                   list.Concat(taicpu.op_reg_const(A_LD,NR_IY,Word(a)));
+                   if Word(a)<>Word(a shr 16) then
+                     list.Concat(taicpu.op_reg_const(A_LD,NR_IY,Word(a)));
                    list.Concat(taicpu.op_reg(A_PUSH,NR_IY));
                    ungetcpuregister(list,NR_IY);
                  end;