Browse Source

bugfix internal assembler - disp8 T1S (vpcompressb,vpcompressw)

git-svn-id: branches/tg74/avx512-0037785@47161 -
tg74 4 years ago
parent
commit
ab22f9b3fb

+ 7 - 7
compiler/i386/i386tab.inc

@@ -11239,7 +11239,7 @@
     opcode  : A_VEXTRACTPS;
     ops     : 3;
     optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #232#241#250#1#23#65#22;
+    code    : #232#241#242#250#1#23#65#22;
     flags   : [if_avx512]
   ),
   (
@@ -28187,21 +28187,21 @@
     ops     : 2;
     optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
     code    : #232#241#249#1#99#65;
-    flags   : [if_avx512,if_t1s]
+    flags   : [if_avx512,if_t1s8]
   ),
   (
     opcode  : A_VPCOMPRESSB;
     ops     : 2;
     optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
     code    : #232#241#244#249#1#99#65;
-    flags   : [if_avx512,if_t1s]
+    flags   : [if_avx512,if_t1s8]
   ),
   (
     opcode  : A_VPCOMPRESSB;
     ops     : 2;
     optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
     code    : #232#233#241#249#1#99#65;
-    flags   : [if_avx512,if_t1s]
+    flags   : [if_avx512,if_t1s8]
   ),
   (
     opcode  : A_VPCOMPRESSB;
@@ -28229,21 +28229,21 @@
     ops     : 2;
     optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
     code    : #232#234#241#249#1#99#65;
-    flags   : [if_avx512,if_t1s]
+    flags   : [if_avx512,if_t1s16]
   ),
   (
     opcode  : A_VPCOMPRESSW;
     ops     : 2;
     optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
     code    : #232#234#241#244#249#1#99#65;
-    flags   : [if_avx512,if_t1s]
+    flags   : [if_avx512,if_t1s16]
   ),
   (
     opcode  : A_VPCOMPRESSW;
     ops     : 2;
     optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
     code    : #232#233#234#241#249#1#99#65;
-    flags   : [if_avx512,if_t1s]
+    flags   : [if_avx512,if_t1s16]
   ),
   (
     opcode  : A_VPCOMPRESSW;

+ 7 - 7
compiler/i8086/i8086tab.inc

@@ -11267,7 +11267,7 @@
     opcode  : A_VEXTRACTPS;
     ops     : 3;
     optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #232#241#250#1#23#65#22;
+    code    : #232#241#242#250#1#23#65#22;
     flags   : [if_avx512]
   ),
   (
@@ -28411,21 +28411,21 @@
     ops     : 2;
     optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
     code    : #232#241#249#1#99#65;
-    flags   : [if_avx512,if_t1s]
+    flags   : [if_avx512,if_t1s8]
   ),
   (
     opcode  : A_VPCOMPRESSB;
     ops     : 2;
     optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
     code    : #232#241#244#249#1#99#65;
-    flags   : [if_avx512,if_t1s]
+    flags   : [if_avx512,if_t1s8]
   ),
   (
     opcode  : A_VPCOMPRESSB;
     ops     : 2;
     optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
     code    : #232#233#241#249#1#99#65;
-    flags   : [if_avx512,if_t1s]
+    flags   : [if_avx512,if_t1s8]
   ),
   (
     opcode  : A_VPCOMPRESSB;
@@ -28453,21 +28453,21 @@
     ops     : 2;
     optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
     code    : #232#234#241#249#1#99#65;
-    flags   : [if_avx512,if_t1s]
+    flags   : [if_avx512,if_t1s16]
   ),
   (
     opcode  : A_VPCOMPRESSW;
     ops     : 2;
     optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
     code    : #232#234#241#244#249#1#99#65;
-    flags   : [if_avx512,if_t1s]
+    flags   : [if_avx512,if_t1s16]
   ),
   (
     opcode  : A_VPCOMPRESSW;
     ops     : 2;
     optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
     code    : #232#233#234#241#249#1#99#65;
-    flags   : [if_avx512,if_t1s]
+    flags   : [if_avx512,if_t1s16]
   ),
   (
     opcode  : A_VPCOMPRESSW;

+ 4 - 0
compiler/x86/aasmcpu.pas

@@ -505,6 +505,8 @@ interface
         IF_T4,                  { disp8 - tuple - 4 }
         IF_T8,                  { disp8 - tuple - 8 }
         IF_T1S,                 { disp8 - tuple - 1 scalar }
+        IF_T1S8,                { disp8 - tuple - 1 scalar byte }
+        IF_T1S16,               { disp8 - tuple - 1 scalar word }
         IF_T1F32,
         IF_T1F64,
         IF_TMDDUP,
@@ -2127,6 +2129,8 @@ implementation
                       else tuplesize := 4;
               end;
             end
+            else if IF_T1S8 in aInsEntry^.Flags then tuplesize := 1
+            else if IF_T1S16 in aInsEntry^.Flags then tuplesize := 2
             else if IF_T1F32 in aInsEntry^.Flags then tuplesize := 4
             else if IF_T1F64 in aInsEntry^.Flags then tuplesize := 8
             else if IF_T2 in aInsEntry^.Flags then

+ 7 - 7
compiler/x86/x86ins.dat

@@ -4379,7 +4379,7 @@ xmmrm,ymmreg,imm8                    \361\362\364\372\1\x19\101\26        AVX,SA
 (Ch_All)
 mem32,xmmreg,imm8                         \350\361\362\372\1\x17\101\26             AVX,SANDYBRIDGE,T1S
 reg32,xmmreg,imm8                         \350\361\362\372\1\x17\101\26             AVX,SANDYBRIDGE
-reg64,xmmreg,imm8                         \350\361\372\1\x17\101\26                 AVX512
+reg64,xmmreg,imm8                         \350\361\362\372\1\x17\101\26             AVX512
 
 
 
@@ -8930,18 +8930,18 @@ zmmreg_mz,zmmreg,bmem64,imm8              \350\351\352\361\372\1\x43\75\120\27
 
 [VPCOMPRESSB]
 (Ch_All)
-mem128_m,xmmreg                           \350\361\371\1\x63\101                    AVX512,T1S
-mem256_m,ymmreg                           \350\361\364\371\1\x63\101                AVX512,T1S
-mem512_m,zmmreg                           \350\351\361\371\1\x63\101                AVX512,T1S
+mem128_m,xmmreg                           \350\361\371\1\x63\101                    AVX512,T1S8
+mem256_m,ymmreg                           \350\361\364\371\1\x63\101                AVX512,T1S8
+mem512_m,zmmreg                           \350\351\361\371\1\x63\101                AVX512,T1S8
 xmmreg_mz,xmmreg                          \350\361\371\1\x63\101                    AVX512
 ymmreg_mz,ymmreg                          \350\361\364\371\1\x63\101                AVX512
 zmmreg_mz,zmmreg                          \350\351\361\371\1\x63\101                AVX512
 
 [VPCOMPRESSW]
 (Ch_All)
-mem128_m,xmmreg                           \350\352\361\371\1\x63\101                AVX512,T1S
-mem256_m,ymmreg                           \350\352\361\364\371\1\x63\101            AVX512,T1S
-mem512_m,zmmreg                           \350\351\352\361\371\1\x63\101            AVX512,T1S
+mem128_m,xmmreg                           \350\352\361\371\1\x63\101                AVX512,T1S16
+mem256_m,ymmreg                           \350\352\361\364\371\1\x63\101            AVX512,T1S16
+mem512_m,zmmreg                           \350\351\352\361\371\1\x63\101            AVX512,T1S16
 xmmreg_mz,xmmreg                          \350\352\361\371\1\x63\101                AVX512
 ymmreg_mz,ymmreg                          \350\352\361\364\371\1\x63\101            AVX512
 zmmreg_mz,zmmreg                          \350\351\352\361\371\1\x63\101            AVX512

+ 7 - 7
compiler/x86_64/x8664tab.inc

@@ -11568,7 +11568,7 @@
     opcode  : A_VEXTRACTPS;
     ops     : 3;
     optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #232#241#250#1#23#65#22;
+    code    : #232#241#242#250#1#23#65#22;
     flags   : [if_avx512]
   ),
   (
@@ -28635,21 +28635,21 @@
     ops     : 2;
     optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
     code    : #232#241#249#1#99#65;
-    flags   : [if_avx512,if_t1s]
+    flags   : [if_avx512,if_t1s8]
   ),
   (
     opcode  : A_VPCOMPRESSB;
     ops     : 2;
     optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
     code    : #232#241#244#249#1#99#65;
-    flags   : [if_avx512,if_t1s]
+    flags   : [if_avx512,if_t1s8]
   ),
   (
     opcode  : A_VPCOMPRESSB;
     ops     : 2;
     optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
     code    : #232#233#241#249#1#99#65;
-    flags   : [if_avx512,if_t1s]
+    flags   : [if_avx512,if_t1s8]
   ),
   (
     opcode  : A_VPCOMPRESSB;
@@ -28677,21 +28677,21 @@
     ops     : 2;
     optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
     code    : #232#234#241#249#1#99#65;
-    flags   : [if_avx512,if_t1s]
+    flags   : [if_avx512,if_t1s16]
   ),
   (
     opcode  : A_VPCOMPRESSW;
     ops     : 2;
     optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
     code    : #232#234#241#244#249#1#99#65;
-    flags   : [if_avx512,if_t1s]
+    flags   : [if_avx512,if_t1s16]
   ),
   (
     opcode  : A_VPCOMPRESSW;
     ops     : 2;
     optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
     code    : #232#233#234#241#249#1#99#65;
-    flags   : [if_avx512,if_t1s]
+    flags   : [if_avx512,if_t1s16]
   ),
   (
     opcode  : A_VPCOMPRESSW;