Kaynağa Gözat

m68k: in fmove + op + fmove optimizations, allow the ops precision to be different to the fmoves

git-svn-id: trunk@34985 -
Károly Balogh 8 yıl önce
ebeveyn
işleme
a595877da3
1 değiştirilmiş dosya ile 3 ekleme ve 2 silme
  1. 3 2
      compiler/m68k/aoptcpu.pas

+ 3 - 2
compiler/m68k/aoptcpu.pas

@@ -209,8 +209,9 @@ unit aoptcpu;
          (getregtype(taicpu(p).oper[0]^.reg) = getregtype(taicpu(p).oper[1]^.reg)) and
          (getregtype(taicpu(p).oper[0]^.reg) = getregtype(taicpu(p).oper[1]^.reg)) and
          MatchOperand(taicpu(p).oper[1]^,taicpu(next2).oper[0]^) and
          MatchOperand(taicpu(p).oper[1]^,taicpu(next2).oper[0]^) and
          MatchOperand(taicpu(next2).oper[1]^,taicpu(p).oper[0]^) and
          MatchOperand(taicpu(next2).oper[1]^,taicpu(p).oper[0]^) and
-         ((taicpu(p).opsize = taicpu(next).opsize) and
-          (taicpu(p).opsize = taicpu(next2).opsize)) then
+         (taicpu(p).opsize = taicpu(next2).opsize) and
+         ((taicpu(p).opcode = A_FMOVE) or
+          (taicpu(p).opsize = taicpu(next).opsize)) then
         begin
         begin
           opstr:=opname(p);
           opstr:=opname(p);