Browse Source

* fixed regInInstruction to detect register usages in Ch_ALL
instructions whereby the registers are explicitly named in operands
(mainly for unsupported mmx/sse instructions)

git-svn-id: trunk@4240 -

Jonas Maebe 19 years ago
parent
commit
cf86412832
1 changed files with 7 additions and 0 deletions
  1. 7 0
      compiler/i386/daopt386.pas

+ 7 - 0
compiler/i386/daopt386.pas

@@ -838,6 +838,13 @@ begin
          (supreg in [RS_EAX,RS_EDX])
     else
       begin
+        for opcount := 0 to p.ops-1 do
+          if (p.oper[opCount]^.typ = top_ref) and
+             reginref(supreg,p.oper[opcount]^.ref^) then
+            begin
+              regInInstruction := true;
+              exit
+            end;
         for opcount := 1 to maxinschanges do
           case insprop[p.opcode].Ch[opCount] of
             CH_REAX..CH_MEDI: