Browse Source

bugfix internal assembler compiling vpmov*

git-svn-id: branches/tg74/avx512-0037785@47386 -
tg74 4 years ago
parent
commit
99882e8d59
1 changed files with 31 additions and 1 deletions
  1. 31 1
      compiler/x86/rax86.pas

+ 31 - 1
compiler/x86/rax86.pas

@@ -544,6 +544,21 @@ begin
                   end;
                 end;
               end;
+            msiMemRegx16y32z64:
+              begin
+                for j := 1 to ops do
+                begin
+                  if operands[j].Opr.Typ = OPR_REGISTER then
+                  begin
+                    case getsubreg(operands[j].opr.reg) of
+                      R_SUBMMX: memrefsize := 16;
+                      R_SUBMMY: memrefsize := 32;
+                      R_SUBMMZ: memrefsize := 64;
+                      else Message(asmr_e_unable_to_determine_reference_size);
+                    end;
+                  end;
+                end;
+              end;
             msiMemRegx32y64:
               begin
                 for j := 1 to ops do
@@ -558,6 +573,21 @@ begin
                   end;
                 end;
               end;
+            msiMemRegx32y64z128:
+              begin
+                for j := 1 to ops do
+                begin
+                  if operands[j].Opr.Typ = OPR_REGISTER then
+                  begin
+                    case getsubreg(operands[j].opr.reg) of
+                      R_SUBMMX: memrefsize := 32;
+                      R_SUBMMY: memrefsize := 64;
+                      R_SUBMMZ: memrefsize := 128;
+                      else Message(asmr_e_unable_to_determine_reference_size);
+                    end;
+                  end;
+                end;
+              end;
            msiMemRegx64y128:
               begin
                 for j := 1 to ops do
@@ -712,7 +742,7 @@ begin
             msiMultiple:
               ;
             else
-              Internalerror(2019081005);
+              Internalerror(2020111001);
           end;
 
           if memrefsize > -1 then