Browse Source

+ take into account the fact that lea doesn't read the segment register of its
reference in i386's TCpuAsmOptimizer.RegReadByInstruction

git-svn-id: trunk@36080 -

nickysn 8 years ago
parent
commit
0cd70844f1
1 changed files with 5 additions and 0 deletions
  1. 5 0
      compiler/i386/aoptcpu.pas

+ 5 - 0
compiler/i386/aoptcpu.pas

@@ -190,6 +190,11 @@ unit aoptcpu;
           end;
           end;
         else
         else
           begin
           begin
+            if (p.opcode=A_LEA) and is_segment_reg(reg) then
+              begin
+                RegReadByInstruction := false;
+                exit;
+              end;
             for opcount := 0 to p.ops-1 do
             for opcount := 0 to p.ops-1 do
               if (p.oper[opCount]^.typ = top_ref) and
               if (p.oper[opCount]^.typ = top_ref) and
                  RegInRef(reg,p.oper[opcount]^.ref^) then
                  RegInRef(reg,p.oper[opcount]^.ref^) then