Bläddra i källkod

* handle OP_XOR for a full mm register correctly in tcgx86.opmm_loc_reg

git-svn-id: trunk@45348 -
florian 5 år sedan
förälder
incheckning
7dbab3a78f
1 ändrade filer med 5 tillägg och 2 borttagningar
  1. 5 2
      compiler/x86/cgx86.pas

+ 5 - 2
compiler/x86/cgx86.pas

@@ -1849,6 +1849,9 @@ unit cgx86;
             )
           )
         );
+        opmm2asmop_full : array[topcg] of tasmop = (
+          A_NOP,A_NOP,A_NOP,A_PAND,A_NOP,A_NOP,A_NOP,A_NOP,A_NOP,A_NOP,A_POR,A_NOP,A_NOP,A_NOP,A_NOP,A_PXOR,A_NOP,A_NOP
+        );
       var
         resultreg : tregister;
         asmop : tasmop;
@@ -1865,8 +1868,8 @@ unit cgx86;
           begin
             internalerror(2010060101);
           end
-        else if (shuffle=nil) then
-          asmop:=opmm2asmop[1,size,op]
+        else if shuffle=nil then
+          asmop:=opmm2asmop_full[op]
         else if shufflescalar(shuffle) then
           begin
             asmop:=opmm2asmop[0,size,op];