summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2012-05-03 17:10:45 +0000
committerflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2012-05-03 17:10:45 +0000
commitf732d8625edfda442c17b20e14ab5abbbdc3f7dd (patch)
tree2927e95fe41dab16cbb4591a31eb55e084cb05e2 /compiler
parent77875b56baefcc198d422b57c155189cf4fc38ae (diff)
downloadfpc-f732d8625edfda442c17b20e14ab5abbbdc3f7dd.tar.gz
--- Merging r20490 into '.':
U compiler\i386\r386nasm.inc U compiler\i386\r386nor.inc U compiler\i386\r386num.inc U compiler\i386\i386op.inc U compiler\i386\r386ari.inc U compiler\i386\i386att.inc U compiler\i386\i386int.inc U compiler\i386\r386iri.inc U compiler\i386\r386rni.inc U compiler\i386\r386nri.inc U compiler\i386\r386att.inc U compiler\i386\r386stab.inc U compiler\i386\r386std.inc U compiler\i386\r386int.inc U compiler\i386\r386sri.inc U compiler\i386\i386tab.inc U compiler\i386\daopt386.pas U compiler\i386\cpubase.inc U compiler\i386\r386dwrf.inc U compiler\i386\i386atts.inc U compiler\i386\i386prop.inc U compiler\i386\r386op.inc U compiler\i386\r386con.inc U compiler\i386\r386ot.inc U compiler\i386\i386nop.inc U compiler\x86_64\r8664sri.inc U compiler\x86_64\x8664ats.inc U compiler\x86_64\x8664att.inc U compiler\x86_64\x8664int.inc U compiler\x86_64\x8664pro.inc U compiler\x86_64\x8664tab.inc U compiler\x86_64\r8664con.inc U compiler\x86_64\r8664stab.inc U compiler\x86_64\r8664nor.inc U compiler\x86_64\r8664num.inc U compiler\x86_64\x8664nop.inc U compiler\x86_64\r8664dwrf.inc U compiler\x86_64\cpubase.inc U compiler\x86_64\r8664ari.inc U compiler\x86_64\r8664op.inc U compiler\x86_64\r8664ot.inc U compiler\x86_64\r8664iri.inc U compiler\x86_64\x8664op.inc U compiler\x86_64\r8664rni.inc U compiler\x86_64\r8664att.inc U compiler\x86_64\r8664std.inc U compiler\x86_64\r8664int.inc U compiler\cgbase.pas U compiler\ncal.pas U compiler\m68k\cgcpu.pas U compiler\x86\itx86int.pas U compiler\x86\cgx86.pas U compiler\x86\agx86att.pas U compiler\x86\x86reg.dat U compiler\x86\rax86.pas U compiler\x86\agx86int.pas U compiler\x86\itcpugas.pas U compiler\x86\cpubase.pas U compiler\x86\rax86int.pas U compiler\x86\x86ins.dat U compiler\x86\aasmcpu.pas U compiler\utils\mkx86reg.pp U compiler\utils\mkx86ins.pp U compiler\ppcgen\cgppc.pas --- Recording mergeinfo for merge of r20490 into '.': U . git-svn-id: http://svn.freepascal.org/svn/fpc/branches/avx@21214 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler')
-rw-r--r--compiler/cgbase.pas15
-rw-r--r--compiler/i386/cpubase.inc3
-rw-r--r--compiler/i386/daopt386.pas1
-rw-r--r--compiler/i386/i386att.inc261
-rw-r--r--compiler/i386/i386atts.inc263
-rw-r--r--compiler/i386/i386int.inc261
-rw-r--r--compiler/i386/i386nop.inc2
-rw-r--r--compiler/i386/i386op.inc261
-rw-r--r--compiler/i386/i386prop.inc259
-rw-r--r--compiler/i386/i386tab.inc3186
-rw-r--r--compiler/i386/r386ari.inc8
-rw-r--r--compiler/i386/r386att.inc10
-rw-r--r--compiler/i386/r386con.inc24
-rw-r--r--compiler/i386/r386dwrf.inc8
-rw-r--r--compiler/i386/r386int.inc10
-rw-r--r--compiler/i386/r386iri.inc10
-rw-r--r--compiler/i386/r386nasm.inc10
-rw-r--r--compiler/i386/r386nor.inc2
-rw-r--r--compiler/i386/r386nri.inc10
-rw-r--r--compiler/i386/r386num.inc24
-rw-r--r--compiler/i386/r386op.inc8
-rw-r--r--compiler/i386/r386ot.inc10
-rw-r--r--compiler/i386/r386rni.inc8
-rw-r--r--compiler/i386/r386sri.inc10
-rw-r--r--compiler/i386/r386stab.inc8
-rw-r--r--compiler/i386/r386std.inc10
-rw-r--r--compiler/m68k/cgcpu.pas3
-rw-r--r--compiler/ncal.pas7
-rw-r--r--compiler/ppcgen/cgppc.pas4
-rw-r--r--compiler/utils/mkx86ins.pp9
-rw-r--r--compiler/utils/mkx86reg.pp2
-rw-r--r--compiler/x86/aasmcpu.pas595
-rw-r--r--compiler/x86/agx86att.pas58
-rw-r--r--compiler/x86/agx86int.pas3
-rw-r--r--compiler/x86/cgx86.pas10
-rw-r--r--compiler/x86/cpubase.pas12
-rw-r--r--compiler/x86/itcpugas.pas8
-rw-r--r--compiler/x86/itx86int.pas27
-rw-r--r--compiler/x86/rax86.pas135
-rw-r--r--compiler/x86/rax86int.pas18
-rw-r--r--compiler/x86/x86ins.dat1276
-rw-r--r--compiler/x86/x86reg.dat49
-rw-r--r--compiler/x86_64/cpubase.inc3
-rw-r--r--compiler/x86_64/r8664ari.inc16
-rw-r--r--compiler/x86_64/r8664att.inc18
-rw-r--r--compiler/x86_64/r8664con.inc48
-rw-r--r--compiler/x86_64/r8664dwrf.inc16
-rw-r--r--compiler/x86_64/r8664int.inc18
-rw-r--r--compiler/x86_64/r8664iri.inc18
-rw-r--r--compiler/x86_64/r8664nor.inc2
-rw-r--r--compiler/x86_64/r8664num.inc48
-rw-r--r--compiler/x86_64/r8664op.inc16
-rw-r--r--compiler/x86_64/r8664ot.inc18
-rw-r--r--compiler/x86_64/r8664rni.inc16
-rw-r--r--compiler/x86_64/r8664sri.inc18
-rw-r--r--compiler/x86_64/r8664stab.inc16
-rw-r--r--compiler/x86_64/r8664std.inc18
-rw-r--r--compiler/x86_64/x8664ats.inc263
-rw-r--r--compiler/x86_64/x8664att.inc261
-rw-r--r--compiler/x86_64/x8664int.inc261
-rw-r--r--compiler/x86_64/x8664nop.inc2
-rw-r--r--compiler/x86_64/x8664op.inc261
-rw-r--r--compiler/x86_64/x8664pro.inc259
-rw-r--r--compiler/x86_64/x8664tab.inc3202
64 files changed, 11420 insertions, 276 deletions
diff --git a/compiler/cgbase.pas b/compiler/cgbase.pas
index 26a1ac6aee..ebf1441064 100644
--- a/compiler/cgbase.pas
+++ b/compiler/cgbase.pas
@@ -145,8 +145,8 @@ interface
OS_F32,OS_F64,OS_F80,OS_C64,OS_F128,
{ multi-media sizes: split in byte, word, dword, ... }
{ entities, then the signed counterparts }
- OS_M8,OS_M16,OS_M32,OS_M64,OS_M128,
- OS_MS8,OS_MS16,OS_MS32,OS_MS64,OS_MS128);
+ OS_M8,OS_M16,OS_M32,OS_M64,OS_M128,OS_M256,
+ OS_MS8,OS_MS16,OS_MS32,OS_MS64,OS_MS128,OS_MS256 );
{ Register types }
TRegisterType = (
@@ -174,7 +174,10 @@ interface
R_SUBFQ, { = 8; Float that allocates 4 FPU registers }
R_SUBMMS, { = 9; single scalar in multi media register }
R_SUBMMD, { = 10; double scalar in multi media register }
- R_SUBMMWHOLE { = 11; complete MM register, size depends on CPU }
+ R_SUBMMWHOLE, { = 11; complete MM register, size depends on CPU }
+ { For Intel X86 AVX-Register }
+ R_SUBMMX, { = 12; 128 BITS }
+ R_SUBMMY { = 13; 256 BITS }
);
TSubRegisterSet = set of TSubRegister;
@@ -274,7 +277,7 @@ interface
{ floating point values }
4,8,10,8,16,
{ multimedia values }
- 1,2,4,8,16,1,2,4,8,16);
+ 1,2,4,8,16,32,1,2,4,8,16,32);
tfloat2tcgsize: array[tfloattype] of tcgsize =
(OS_F32,OS_F64,OS_F80,OS_F80,OS_C64,OS_C64,OS_F128);
@@ -290,8 +293,8 @@ interface
tcgsize2unsigned : array[tcgsize] of tcgsize = (OS_NO,
OS_8,OS_16,OS_32,OS_64,OS_128,OS_8,OS_16,OS_32,OS_64,OS_128,
OS_F32,OS_F64,OS_F80,OS_C64,OS_F128,
- OS_M8,OS_M16,OS_M32,OS_M64,OS_M128,OS_M8,OS_M16,OS_M32,
- OS_M64,OS_M128);
+ OS_M8,OS_M16,OS_M32,OS_M64,OS_M128,OS_M256,OS_M8,OS_M16,OS_M32,
+ OS_M64,OS_M128,OS_M256);
tcgloc2str : array[TCGLoc] of string[12] = (
'LOC_INVALID',
diff --git a/compiler/i386/cpubase.inc b/compiler/i386/cpubase.inc
index cadf3e29e2..7c26b21db9 100644
--- a/compiler/i386/cpubase.inc
+++ b/compiler/i386/cpubase.inc
@@ -34,7 +34,8 @@
S_MD,
S_NEAR,S_FAR,S_SHORT,
S_T,
- S_XMM
+ S_XMM,
+ S_YMM
);
diff --git a/compiler/i386/daopt386.pas b/compiler/i386/daopt386.pas
index bdcaea11a2..82e45daeb6 100644
--- a/compiler/i386/daopt386.pas
+++ b/compiler/i386/daopt386.pas
@@ -58,6 +58,7 @@ const
OS_M32,
OS_ADDR,OS_NO,OS_NO,
OS_NO,
+ OS_NO,
OS_NO);
diff --git a/compiler/i386/i386att.inc b/compiler/i386/i386att.inc
index a591dad220..14ca3fbc0b 100644
--- a/compiler/i386/i386att.inc
+++ b/compiler/i386/i386att.inc
@@ -684,5 +684,264 @@
'aeskeygenassist',
'stosq',
'lodsq',
-'cmpsq'
+'cmpsq',
+'vaddpd',
+'vaddps',
+'vaddsd',
+'vaddss',
+'vaddsubpd',
+'vaddsubps',
+'vaesdec',
+'vaesdeclast',
+'vaesenc',
+'vaesenclast',
+'vaesimc',
+'vaeskeygenassist',
+'vandnpd',
+'vandnps',
+'vandpd',
+'vandps',
+'vblendpd',
+'vblendps',
+'vblendvpd',
+'vblendvps',
+'vbroadcastf128',
+'vbroadcastsd',
+'vbroadcastss',
+'vcmppd',
+'vcmpps',
+'vcmpsd',
+'vcmpss',
+'vcomisd',
+'vcomiss',
+'vcvtdq2pd',
+'vcvtdq2ps',
+'vcvtpd2dq',
+'vcvtpd2ps',
+'vcvtps2dq',
+'vcvtps2pd',
+'vcvtsd2si',
+'vcvtsd2ss',
+'vcvtsi2sd',
+'vcvtsi2ss',
+'vcvtss2sd',
+'vcvtss2si',
+'vcvttpd2dq',
+'vcvttps2dq',
+'vcvttsd2si',
+'vcvttss2si',
+'vdivpd',
+'vdivps',
+'vdivsd',
+'vdivss',
+'vdppd',
+'vdpps',
+'vextractf128',
+'vextractps',
+'vhaddpd',
+'vhaddps',
+'vhsubpd',
+'vhsubps',
+'vinsertf128',
+'vinsertps',
+'vlddqu',
+'vldmxcsr',
+'vmaskmovdqu',
+'vmaskmovpd',
+'vmaskmovps',
+'vmaxpd',
+'vmaxps',
+'vmaxsd',
+'vmaxss',
+'vminpd',
+'vminps',
+'vminsd',
+'vminss',
+'vmovapd',
+'vmovaps',
+'vmovd',
+'vmovddup',
+'vmovdqa',
+'vmovdqu',
+'vmovhlps',
+'vmovhpd',
+'vmovhps',
+'vmovlhps',
+'vmovlpd',
+'vmovlps',
+'vmovmskpd',
+'vmovmskps',
+'vmovntdq',
+'vmovntdqa',
+'vmovntpd',
+'vmovntps',
+'vmovq',
+'vmovsd',
+'vmovshdup',
+'vmovsldup',
+'vmovss',
+'vmovupd',
+'vmovups',
+'vmpsadbw',
+'vmulpd',
+'vmulps',
+'vmulsd',
+'vmulss',
+'vorpd',
+'vorps',
+'vpabsb',
+'vpabsd',
+'vpabsw',
+'vpackssdw',
+'vpacksswb',
+'vpackusdw',
+'vpackuswb',
+'vpaddb',
+'vpaddd',
+'vpaddq',
+'vpaddsb',
+'vpaddsw',
+'vpaddusb',
+'vpaddusw',
+'vpaddw',
+'vpalignr',
+'vpand',
+'vpandn',
+'vpavgb',
+'vpavgw',
+'vpblendvb',
+'vpblendw',
+'vpclmulqdq',
+'vpcmpeqb',
+'vpcmpeqd',
+'vpcmpeqq',
+'vpcmpeqw',
+'vpcmpestri',
+'vpcmpestrm',
+'vpcmpgtb',
+'vpcmpgtd',
+'vpcmpgtq',
+'vpcmpgtw',
+'vpcmpistri',
+'vpcmpistrm',
+'vperm2f128',
+'vpermilpd',
+'vpermilps',
+'vpextrb',
+'vpextrd',
+'vpextrq',
+'vpextrw',
+'vphaddd',
+'vphaddsw',
+'vphaddw',
+'vphminposuw',
+'vphsubd',
+'vphsubsw',
+'vphsubw',
+'vpinsrb',
+'vpinsrd',
+'vpinsrq',
+'vpinsrw',
+'vpmaddubsw',
+'vpmaddwd',
+'vpmaxsb',
+'vpmaxsd',
+'vpmaxsw',
+'vpmaxub',
+'vpmaxud',
+'vpmaxuw',
+'vpminsb',
+'vpminsd',
+'vpminsw',
+'vpminub',
+'vpminud',
+'vpminuw',
+'vpmovmskb',
+'vpmovsxbd',
+'vpmovsxbq',
+'vpmovsxbw',
+'vpmovsxdq',
+'vpmovsxwd',
+'vpmovsxwq',
+'vpmovzxbd',
+'vpmovzxbq',
+'vpmovzxbw',
+'vpmovzxdq',
+'vpmovzxwd',
+'vpmovzxwq',
+'vpmuldq',
+'vpmulhrsw',
+'vpmulhuw',
+'vpmulhw',
+'vpmulld',
+'vpmullw',
+'vpmuludq',
+'vpor',
+'vpsadbw',
+'vpshufb',
+'vpshufd',
+'vpshufhw',
+'vpshuflw',
+'vpsignb',
+'vpsignd',
+'vpsignw',
+'vpslld',
+'vpslldq',
+'vpsllq',
+'vpsllw',
+'vpsrad',
+'vpsraw',
+'vpsrld',
+'vpsrldq',
+'vpsrlq',
+'vpsrlw',
+'vpsubb',
+'vpsubd',
+'vpsubq',
+'vpsubsb',
+'vpsubsw',
+'vpsubusb',
+'vpsubusw',
+'vpsubw',
+'vptest',
+'vpunpckhbw',
+'vpunpckhdq',
+'vpunpckhqdq',
+'vpunpckhwd',
+'vpunpcklbw',
+'vpunpckldq',
+'vpunpcklqdq',
+'vpunpcklwd',
+'vpxor',
+'vrcpps',
+'vrcpss',
+'vroundpd',
+'vroundps',
+'vroundsd',
+'vroundss',
+'vrsqrtps',
+'vrsqrtss',
+'vshufpd',
+'vshufps',
+'vsqrtpd',
+'vsqrtps',
+'vsqrtsd',
+'vsqrtss',
+'vstmxcsr',
+'vsubpd',
+'vsubps',
+'vsubsd',
+'vsubss',
+'vtestpd',
+'vtestps',
+'vucomisd',
+'vucomiss',
+'vunpckhpd',
+'vunpckhps',
+'vunpcklpd',
+'vunpcklps',
+'vxorpd',
+'vxorps',
+'vzeroall',
+'vzeroupper'
);
diff --git a/compiler/i386/i386atts.inc b/compiler/i386/i386atts.inc
index 31bc9cd421..2f06270fe3 100644
--- a/compiler/i386/i386atts.inc
+++ b/compiler/i386/i386atts.inc
@@ -417,7 +417,7 @@ attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
-attsufINT,
+attsufMM,
attsufINT,
attsufNONE,
attsufINT,
@@ -534,7 +534,7 @@ attsufNONE,
attsufNONE,
attsufINT,
attsufNONE,
-attsufINT,
+attsufMM,
attsufNONE,
attsufNONE,
attsufNONE,
@@ -684,5 +684,264 @@ attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufMM,
+attsufMM,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufMM,
+attsufMM,
+attsufNONE,
+attsufNONE,
+attsufMM,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
attsufNONE
);
diff --git a/compiler/i386/i386int.inc b/compiler/i386/i386int.inc
index b6cc4caa78..3a3f4b4631 100644
--- a/compiler/i386/i386int.inc
+++ b/compiler/i386/i386int.inc
@@ -684,5 +684,264 @@
'aeskeygenassist',
'stosq',
'lodsq',
-'cmpsq'
+'cmpsq',
+'vaddpd',
+'vaddps',
+'vaddsd',
+'vaddss',
+'vaddsubpd',
+'vaddsubps',
+'vaesdec',
+'vaesdeclast',
+'vaesenc',
+'vaesenclast',
+'vaesimc',
+'vaeskeygenassist',
+'vandnpd',
+'vandnps',
+'vandpd',
+'vandps',
+'vblendpd',
+'vblendps',
+'vblendvpd',
+'vblendvps',
+'vbroadcastf128',
+'vbroadcastsd',
+'vbroadcastss',
+'vcmppd',
+'vcmpps',
+'vcmpsd',
+'vcmpss',
+'vcomisd',
+'vcomiss',
+'vcvtdq2pd',
+'vcvtdq2ps',
+'vcvtpd2dq',
+'vcvtpd2ps',
+'vcvtps2dq',
+'vcvtps2pd',
+'vcvtsd2si',
+'vcvtsd2ss',
+'vcvtsi2sd',
+'vcvtsi2ss',
+'vcvtss2sd',
+'vcvtss2si',
+'vcvttpd2dq',
+'vcvttps2dq',
+'vcvttsd2si',
+'vcvttss2si',
+'vdivpd',
+'vdivps',
+'vdivsd',
+'vdivss',
+'vdppd',
+'vdpps',
+'vextractf128',
+'vextractps',
+'vhaddpd',
+'vhaddps',
+'vhsubpd',
+'vhsubps',
+'vinsertf128',
+'vinsertps',
+'vlddqu',
+'vldmxcsr',
+'vmaskmovdqu',
+'vmaskmovpd',
+'vmaskmovps',
+'vmaxpd',
+'vmaxps',
+'vmaxsd',
+'vmaxss',
+'vminpd',
+'vminps',
+'vminsd',
+'vminss',
+'vmovapd',
+'vmovaps',
+'vmovd',
+'vmovddup',
+'vmovdqa',
+'vmovdqu',
+'vmovhlps',
+'vmovhpd',
+'vmovhps',
+'vmovlhps',
+'vmovlpd',
+'vmovlps',
+'vmovmskpd',
+'vmovmskps',
+'vmovntdq',
+'vmovntdqa',
+'vmovntpd',
+'vmovntps',
+'vmovq',
+'vmovsd',
+'vmovshdup',
+'vmovsldup',
+'vmovss',
+'vmovupd',
+'vmovups',
+'vmpsadbw',
+'vmulpd',
+'vmulps',
+'vmulsd',
+'vmulss',
+'vorpd',
+'vorps',
+'vpabsb',
+'vpabsd',
+'vpabsw',
+'vpackssdw',
+'vpacksswb',
+'vpackusdw',
+'vpackuswb',
+'vpaddb',
+'vpaddd',
+'vpaddq',
+'vpaddsb',
+'vpaddsw',
+'vpaddusb',
+'vpaddusw',
+'vpaddw',
+'vpalignr',
+'vpand',
+'vpandn',
+'vpavgb',
+'vpavgw',
+'vpblendvb',
+'vpblendw',
+'vpclmulqdq',
+'vpcmpeqb',
+'vpcmpeqd',
+'vpcmpeqq',
+'vpcmpeqw',
+'vpcmpestri',
+'vpcmpestrm',
+'vpcmpgtb',
+'vpcmpgtd',
+'vpcmpgtq',
+'vpcmpgtw',
+'vpcmpistri',
+'vpcmpistrm',
+'vperm2f128',
+'vpermilpd',
+'vpermilps',
+'vpextrb',
+'vpextrd',
+'vpextrq',
+'vpextrw',
+'vphaddd',
+'vphaddsw',
+'vphaddw',
+'vphminposuw',
+'vphsubd',
+'vphsubsw',
+'vphsubw',
+'vpinsrb',
+'vpinsrd',
+'vpinsrq',
+'vpinsrw',
+'vpmaddubsw',
+'vpmaddwd',
+'vpmaxsb',
+'vpmaxsd',
+'vpmaxsw',
+'vpmaxub',
+'vpmaxud',
+'vpmaxuw',
+'vpminsb',
+'vpminsd',
+'vpminsw',
+'vpminub',
+'vpminud',
+'vpminuw',
+'vpmovmskb',
+'vpmovsxbd',
+'vpmovsxbq',
+'vpmovsxbw',
+'vpmovsxdq',
+'vpmovsxwd',
+'vpmovsxwq',
+'vpmovzxbd',
+'vpmovzxbq',
+'vpmovzxbw',
+'vpmovzxdq',
+'vpmovzxwd',
+'vpmovzxwq',
+'vpmuldq',
+'vpmulhrsw',
+'vpmulhuw',
+'vpmulhw',
+'vpmulld',
+'vpmullw',
+'vpmuludq',
+'vpor',
+'vpsadbw',
+'vpshufb',
+'vpshufd',
+'vpshufhw',
+'vpshuflw',
+'vpsignb',
+'vpsignd',
+'vpsignw',
+'vpslld',
+'vpslldq',
+'vpsllq',
+'vpsllw',
+'vpsrad',
+'vpsraw',
+'vpsrld',
+'vpsrldq',
+'vpsrlq',
+'vpsrlw',
+'vpsubb',
+'vpsubd',
+'vpsubq',
+'vpsubsb',
+'vpsubsw',
+'vpsubusb',
+'vpsubusw',
+'vpsubw',
+'vptest',
+'vpunpckhbw',
+'vpunpckhdq',
+'vpunpckhqdq',
+'vpunpckhwd',
+'vpunpcklbw',
+'vpunpckldq',
+'vpunpcklqdq',
+'vpunpcklwd',
+'vpxor',
+'vrcpps',
+'vrcpss',
+'vroundpd',
+'vroundps',
+'vroundsd',
+'vroundss',
+'vrsqrtps',
+'vrsqrtss',
+'vshufpd',
+'vshufps',
+'vsqrtpd',
+'vsqrtps',
+'vsqrtsd',
+'vsqrtss',
+'vstmxcsr',
+'vsubpd',
+'vsubps',
+'vsubsd',
+'vsubss',
+'vtestpd',
+'vtestps',
+'vucomisd',
+'vucomiss',
+'vunpckhpd',
+'vunpckhps',
+'vunpcklpd',
+'vunpcklps',
+'vxorpd',
+'vxorps',
+'vzeroall',
+'vzeroupper'
);
diff --git a/compiler/i386/i386nop.inc b/compiler/i386/i386nop.inc
index 148db9c7eb..2c78c83758 100644
--- a/compiler/i386/i386nop.inc
+++ b/compiler/i386/i386nop.inc
@@ -1,2 +1,2 @@
{ don't edit, this file is generated from x86ins.dat }
-1208;
+1652;
diff --git a/compiler/i386/i386op.inc b/compiler/i386/i386op.inc
index 4070734e54..fbbb16b8c6 100644
--- a/compiler/i386/i386op.inc
+++ b/compiler/i386/i386op.inc
@@ -684,5 +684,264 @@ A_AESIMC,
A_AESKEYGENASSIST,
A_STOSQ,
A_LODSQ,
-A_CMPSQ
+A_CMPSQ,
+A_VADDPD,
+A_VADDPS,
+A_VADDSD,
+A_VADDSS,
+A_VADDSUBPD,
+A_VADDSUBPS,
+A_VAESDEC,
+A_VAESDECLAST,
+A_VAESENC,
+A_VAESENCLAST,
+A_VAESIMC,
+A_VAESKEYGENASSIST,
+A_VANDNPD,
+A_VANDNPS,
+A_VANDPD,
+A_VANDPS,
+A_VBLENDPD,
+A_VBLENDPS,
+A_VBLENDVPD,
+A_VBLENDVPS,
+A_VBROADCASTF128,
+A_VBROADCASTSD,
+A_VBROADCASTSS,
+A_VCMPPD,
+A_VCMPPS,
+A_VCMPSD,
+A_VCMPSS,
+A_VCOMISD,
+A_VCOMISS,
+A_VCVTDQ2PD,
+A_VCVTDQ2PS,
+A_VCVTPD2DQ,
+A_VCVTPD2PS,
+A_VCVTPS2DQ,
+A_VCVTPS2PD,
+A_VCVTSD2SI,
+A_VCVTSD2SS,
+A_VCVTSI2SD,
+A_VCVTSI2SS,
+A_VCVTSS2SD,
+A_VCVTSS2SI,
+A_VCVTTPD2DQ,
+A_VCVTTPS2DQ,
+A_VCVTTSD2SI,
+A_VCVTTSS2SI,
+A_VDIVPD,
+A_VDIVPS,
+A_VDIVSD,
+A_VDIVSS,
+A_VDPPD,
+A_VDPPS,
+A_VEXTRACTF128,
+A_VEXTRACTPS,
+A_VHADDPD,
+A_VHADDPS,
+A_VHSUBPD,
+A_VHSUBPS,
+A_VINSERTF128,
+A_VINSERTPS,
+A_VLDDQU,
+A_VLDMXCSR,
+A_VMASKMOVDQU,
+A_VMASKMOVPD,
+A_VMASKMOVPS,
+A_VMAXPD,
+A_VMAXPS,
+A_VMAXSD,
+A_VMAXSS,
+A_VMINPD,
+A_VMINPS,
+A_VMINSD,
+A_VMINSS,
+A_VMOVAPD,
+A_VMOVAPS,
+A_VMOVD,
+A_VMOVDDUP,
+A_VMOVDQA,
+A_VMOVDQU,
+A_VMOVHLPS,
+A_VMOVHPD,
+A_VMOVHPS,
+A_VMOVLHPS,
+A_VMOVLPD,
+A_VMOVLPS,
+A_VMOVMSKPD,
+A_VMOVMSKPS,
+A_VMOVNTDQ,
+A_VMOVNTDQA,
+A_VMOVNTPD,
+A_VMOVNTPS,
+A_VMOVQ,
+A_VMOVSD,
+A_VMOVSHDUP,
+A_VMOVSLDUP,
+A_VMOVSS,
+A_VMOVUPD,
+A_VMOVUPS,
+A_VMPSADBW,
+A_VMULPD,
+A_VMULPS,
+A_VMULSD,
+A_VMULSS,
+A_VORPD,
+A_VORPS,
+A_VPABSB,
+A_VPABSD,
+A_VPABSW,
+A_VPACKSSDW,
+A_VPACKSSWB,
+A_VPACKUSDW,
+A_VPACKUSWB,
+A_VPADDB,
+A_VPADDD,
+A_VPADDQ,
+A_VPADDSB,
+A_VPADDSW,
+A_VPADDUSB,
+A_VPADDUSW,
+A_VPADDW,
+A_VPALIGNR,
+A_VPAND,
+A_VPANDN,
+A_VPAVGB,
+A_VPAVGW,
+A_VPBLENDVB,
+A_VPBLENDW,
+A_VPCLMULQDQ,
+A_VPCMPEQB,
+A_VPCMPEQD,
+A_VPCMPEQQ,
+A_VPCMPEQW,
+A_VPCMPESTRI,
+A_VPCMPESTRM,
+A_VPCMPGTB,
+A_VPCMPGTD,
+A_VPCMPGTQ,
+A_VPCMPGTW,
+A_VPCMPISTRI,
+A_VPCMPISTRM,
+A_VPERM2F128,
+A_VPERMILPD,
+A_VPERMILPS,
+A_VPEXTRB,
+A_VPEXTRD,
+A_VPEXTRQ,
+A_VPEXTRW,
+A_VPHADDD,
+A_VPHADDSW,
+A_VPHADDW,
+A_VPHMINPOSUW,
+A_VPHSUBD,
+A_VPHSUBSW,
+A_VPHSUBW,
+A_VPINSRB,
+A_VPINSRD,
+A_VPINSRQ,
+A_VPINSRW,
+A_VPMADDUBSW,
+A_VPMADDWD,
+A_VPMAXSB,
+A_VPMAXSD,
+A_VPMAXSW,
+A_VPMAXUB,
+A_VPMAXUD,
+A_VPMAXUW,
+A_VPMINSB,
+A_VPMINSD,
+A_VPMINSW,
+A_VPMINUB,
+A_VPMINUD,
+A_VPMINUW,
+A_VPMOVMSKB,
+A_VPMOVSXBD,
+A_VPMOVSXBQ,
+A_VPMOVSXBW,
+A_VPMOVSXDQ,
+A_VPMOVSXWD,
+A_VPMOVSXWQ,
+A_VPMOVZXBD,
+A_VPMOVZXBQ,
+A_VPMOVZXBW,
+A_VPMOVZXDQ,
+A_VPMOVZXWD,
+A_VPMOVZXWQ,
+A_VPMULDQ,
+A_VPMULHRSW,
+A_VPMULHUW,
+A_VPMULHW,
+A_VPMULLD,
+A_VPMULLW,
+A_VPMULUDQ,
+A_VPOR,
+A_VPSADBW,
+A_VPSHUFB,
+A_VPSHUFD,
+A_VPSHUFHW,
+A_VPSHUFLW,
+A_VPSIGNB,
+A_VPSIGND,
+A_VPSIGNW,
+A_VPSLLD,
+A_VPSLLDQ,
+A_VPSLLQ,
+A_VPSLLW,
+A_VPSRAD,
+A_VPSRAW,
+A_VPSRLD,
+A_VPSRLDQ,
+A_VPSRLQ,
+A_VPSRLW,
+A_VPSUBB,
+A_VPSUBD,
+A_VPSUBQ,
+A_VPSUBSB,
+A_VPSUBSW,
+A_VPSUBUSB,
+A_VPSUBUSW,
+A_VPSUBW,
+A_VPTEST,
+A_VPUNPCKHBW,
+A_VPUNPCKHDQ,
+A_VPUNPCKHQDQ,
+A_VPUNPCKHWD,
+A_VPUNPCKLBW,
+A_VPUNPCKLDQ,
+A_VPUNPCKLQDQ,
+A_VPUNPCKLWD,
+A_VPXOR,
+A_VRCPPS,
+A_VRCPSS,
+A_VROUNDPD,
+A_VROUNDPS,
+A_VROUNDSD,
+A_VROUNDSS,
+A_VRSQRTPS,
+A_VRSQRTSS,
+A_VSHUFPD,
+A_VSHUFPS,
+A_VSQRTPD,
+A_VSQRTPS,
+A_VSQRTSD,
+A_VSQRTSS,
+A_VSTMXCSR,
+A_VSUBPD,
+A_VSUBPS,
+A_VSUBSD,
+A_VSUBSS,
+A_VTESTPD,
+A_VTESTPS,
+A_VUCOMISD,
+A_VUCOMISS,
+A_VUNPCKHPD,
+A_VUNPCKHPS,
+A_VUNPCKLPD,
+A_VUNPCKLPS,
+A_VXORPD,
+A_VXORPS,
+A_VZEROALL,
+A_VZEROUPPER
);
diff --git a/compiler/i386/i386prop.inc b/compiler/i386/i386prop.inc
index 4a8f2f7fa4..e57a923f65 100644
--- a/compiler/i386/i386prop.inc
+++ b/compiler/i386/i386prop.inc
@@ -684,5 +684,264 @@
(Ch: (Ch_All, Ch_None, Ch_None)),
(Ch: (Ch_RRAX, Ch_WMemEDI, Ch_RWRDI)),
(Ch: (Ch_WRAX, Ch_RWRSI, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
(Ch: (Ch_All, Ch_None, Ch_None))
);
diff --git a/compiler/i386/i386tab.inc b/compiler/i386/i386tab.inc
index 0c427a24a4..540c88c512 100644
--- a/compiler/i386/i386tab.inc
+++ b/compiler/i386/i386tab.inc
@@ -4042,7 +4042,7 @@
(
opcode : A_POR;
ops : 2;
- optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
code : #241#2#15#235#72;
flags : if_willamette or if_sse2 or if_sm
),
@@ -6142,21 +6142,14 @@
(
opcode : A_CVTPI2PS;
ops : 2;
- optypes : (ot_xmmreg,ot_memory,ot_none,ot_none);
- code : #217#2#15#42#72;
- flags : if_katmai or if_sse or if_mmx
- ),
- (
- opcode : A_CVTPI2PS;
- ops : 2;
- optypes : (ot_xmmreg,ot_mmxreg,ot_none,ot_none);
+ optypes : (ot_xmmreg,ot_mmxrm,ot_none,ot_none);
code : #217#2#15#42#72;
flags : if_katmai or if_sse or if_mmx
),
(
opcode : A_CVTPS2PI;
ops : 2;
- optypes : (ot_mmxreg,ot_memory,ot_none,ot_none);
+ optypes : (ot_mmxreg,ot_memory or ot_bits64,ot_none,ot_none);
code : #217#2#15#45#72;
flags : if_katmai or if_sse or if_mmx
),
@@ -6170,21 +6163,14 @@
(
opcode : A_CVTSI2SS;
ops : 2;
- optypes : (ot_xmmreg,ot_memory,ot_none,ot_none);
- code : #219#209#2#15#42#72;
- flags : if_katmai or if_sse
- ),
- (
- opcode : A_CVTSI2SS;
- ops : 2;
- optypes : (ot_xmmreg,ot_reg32 or ot_bits64,ot_none,ot_none);
+ optypes : (ot_xmmreg,ot_rm_gpr or ot_bits32,ot_none,ot_none);
code : #219#209#2#15#42#72;
flags : if_katmai or if_sse
),
(
opcode : A_CVTSS2SI;
ops : 2;
- optypes : (ot_reg32 or ot_bits64,ot_memory,ot_none,ot_none);
+ optypes : (ot_reg32 or ot_bits64,ot_memory or ot_bits32,ot_none,ot_none);
code : #219#208#2#15#45#72;
flags : if_katmai or if_sse
),
@@ -6198,7 +6184,7 @@
(
opcode : A_CVTTPS2PI;
ops : 2;
- optypes : (ot_mmxreg,ot_memory,ot_none,ot_none);
+ optypes : (ot_mmxreg,ot_memory or ot_bits64,ot_none,ot_none);
code : #217#2#15#44#72;
flags : if_katmai or if_sse or if_mmx
),
@@ -6212,7 +6198,7 @@
(
opcode : A_CVTTSS2SI;
ops : 2;
- optypes : (ot_reg32 or ot_bits64,ot_memory,ot_none,ot_none);
+ optypes : (ot_reg32 or ot_bits64,ot_memory or ot_bits32,ot_none,ot_none);
code : #219#208#2#15#44#72;
flags : if_katmai or if_sse
),
@@ -7143,7 +7129,14 @@
(
opcode : A_CVTDQ2PD;
ops : 2;
- optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #219#2#15#230#72;
+ flags : if_willamette or if_sse2
+ ),
+ (
+ opcode : A_CVTDQ2PD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
code : #219#2#15#230#72;
flags : if_willamette or if_sse2
),
@@ -7192,63 +7185,70 @@
(
opcode : A_CVTPS2PD;
ops : 2;
- optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #2#15#90#72;
+ flags : if_willamette or if_sse2
+ ),
+ (
+ opcode : A_CVTPS2PD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
code : #2#15#90#72;
flags : if_willamette or if_sse2
),
(
opcode : A_CVTSD2SI;
ops : 2;
- optypes : (ot_reg32 or ot_bits64,ot_xmmreg,ot_none,ot_none);
- code : #220#208#2#15#45#72;
+ optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+ code : #220#2#15#45#72;
flags : if_willamette or if_sse2
),
(
opcode : A_CVTSD2SI;
ops : 2;
- optypes : (ot_reg32 or ot_bits64,ot_memory,ot_none,ot_none);
- code : #220#208#2#15#45#72;
+ optypes : (ot_reg32,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #220#2#15#45#72;
flags : if_willamette or if_sse2
),
(
opcode : A_CVTSD2SS;
ops : 2;
- optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
code : #220#2#15#90#72;
flags : if_willamette or if_sse2
),
(
- opcode : A_CVTSI2SD;
+ opcode : A_CVTSD2SS;
ops : 2;
- optypes : (ot_xmmreg,ot_reg32 or ot_bits64,ot_none,ot_none);
- code : #220#209#2#15#42#72;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #220#2#15#90#72;
flags : if_willamette or if_sse2
),
(
opcode : A_CVTSI2SD;
ops : 2;
- optypes : (ot_xmmreg,ot_memory,ot_none,ot_none);
- code : #220#209#2#15#42#72;
+ optypes : (ot_xmmreg,ot_rm_gpr or ot_bits32,ot_none,ot_none);
+ code : #220#2#15#42#72;
flags : if_willamette or if_sse2
),
(
opcode : A_CVTSS2SD;
ops : 2;
- optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
code : #219#2#15#90#72;
flags : if_willamette or if_sse2
),
(
- opcode : A_CVTTPD2PI;
+ opcode : A_CVTSS2SD;
ops : 2;
- optypes : (ot_mmxreg,ot_xmmreg,ot_none,ot_none);
- code : #241#2#15#44#72;
+ optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #219#2#15#90#72;
flags : if_willamette or if_sse2
),
(
opcode : A_CVTTPD2PI;
ops : 2;
- optypes : (ot_mmxreg,ot_memory,ot_none,ot_none);
+ optypes : (ot_mmxreg,ot_xmmrm,ot_none,ot_none);
code : #241#2#15#44#72;
flags : if_willamette or if_sse2
),
@@ -7276,7 +7276,7 @@
(
opcode : A_CVTTSD2SI;
ops : 2;
- optypes : (ot_reg32 or ot_bits64,ot_memory,ot_none,ot_none);
+ optypes : (ot_reg32 or ot_bits64,ot_memory or ot_bits64,ot_none,ot_none);
code : #220#208#2#15#44#72;
flags : if_willamette or if_sse2
),
@@ -8455,5 +8455,3113 @@
optypes : (ot_xmmreg,ot_xmmrm,ot_immediate,ot_none);
code : #241#3#15#58#223#72#22;
flags : if_sse4 or if_sb or if_ar2
+ ),
+ (
+ opcode : A_VADDPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#88#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#88#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#88#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#88#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #220#242#248#1#88#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#88#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#88#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#88#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDSUBPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#208#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDSUBPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#208#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDSUBPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #220#242#244#248#1#208#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDSUBPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #220#242#248#1#208#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VAESDEC;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#222#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VAESDECLAST;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#223#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VAESENC;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#220#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VAESENCLAST;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#221#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VAESIMC;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#249#1#219#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VAESKEYGENASSIST;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#223#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VANDNPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#85#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VANDNPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#85#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VANDNPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#85#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VANDNPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#85#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VANDPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#84#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VANDPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#84#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VANDPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#84#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VANDPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#84#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBLENDPD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#250#1#13#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBLENDPD;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+ code : #241#242#244#250#1#13#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBLENDPS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#250#1#12#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBLENDPS;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+ code : #241#242#244#250#1#12#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBLENDVPD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_xmmreg);
+ code : #241#242#250#1#75#61#80#247;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBLENDVPD;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_ymmreg);
+ code : #241#242#244#250#1#75#61#80#247;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBLENDVPS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_xmmreg);
+ code : #241#242#250#1#74#61#80#247;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBLENDVPS;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_ymmreg);
+ code : #241#242#244#250#1#74#61#80#247;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBROADCASTF128;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_memory or ot_bits128,ot_none,ot_none);
+ code : #241#242#244#249#1#26#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBROADCASTSD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #241#242#244#249#1#25#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBROADCASTSS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #241#242#244#249#1#24#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBROADCASTSS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #241#242#249#1#24#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCMPPD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#248#1#194#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCMPPD;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+ code : #241#242#244#248#1#194#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCMPPS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #242#248#1#194#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCMPPS;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+ code : #242#244#248#1#194#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCMPSD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+ code : #220#242#248#1#194#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCMPSD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+ code : #220#242#248#1#194#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCMPSS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+ code : #219#242#248#1#194#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCMPSS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+ code : #219#242#248#1#194#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCOMISD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #241#242#248#1#47#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCOMISD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#47#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCOMISS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #242#248#1#47#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCOMISS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#47#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTDQ2PD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #219#242#248#1#230#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTDQ2PD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #219#242#248#1#230#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTDQ2PD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_none,ot_none);
+ code : #219#242#244#248#1#230#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTDQ2PD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_memory or ot_bits128,ot_none,ot_none);
+ code : #219#242#244#248#1#230#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTDQ2PS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #242#248#1#91#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTDQ2PS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #242#244#248#1#91#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTPD2DQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #220#242#248#1#230#72;
+ flags : if_avx or if_sandybridge or if_si
+ ),
+ (
+ opcode : A_VCVTPD2DQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_ymmrm,ot_none,ot_none);
+ code : #220#242#244#248#1#230#72;
+ flags : if_avx or if_sandybridge or if_si
+ ),
+ (
+ opcode : A_VCVTPD2PS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#248#1#90#72;
+ flags : if_avx or if_sandybridge or if_si
+ ),
+ (
+ opcode : A_VCVTPD2PS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#248#1#90#72;
+ flags : if_avx or if_sandybridge or if_si
+ ),
+ (
+ opcode : A_VCVTPS2DQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#248#1#91#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTPS2DQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#248#1#91#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTPS2PD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #242#248#1#90#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTPS2PD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#90#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTPS2PD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #242#244#248#1#90#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSD2SI;
+ ops : 2;
+ optypes : (ot_reg32,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #220#242#248#1#45#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSD2SI;
+ ops : 2;
+ optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+ code : #220#242#248#1#45#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSD2SI;
+ ops : 2;
+ optypes : (ot_reg64,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #220#242#243#248#1#45#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSD2SI;
+ ops : 2;
+ optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+ code : #220#242#243#248#1#45#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSD2SS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #220#242#248#1#90#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSD2SS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#90#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSI2SD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits32,ot_none);
+ code : #220#242#248#1#42#61#80;
+ flags : if_avx or if_sandybridge or if_sd or if_si
+ ),
+ (
+ opcode : A_VCVTSI2SD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits64,ot_none);
+ code : #220#242#243#248#1#42#61#80;
+ flags : if_avx or if_sandybridge or if_si
+ ),
+ (
+ opcode : A_VCVTSI2SS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits32,ot_none);
+ code : #219#242#248#1#42#61#80;
+ flags : if_avx or if_sandybridge or if_sd or if_si
+ ),
+ (
+ opcode : A_VCVTSI2SS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits64,ot_none);
+ code : #219#242#243#248#1#42#61#80;
+ flags : if_avx or if_sandybridge or if_si
+ ),
+ (
+ opcode : A_VCVTSS2SD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#90#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSS2SD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#90#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSS2SI;
+ ops : 2;
+ optypes : (ot_reg32,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #219#242#248#1#45#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSS2SI;
+ ops : 2;
+ optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+ code : #219#242#248#1#45#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSS2SI;
+ ops : 2;
+ optypes : (ot_reg64,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #219#242#243#248#1#45#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSS2SI;
+ ops : 2;
+ optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+ code : #219#242#243#248#1#45#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTPD2DQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#248#1#230#72;
+ flags : if_avx or if_sandybridge or if_si
+ ),
+ (
+ opcode : A_VCVTTPD2DQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#248#1#230#72;
+ flags : if_avx or if_sandybridge or if_si
+ ),
+ (
+ opcode : A_VCVTTPS2DQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #219#242#248#1#91#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTPS2DQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #219#242#244#248#1#91#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTSD2SI;
+ ops : 2;
+ optypes : (ot_reg32,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #220#242#248#1#44#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTSD2SI;
+ ops : 2;
+ optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+ code : #220#242#248#1#44#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTSD2SI;
+ ops : 2;
+ optypes : (ot_reg64,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #220#242#243#248#1#44#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTSD2SI;
+ ops : 2;
+ optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+ code : #220#242#243#248#1#44#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTSS2SI;
+ ops : 2;
+ optypes : (ot_reg32,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #219#242#248#1#44#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTSS2SI;
+ ops : 2;
+ optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+ code : #219#242#248#1#44#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTSS2SI;
+ ops : 2;
+ optypes : (ot_reg64,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #219#242#243#248#1#44#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTSS2SI;
+ ops : 2;
+ optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+ code : #219#242#243#248#1#44#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDIVPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#94#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDIVPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#94#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDIVPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#94#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDIVPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#94#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDIVSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #220#242#248#1#94#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDIVSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#94#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDIVSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#94#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDIVSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#94#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDPPD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#250#1#65#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDPPS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#250#1#64#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDPPS;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+ code : #241#242#244#250#1#64#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VEXTRACTF128;
+ ops : 3;
+ optypes : (ot_xmmrm,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#244#250#1#25#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VEXTRACTPS;
+ ops : 3;
+ optypes : (ot_rm_gpr or ot_bits32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#23#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VHADDPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#124#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VHADDPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#124#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VHADDPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #220#242#248#1#124#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VHADDPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #220#242#244#248#1#124#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VHSUBPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#125#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VHSUBPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#125#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VHSUBPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #220#242#248#1#125#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VHSUBPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #220#242#244#248#1#125#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VINSERTF128;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#244#250#1#24#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VINSERTPS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+ code : #241#242#250#1#33#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VINSERTPS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+ code : #241#242#250#1#33#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VLDDQU;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits128,ot_none,ot_none);
+ code : #220#242#248#1#240#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VLDDQU;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_memory or ot_bits256,ot_none,ot_none);
+ code : #220#242#244#248#1#240#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VLDMXCSR;
+ ops : 1;
+ optypes : (ot_memory or ot_bits32,ot_none,ot_none,ot_none);
+ code : #242#248#1#174#130;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMASKMOVDQU;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#247#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMASKMOVPD;
+ ops : 3;
+ optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
+ code : #241#242#244#249#1#47#61#66;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMASKMOVPD;
+ ops : 3;
+ optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #241#242#249#1#47#61#66;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMASKMOVPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
+ code : #241#242#244#249#1#45#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMASKMOVPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
+ code : #241#242#249#1#45#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMASKMOVPS;
+ ops : 3;
+ optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
+ code : #241#242#244#249#1#46#61#66;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMASKMOVPS;
+ ops : 3;
+ optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #241#242#249#1#46#61#66;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMASKMOVPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
+ code : #241#242#244#249#1#44#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMASKMOVPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
+ code : #241#242#249#1#44#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMAXPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#95#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMAXPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#95#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMAXPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#95#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMAXPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#95#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMAXSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #220#242#248#1#95#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMAXSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#95#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMAXSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#95#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMAXSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#95#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMINPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#93#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMINPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#93#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMINPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#93#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMINPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#93#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMINSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #220#242#248#1#93#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMINSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#93#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMINSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#93#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMINSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#93#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVAPD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#248#1#40#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVAPD;
+ ops : 2;
+ optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#41#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVAPD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#248#1#40#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVAPD;
+ ops : 2;
+ optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
+ code : #241#242#244#248#1#41#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVAPS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #242#248#1#40#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVAPS;
+ ops : 2;
+ optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#41#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVAPS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #242#244#248#1#40#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVAPS;
+ ops : 2;
+ optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
+ code : #242#244#248#1#41#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_rm_gpr or ot_bits32,ot_none,ot_none);
+ code : #241#242#248#1#110#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVD;
+ ops : 2;
+ optypes : (ot_rm_gpr or ot_bits32,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#126#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDDUP;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #220#242#244#248#1#18#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDDUP;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #220#242#248#1#18#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDDUP;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #220#242#248#1#18#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDQA;
+ ops : 2;
+ optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
+ code : #241#242#244#248#1#127#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDQA;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#248#1#111#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDQA;
+ ops : 2;
+ optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#127#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDQA;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#248#1#111#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDQU;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #219#242#244#248#1#111#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDQU;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #219#242#248#1#111#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDQU;
+ ops : 2;
+ optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
+ code : #219#242#248#1#127#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDQU;
+ ops : 2;
+ optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
+ code : #219#242#244#248#1#127#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVHLPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #242#248#1#18#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVHPD;
+ ops : 2;
+ optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#23#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVHPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #241#242#248#1#22#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVHPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #242#248#1#22#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVHPS;
+ ops : 2;
+ optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#23#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVLHPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #242#248#1#22#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVLPD;
+ ops : 2;
+ optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#19#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVLPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #241#242#248#1#18#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVLPS;
+ ops : 2;
+ optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#19#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVLPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #242#248#1#18#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVMSKPD;
+ ops : 2;
+ optypes : (ot_reg32,ot_ymmreg,ot_none,ot_none);
+ code : #241#242#244#248#1#80#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVMSKPD;
+ ops : 2;
+ optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#80#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVMSKPD;
+ ops : 2;
+ optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#80#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVMSKPD;
+ ops : 2;
+ optypes : (ot_reg64,ot_ymmreg,ot_none,ot_none);
+ code : #241#242#244#248#1#80#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVMSKPS;
+ ops : 2;
+ optypes : (ot_reg32,ot_ymmreg,ot_none,ot_none);
+ code : #242#244#248#1#80#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVMSKPS;
+ ops : 2;
+ optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#80#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVMSKPS;
+ ops : 2;
+ optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#80#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVMSKPS;
+ ops : 2;
+ optypes : (ot_reg64,ot_ymmreg,ot_none,ot_none);
+ code : #242#244#248#1#80#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVNTDQ;
+ ops : 2;
+ optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#231#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVNTDQ;
+ ops : 2;
+ optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_none,ot_none);
+ code : #241#242#244#248#1#231#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVNTDQA;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits128,ot_none,ot_none);
+ code : #241#242#249#1#42#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVNTPD;
+ ops : 2;
+ optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_none,ot_none);
+ code : #241#242#244#248#1#43#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVNTPD;
+ ops : 2;
+ optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#43#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVNTPS;
+ ops : 2;
+ optypes : (ot_memory or ot_bits128,ot_ymmreg,ot_none,ot_none);
+ code : #242#244#248#1#43#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVNTPS;
+ ops : 2;
+ optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#43#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVQ;
+ ops : 2;
+ optypes : (ot_rm_gpr or ot_bits64,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#243#248#1#126#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_rm_gpr or ot_bits64,ot_none,ot_none);
+ code : #241#242#243#248#1#110#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#16#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #220#242#248#1#16#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#17#61#66;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSD;
+ ops : 2;
+ optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+ code : #220#242#248#1#17#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSHDUP;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #219#242#248#1#22#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSHDUP;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #219#242#244#248#1#22#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSLDUP;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #219#242#248#1#18#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSLDUP;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #219#242#244#248#1#18#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#16#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #219#242#248#1#16#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#17#61#66;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSS;
+ ops : 2;
+ optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+ code : #219#242#248#1#17#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVUPD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#248#1#16#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVUPD;
+ ops : 2;
+ optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#17#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVUPD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#248#1#16#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVUPD;
+ ops : 2;
+ optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
+ code : #241#242#244#248#1#17#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVUPS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #242#248#1#16#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVUPS;
+ ops : 2;
+ optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#17#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVUPS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #242#244#248#1#16#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVUPS;
+ ops : 2;
+ optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
+ code : #242#244#248#1#17#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMPSADBW;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#250#1#66#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMULPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#89#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMULPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#89#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMULPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#89#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMULPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#89#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMULSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #220#242#248#1#89#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMULSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#89#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMULSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#89#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMULSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#89#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VORPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#86#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VORPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#86#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VORPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#86#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPABSB;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#249#1#28#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPABSD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#249#1#30#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPABSW;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#249#1#29#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPACKSSDW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#107#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPACKSSWB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#99#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPACKUSDW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#43#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPACKUSWB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#103#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPADDB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#252#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPADDD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#254#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPADDQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#212#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPADDSB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#236#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPADDSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#237#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPADDUSB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#220#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPADDUSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#221#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPADDW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#253#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPALIGNR;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#250#1#15#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPAND;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#219#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPANDN;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#223#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPAVGB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#224#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPAVGW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#227#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPBLENDVB;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_xmmreg);
+ code : #241#242#250#1#76#61#80#247;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPBLENDW;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#250#1#14#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCLMULQDQ;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#250#1#68#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPEQB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#116#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPEQD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#118#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPEQQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#41#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPEQW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#117#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPESTRI;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#97#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPESTRM;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#96#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPGTB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#100#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPGTD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#102#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPGTQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#55#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPGTW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#101#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPISTRI;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#99#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPISTRM;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#98#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPERM2F128;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+ code : #241#242#244#250#1#6#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPERMILPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#13#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPERMILPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#5#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPERMILPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#244#250#1#5#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPERMILPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#13#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPERMILPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#12#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPERMILPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#4#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPERMILPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#244#250#1#4#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPERMILPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#12#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRB;
+ ops : 3;
+ optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#20#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRB;
+ ops : 3;
+ optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#20#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRB;
+ ops : 3;
+ optypes : (ot_memory or ot_bits8,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#20#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRD;
+ ops : 3;
+ optypes : (ot_rm_gpr or ot_bits32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#22#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRQ;
+ ops : 3;
+ optypes : (ot_rm_gpr or ot_bits64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#243#250#1#22#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRW;
+ ops : 3;
+ optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#197#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRW;
+ ops : 3;
+ optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#197#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRW;
+ ops : 3;
+ optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#21#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRW;
+ ops : 3;
+ optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#21#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRW;
+ ops : 3;
+ optypes : (ot_memory or ot_bits16,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#21#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPHADDD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#2#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPHADDSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#3#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPHADDW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#1#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPHMINPOSUW;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#249#1#65#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPHSUBD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#6#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPHSUBSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#7#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPHSUBW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#5#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPINSRB;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_reg32,ot_immediate or ot_bits8);
+ code : #241#242#250#1#32#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPINSRB;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits8,ot_immediate or ot_bits8);
+ code : #241#242#250#1#32#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPINSRD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits32,ot_immediate or ot_bits8);
+ code : #241#242#250#1#34#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPINSRQ;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits64,ot_immediate or ot_bits8);
+ code : #241#242#243#250#1#34#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPINSRW;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_reg32,ot_immediate or ot_bits8);
+ code : #241#242#248#1#196#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPINSRW;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits16,ot_immediate or ot_bits8);
+ code : #241#242#248#1#196#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMADDUBSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#4#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMADDWD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#245#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMAXSB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#60#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMAXSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#61#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMAXSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#238#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMAXUB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#222#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMAXUD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#63#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMAXUW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#62#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMINSB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#56#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMINSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#57#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMINSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#234#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMINUB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#218#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMINUD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#59#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMINUW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#58#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVMSKB;
+ ops : 2;
+ optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#215#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVMSKB;
+ ops : 2;
+ optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#215#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXBD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #241#242#249#1#33#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXBD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#33#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXBQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits16,ot_none,ot_none);
+ code : #241#242#249#1#34#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXBQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#34#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXBW;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #241#242#249#1#32#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXBW;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#32#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXDQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #241#242#249#1#37#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXDQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#37#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXWD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #241#242#249#1#35#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXWD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#35#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXWQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #241#242#249#1#36#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXWQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#36#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXBD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #241#242#249#1#49#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXBD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#49#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXBQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits16,ot_none,ot_none);
+ code : #241#242#249#1#50#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXBQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#50#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXBW;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #241#242#249#1#48#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXBW;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#48#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXDQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #241#242#249#1#53#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXDQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#53#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXWD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #241#242#249#1#51#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXWD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#51#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXWQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #241#242#249#1#52#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXWQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#52#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMULDQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#40#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMULHRSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#11#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMULHUW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#228#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMULHW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#229#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMULLD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#64#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMULLW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#213#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMULUDQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#244#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPOR;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#235#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSADBW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#246#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSHUFB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#0#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSHUFD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#112#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSHUFHW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #219#242#248#1#112#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSHUFLW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #220#242#248#1#112#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSIGNB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#8#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSIGND;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#10#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSIGNW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#9#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSLLD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#114#60#142#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSLLD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#242#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSLLDQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#115#60#143#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSLLQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#243#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSLLQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#115#60#142#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSLLW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#113#60#142#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSLLW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#241#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRAD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#114#60#140#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRAD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#226#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRAW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#113#60#140#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRAW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#225#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRLD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#114#60#138#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRLD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#210#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRLDQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#115#60#139#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRLQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#115#60#138#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRLQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#211#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRLW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#113#60#138#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRLW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#209#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSUBB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#248#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSUBD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#250#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSUBQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#251#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSUBSB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#232#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSUBSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#233#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSUBUSB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#216#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSUBUSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#217#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSUBW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#249#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPTEST;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#23#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPTEST;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#249#1#23#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPUNPCKHBW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#104#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPUNPCKHDQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#106#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPUNPCKHQDQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#109#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPUNPCKHWD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#105#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPUNPCKLBW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#96#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPUNPCKLDQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#98#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPUNPCKLQDQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#108#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPUNPCKLWD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#97#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPXOR;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#239#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VRCPPS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #242#248#1#83#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VRCPPS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #242#244#248#1#83#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VRCPSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#83#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VRCPSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#83#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VROUNDPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#244#250#1#9#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VROUNDPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#9#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VROUNDPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#244#250#1#8#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VROUNDPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#8#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VROUNDSD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+ code : #241#242#250#1#11#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VROUNDSD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+ code : #241#242#250#1#11#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VROUNDSS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+ code : #241#242#250#1#10#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VROUNDSS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+ code : #241#242#250#1#10#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VRSQRTPS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #242#244#248#1#82#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VRSQRTPS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #242#248#1#82#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VRSQRTSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#82#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VRSQRTSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#82#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSHUFPD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#248#1#198#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSHUFPD;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+ code : #241#242#244#248#1#198#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSHUFPS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #242#248#1#198#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSHUFPS;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+ code : #242#244#248#1#198#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSQRTPD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#248#1#81#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSQRTPD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#248#1#81#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSQRTPS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #242#248#1#81#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSQRTPS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #242#244#248#1#81#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSQRTSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #220#242#248#1#81#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSQRTSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#81#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSQRTSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#81#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSQRTSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#81#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSTMXCSR;
+ ops : 1;
+ optypes : (ot_memory or ot_bits32,ot_none,ot_none,ot_none);
+ code : #242#248#1#174#131;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSUBPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#92#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSUBPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#92#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSUBPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#92#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSUBPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#92#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSUBSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #220#242#248#1#92#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSUBSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#92#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSUBSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#92#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSUBSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#92#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VTESTPD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#249#1#15#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VTESTPD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#15#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VTESTPS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#14#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VTESTPS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#249#1#14#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUCOMISD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #241#242#248#1#46#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUCOMISD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#46#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUCOMISS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #242#248#1#46#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUCOMISS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#46#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUNPCKHPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#21#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUNPCKHPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#21#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUNPCKHPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#21#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUNPCKHPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#21#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUNPCKLPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#20#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUNPCKLPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#20#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUNPCKLPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#20#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUNPCKLPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#20#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VXORPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#87#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VXORPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#87#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VXORPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#87#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VXORPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#87#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VZEROALL;
+ ops : 0;
+ optypes : (ot_none,ot_none,ot_none,ot_none);
+ code : #242#244#248#1#119;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VZEROUPPER;
+ ops : 0;
+ optypes : (ot_none,ot_none,ot_none,ot_none);
+ code : #242#248#1#119;
+ flags : if_avx or if_sandybridge
)
);
diff --git a/compiler/i386/r386ari.inc b/compiler/i386/r386ari.inc
index 485e9d94a4..fd59f7d09b 100644
--- a/compiler/i386/r386ari.inc
+++ b/compiler/i386/r386ari.inc
@@ -70,4 +70,12 @@
69,
70,
71,
+72,
+73,
+74,
+75,
+76,
+77,
+78,
+79,
0
diff --git a/compiler/i386/r386att.inc b/compiler/i386/r386att.inc
index 2efe472cd4..126b745a71 100644
--- a/compiler/i386/r386att.inc
+++ b/compiler/i386/r386att.inc
@@ -70,4 +70,12 @@
'%xmm4',
'%xmm5',
'%xmm6',
-'%xmm7'
+'%xmm7',
+'%ymm0',
+'%ymm1',
+'%ymm2',
+'%ymm3',
+'%ymm4',
+'%ymm5',
+'%ymm6',
+'%ymm7'
diff --git a/compiler/i386/r386con.inc b/compiler/i386/r386con.inc
index eb1f3d0a78..5e58d92176 100644
--- a/compiler/i386/r386con.inc
+++ b/compiler/i386/r386con.inc
@@ -63,11 +63,19 @@ NR_MM4 = tregister($03000004);
NR_MM5 = tregister($03000005);
NR_MM6 = tregister($03000006);
NR_MM7 = tregister($03000007);
-NR_XMM0 = tregister($04000000);
-NR_XMM1 = tregister($04000001);
-NR_XMM2 = tregister($04000002);
-NR_XMM3 = tregister($04000003);
-NR_XMM4 = tregister($04000004);
-NR_XMM5 = tregister($04000005);
-NR_XMM6 = tregister($04000006);
-NR_XMM7 = tregister($04000007);
+NR_XMM0 = tregister($040C0000);
+NR_XMM1 = tregister($040C0001);
+NR_XMM2 = tregister($040C0002);
+NR_XMM3 = tregister($040C0003);
+NR_XMM4 = tregister($040C0004);
+NR_XMM5 = tregister($040C0005);
+NR_XMM6 = tregister($040C0006);
+NR_XMM7 = tregister($040C0007);
+NR_YMM0 = tregister($040D0000);
+NR_YMM1 = tregister($040D0001);
+NR_YMM2 = tregister($040D0002);
+NR_YMM3 = tregister($040D0003);
+NR_YMM4 = tregister($040D0004);
+NR_YMM5 = tregister($040D0005);
+NR_YMM6 = tregister($040D0006);
+NR_YMM7 = tregister($040D0007);
diff --git a/compiler/i386/r386dwrf.inc b/compiler/i386/r386dwrf.inc
index 79d6522842..20cdf5e6a9 100644
--- a/compiler/i386/r386dwrf.inc
+++ b/compiler/i386/r386dwrf.inc
@@ -70,4 +70,12 @@
25,
26,
27,
+28,
+21,
+22,
+23,
+24,
+25,
+26,
+27,
28
diff --git a/compiler/i386/r386int.inc b/compiler/i386/r386int.inc
index 585a5b0285..3b439920e9 100644
--- a/compiler/i386/r386int.inc
+++ b/compiler/i386/r386int.inc
@@ -70,4 +70,12 @@
'xmm4',
'xmm5',
'xmm6',
-'xmm7'
+'xmm7',
+'ymm0',
+'ymm1',
+'ymm2',
+'ymm3',
+'ymm4',
+'ymm5',
+'ymm6',
+'ymm7'
diff --git a/compiler/i386/r386iri.inc b/compiler/i386/r386iri.inc
index 33148cb940..c517f8ce98 100644
--- a/compiler/i386/r386iri.inc
+++ b/compiler/i386/r386iri.inc
@@ -70,4 +70,12 @@
68,
69,
70,
-71
+71,
+72,
+73,
+74,
+75,
+76,
+77,
+78,
+79
diff --git a/compiler/i386/r386nasm.inc b/compiler/i386/r386nasm.inc
index 1e2bd036b0..d2230f90c4 100644
--- a/compiler/i386/r386nasm.inc
+++ b/compiler/i386/r386nasm.inc
@@ -70,4 +70,12 @@
'xmm4',
'xmm5',
'xmm6',
-'xmm7'
+'xmm7',
+'ymm0',
+'ymm1',
+'ymm2',
+'ymm3',
+'ymm4',
+'ymm5',
+'ymm6',
+'ymm7'
diff --git a/compiler/i386/r386nor.inc b/compiler/i386/r386nor.inc
index 2e66b09488..4863b3012a 100644
--- a/compiler/i386/r386nor.inc
+++ b/compiler/i386/r386nor.inc
@@ -1,2 +1,2 @@
{ don't edit, this file is generated from x86reg.dat }
-72
+80
diff --git a/compiler/i386/r386nri.inc b/compiler/i386/r386nri.inc
index 33148cb940..c517f8ce98 100644
--- a/compiler/i386/r386nri.inc
+++ b/compiler/i386/r386nri.inc
@@ -70,4 +70,12 @@
68,
69,
70,
-71
+71,
+72,
+73,
+74,
+75,
+76,
+77,
+78,
+79
diff --git a/compiler/i386/r386num.inc b/compiler/i386/r386num.inc
index 5762785a18..ff47f970cd 100644
--- a/compiler/i386/r386num.inc
+++ b/compiler/i386/r386num.inc
@@ -63,11 +63,19 @@ tregister($03000004),
tregister($03000005),
tregister($03000006),
tregister($03000007),
-tregister($04000000),
-tregister($04000001),
-tregister($04000002),
-tregister($04000003),
-tregister($04000004),
-tregister($04000005),
-tregister($04000006),
-tregister($04000007)
+tregister($040C0000),
+tregister($040C0001),
+tregister($040C0002),
+tregister($040C0003),
+tregister($040C0004),
+tregister($040C0005),
+tregister($040C0006),
+tregister($040C0007),
+tregister($040D0000),
+tregister($040D0001),
+tregister($040D0002),
+tregister($040D0003),
+tregister($040D0004),
+tregister($040D0005),
+tregister($040D0006),
+tregister($040D0007)
diff --git a/compiler/i386/r386op.inc b/compiler/i386/r386op.inc
index c9df7fabcb..81df882978 100644
--- a/compiler/i386/r386op.inc
+++ b/compiler/i386/r386op.inc
@@ -70,4 +70,12 @@
4,
5,
6,
+7,
+0,
+1,
+2,
+3,
+4,
+5,
+6,
7
diff --git a/compiler/i386/r386ot.inc b/compiler/i386/r386ot.inc
index d30c918dc7..9b403f9db1 100644
--- a/compiler/i386/r386ot.inc
+++ b/compiler/i386/r386ot.inc
@@ -70,4 +70,12 @@ OT_XMMREG,
OT_XMMREG,
OT_XMMREG,
OT_XMMREG,
-OT_XMMREG
+OT_XMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG
diff --git a/compiler/i386/r386rni.inc b/compiler/i386/r386rni.inc
index 294022d5e2..77bd7520a0 100644
--- a/compiler/i386/r386rni.inc
+++ b/compiler/i386/r386rni.inc
@@ -49,6 +49,14 @@
69,
70,
71,
+72,
+73,
+74,
+75,
+76,
+77,
+78,
+79,
25,
26,
27,
diff --git a/compiler/i386/r386sri.inc b/compiler/i386/r386sri.inc
index 33148cb940..c517f8ce98 100644
--- a/compiler/i386/r386sri.inc
+++ b/compiler/i386/r386sri.inc
@@ -70,4 +70,12 @@
68,
69,
70,
-71
+71,
+72,
+73,
+74,
+75,
+76,
+77,
+78,
+79
diff --git a/compiler/i386/r386stab.inc b/compiler/i386/r386stab.inc
index d2fbf4d7e5..d7c15d7b6f 100644
--- a/compiler/i386/r386stab.inc
+++ b/compiler/i386/r386stab.inc
@@ -70,4 +70,12 @@
25,
26,
27,
+28,
+21,
+22,
+23,
+24,
+25,
+26,
+27,
28
diff --git a/compiler/i386/r386std.inc b/compiler/i386/r386std.inc
index 585a5b0285..3b439920e9 100644
--- a/compiler/i386/r386std.inc
+++ b/compiler/i386/r386std.inc
@@ -70,4 +70,12 @@
'xmm4',
'xmm5',
'xmm6',
-'xmm7'
+'xmm7',
+'ymm0',
+'ymm1',
+'ymm2',
+'ymm3',
+'ymm4',
+'ymm5',
+'ymm6',
+'ymm7'
diff --git a/compiler/m68k/cgcpu.pas b/compiler/m68k/cgcpu.pas
index a98ffce61b..fd00d8da7d 100644
--- a/compiler/m68k/cgcpu.pas
+++ b/compiler/m68k/cgcpu.pas
@@ -128,7 +128,8 @@ unit cgcpu;
TCGSize2OpSize: Array[tcgsize] of topsize =
(S_NO,S_B,S_W,S_L,S_L,S_NO,S_B,S_W,S_L,S_L,S_NO,
S_FS,S_FD,S_FX,S_NO,S_NO,
- S_NO,S_NO,S_NO,S_NO,S_NO,S_NO,S_NO,S_NO,S_NO,S_NO);
+ S_NO,S_NO,S_NO,S_NO,S_NO,S_NO,
+ S_NO,S_NO,S_NO,S_NO,S_NO,S_NO);
procedure create_codegen;
diff --git a/compiler/ncal.pas b/compiler/ncal.pas
index 73ca618ae6..fdd753a068 100644
--- a/compiler/ncal.pas
+++ b/compiler/ncal.pas
@@ -3822,11 +3822,8 @@ implementation
{ otherwise if the parameter is "complex", take the address }
{ of the parameter expression, store it in a temp and replace }
{ occurrences of the parameter with dereferencings of this }
- { temp }
- else
- { don't create a temp. for the often seen case that p^ is passed to a var parameter }
- if (paracomplexity>2) or
- ((paracomplexity>1) and not((para.left.nodetype=derefn) and (para.parasym.varspez = vs_var))) then
+ { temp }
+ else if (paracomplexity > 1) then
begin
wrapcomplexinlinepara(para);
end;
diff --git a/compiler/ppcgen/cgppc.pas b/compiler/ppcgen/cgppc.pas
index ad500fc52a..3ffa4f5da2 100644
--- a/compiler/ppcgen/cgppc.pas
+++ b/compiler/ppcgen/cgppc.pas
@@ -160,8 +160,8 @@ unit cgppc;
cgsize_strings : array[TCgSize] of string[8] = (
'OS_NO', 'OS_8', 'OS_16', 'OS_32', 'OS_64', 'OS_128', 'OS_S8', 'OS_S16', 'OS_S32',
'OS_S64', 'OS_S128', 'OS_F32', 'OS_F64', 'OS_F80', 'OS_C64', 'OS_F128',
- 'OS_M8', 'OS_M16', 'OS_M32', 'OS_M64', 'OS_M128', 'OS_MS8', 'OS_MS16', 'OS_MS32',
- 'OS_MS64', 'OS_MS128');
+ 'OS_M8', 'OS_M16', 'OS_M32', 'OS_M64', 'OS_M128', 'OS_M256', 'OS_MS8', 'OS_MS16', 'OS_MS32',
+ 'OS_MS64', 'OS_MS128', 'OS_MS256');
begin
result := cgsize_strings[size];
end;
diff --git a/compiler/utils/mkx86ins.pp b/compiler/utils/mkx86ins.pp
index 72cbc8b5cb..27b206c972 100644
--- a/compiler/utils/mkx86ins.pp
+++ b/compiler/utils/mkx86ins.pp
@@ -56,7 +56,7 @@ var
function formatop(s:string;allowsizeonly:boolean):string;
const
- replaces=26;
+ replaces=28;
replacetab : array[1..replaces,1..2] of string[32]=(
(':',' or ot_colon'),
('reg','regnorm'),
@@ -70,6 +70,8 @@ function formatop(s:string;allowsizeonly:boolean):string;
('mem16','memory or ot_bits16'),
('mem32','memory or ot_bits32'),
('mem64','memory or ot_bits64'),
+ ('mem128','memory or ot_bits128'),
+ ('mem256','memory or ot_bits256'),
('mem80','memory or ot_bits80'),
('mem','memory'),
('memory_offs','mem_offs'),
@@ -269,6 +271,11 @@ begin
attopcode:=Copy(s,i+1,j-i-1);
{ att Suffix }
case attopcode[length(attopcode)] of
+ 'M' :
+ begin
+ dec(attopcode[0]);
+ attsuffix:='attsufMM';
+ end;
'X' :
begin
dec(attopcode[0]);
diff --git a/compiler/utils/mkx86reg.pp b/compiler/utils/mkx86reg.pp
index bce54ba519..06967358b5 100644
--- a/compiler/utils/mkx86reg.pp
+++ b/compiler/utils/mkx86reg.pp
@@ -17,7 +17,7 @@
program mkx86reg;
const Version = '1.00';
- max_regcount = 128;
+ max_regcount = 200;
var s : string;
i : longint;
diff --git a/compiler/x86/aasmcpu.pas b/compiler/x86/aasmcpu.pas
index dc7d7cee8a..25219a3eb7 100644
--- a/compiler/x86/aasmcpu.pas
+++ b/compiler/x86/aasmcpu.pas
@@ -51,6 +51,8 @@ interface
OT_BITS16 = $00000002;
OT_BITS32 = $00000004;
OT_BITS64 = $00000008; { x86_64 and FPU }
+ OT_BITS128 = $10000000; { 16 byte SSE }
+ OT_BITS256 = $20000000; { 32 byte AVX }
OT_BITS80 = $00000010; { FPU only }
OT_FAR = $00000020; { this means 16:16 or 16:32, like in CALL/JMP }
OT_NEAR = $00000040;
@@ -58,7 +60,7 @@ interface
{ TODO: FAR/NEAR/SHORT are sizes too, they should be included into size mask,
but this requires adjusting the opcode table }
- OT_SIZE_MASK = $0000001F; { all the size attributes }
+ OT_SIZE_MASK = $3000001F; { all the size attributes }
OT_NON_SIZE = longint(not OT_SIZE_MASK);
{ Bits 8..11: modifiers }
@@ -84,6 +86,7 @@ interface
otf_reg_fpu = $01000000;
otf_reg_mmx = $02000000;
otf_reg_xmm = $04000000;
+ otf_reg_ymm = $08000000;
{ Bits 16..19: subclasses, meaning depends on classes field }
otf_sub0 = $00010000;
otf_sub1 = $00020000;
@@ -148,18 +151,24 @@ interface
OT_XMMREG = OT_REGNORM or otf_reg_xmm;
OT_XMMRM = OT_REGMEM or otf_reg_xmm;
+ { register class 5: XMM (both reg and r/m) }
+ OT_YMMREG = OT_REGNORM or otf_reg_ymm;
+ OT_YMMRM = OT_REGMEM or otf_reg_ymm;
+
{ Memory operands }
OT_MEM8 = OT_MEMORY or OT_BITS8;
OT_MEM16 = OT_MEMORY or OT_BITS16;
OT_MEM32 = OT_MEMORY or OT_BITS32;
OT_MEM64 = OT_MEMORY or OT_BITS64;
+ OT_MEM128 = OT_MEMORY or OT_BITS128;
+ OT_MEM256 = OT_MEMORY or OT_BITS256;
OT_MEM80 = OT_MEMORY or OT_BITS80;
OT_MEM_OFFS = OT_MEMORY or otf_sub0; { special type of EA }
{ simple [address] offset }
{ Matches any type of r/m operand }
- OT_MEMORY_ANY = OT_MEMORY or OT_RM_GPR or OT_XMMRM or OT_MMXRM;
+ OT_MEMORY_ANY = OT_MEMORY or OT_RM_GPR or OT_XMMRM or OT_MMXRM or OT_YMMRM;
{ Immediate operands }
OT_IMM8 = OT_IMMEDIATE or OT_BITS8;
@@ -212,6 +221,16 @@ interface
Ch : Array[1..MaxInsChanges] of TInsChange;
end;
+ TMemRefSizeInfo = (msiUnkown, msiMultiple, msiMemRegSize,
+ msiMem8, msiMem16, msiMem32, msiMem64, msiMem128, msiMem256);
+
+ TConstSizeInfo = (csiUnkown, csiMultiple, csiNoSize, csiMem8, csiMem16, csiMem32, csiMem64);
+
+ TInsTabMemRefSizeInfoRec = record
+ MemRefSize : TMemRefSizeInfo;
+ ExistsSSEAVX: boolean;
+ ConstSize : TConstSizeInfo;
+ end;
const
InsProp : array[tasmop] of TInsProp =
{$ifdef x86_64}
@@ -228,7 +247,7 @@ interface
ops : byte;
optypes : array[0..max_operands-1] of longint;
code : array[0..maxinfolen] of char;
- flags : cardinal;
+ flags : int64;
end;
pinsentry=^tinsentry;
@@ -313,6 +332,8 @@ interface
function spilling_create_load(const ref:treference;r:tregister):Taicpu;
function spilling_create_store(r:tregister; const ref:treference):Taicpu;
+ function MemRefInfo(aAsmop: TAsmOp): TInsTabMemRefSizeInfoRec;
+
procedure InitAsm;
procedure DoneAsm;
@@ -345,6 +366,7 @@ implementation
IF_AR2 = $00000060; { SB, SW, SD applies to argument 2 }
IF_ARMASK = $00000060; { mask for unsized argument spec }
IF_ARSHIFT = 5; { LSB of IF_ARMASK }
+ IF_SI = $00000080; { ignore unsized operands }
IF_PRIV = $00000100; { it's a privileged instruction }
IF_SMM = $00000200; { it's only valid in SMM }
IF_PROT = $00000400; { it's protected mode only }
@@ -375,6 +397,8 @@ implementation
IF_SSSE3 = $00200000;
IF_SSE41 = $00200000;
IF_SSE42 = $00200000;
+ IF_AVX = $00200000;
+ IF_SANDYBRIDGE = $00200000;
IF_8086 = $00000000; { 8086 instruction }
IF_186 = $01000000; { 186+ instruction }
@@ -400,6 +424,9 @@ implementation
TInsTabCache=array[TasmOp] of longint;
PInsTabCache=^TInsTabCache;
+ TInsTabMemRefSizeInfoCache=array[TasmOp] of TInsTabMemRefSizeInfoRec;
+ PInsTabMemRefSizeInfoCache=^TInsTabMemRefSizeInfoCache;
+
const
{$ifdef x86_64}
InsTab:array[0..instabentries-1] of TInsEntry={$i x8664tab.inc}
@@ -408,7 +435,7 @@ implementation
{$endif x86_64}
var
InsTabCache : PInsTabCache;
-
+ InsTabMemRefSizeInfoCache: PInsTabMemRefSizeInfoCache;
const
{$ifdef x86_64}
{ Intel style operands ! }
@@ -420,7 +447,8 @@ implementation
OT_BITS64,
OT_NEAR,OT_FAR,OT_SHORT,
OT_NONE,
- OT_NONE
+ OT_BITS128,
+ OT_BITS256
),
(OT_NONE,
OT_BITS8,OT_BITS16,OT_BITS32,OT_BITS64,OT_BITS8,OT_BITS8,OT_BITS16,OT_BITS8,OT_BITS16,OT_BITS32,
@@ -429,7 +457,8 @@ implementation
OT_BITS64,
OT_NEAR,OT_FAR,OT_SHORT,
OT_NONE,
- OT_NONE
+ OT_BITS128,
+ OT_BITS256
),
(OT_NONE,
OT_BITS8,OT_BITS16,OT_BITS32,OT_BITS64,OT_NONE,OT_NONE,OT_NONE,OT_NONE,OT_NONE,OT_NONE,
@@ -438,7 +467,8 @@ implementation
OT_BITS64,
OT_NEAR,OT_FAR,OT_SHORT,
OT_NONE,
- OT_NONE
+ OT_BITS128,
+ OT_BITS256
)
);
@@ -455,7 +485,8 @@ implementation
OT_BITS64,
OT_NEAR,OT_FAR,OT_SHORT,
OT_NONE,
- OT_NONE
+ OT_BITS128,
+ OT_BITS256
),
(OT_NONE,
OT_BITS8,OT_BITS16,OT_BITS32,OT_BITS64,OT_BITS8,OT_BITS8,OT_BITS16,
@@ -464,7 +495,8 @@ implementation
OT_BITS64,
OT_NEAR,OT_FAR,OT_SHORT,
OT_NONE,
- OT_NONE
+ OT_BITS128,
+ OT_BITS256
),
(OT_NONE,
OT_BITS8,OT_BITS16,OT_BITS32,OT_BITS64,OT_NONE,OT_NONE,OT_NONE,
@@ -473,7 +505,8 @@ implementation
OT_BITS64,
OT_NEAR,OT_FAR,OT_SHORT,
OT_NONE,
- OT_NONE
+ OT_BITS128,
+ OT_BITS256
)
);
@@ -482,6 +515,11 @@ implementation
);
{$endif x86_64}
+ function MemRefInfo(aAsmop: TAsmOp): TInsTabMemRefSizeInfoRec;
+ begin
+ result := InsTabMemRefSizeInfoCache^[aAsmop];
+ end;
+
{ Operation type for spilling code }
type
toperation_type_table=array[tasmop,0..Max_Operands] of topertype;
@@ -808,6 +846,9 @@ implementation
if (ot and OT_XMMREG)=OT_XMMREG then
s:=s+'xmmreg'
else
+ if (ot and OT_YMMREG)=OT_YMMREG then
+ s:=s+'ymmreg'
+ else
if (ot and OT_MMXREG)=OT_MMXREG then
s:=s+'mmxreg'
else
@@ -848,6 +889,12 @@ implementation
if (ot and OT_BITS64)<>0 then
s:=s+'64'
else
+ if (ot and OT_BITS128)<>0 then
+ s:=s+'128'
+ else
+ if (ot and OT_BITS256)<>0 then
+ s:=s+'256'
+ else
s:=s+'??';
{ signed }
if (ot and OT_SIGNED)<>0 then
@@ -1073,16 +1120,33 @@ implementation
end;
top_const :
begin
- { allow 2nd, 3rd or 4th operand being a constant and expect no size for shuf* etc. }
- { further, allow AAD and AAM with imm. operand }
- if (opsize=S_NO) and not((i in [1,2,3]) or ((i=0) and (opcode in [A_AAD,A_AAM]))) then
- message(asmr_e_invalid_opcode_and_operand);
- if (opsize<>S_W) and (aint(val)>=-128) and (val<=127) then
- ot:=OT_IMM8 or OT_SIGNED
+ // if opcode is a SSE or AVX-instruction then we need a
+ // special handling (opsize can different from const-size)
+ // (e.g. "pextrw reg/m16, xmmreg, imm8" =>> opsize (16 bit), const-size (8 bit)
+ if (InsTabMemRefSizeInfoCache^[opcode].ExistsSSEAVX) and
+ (not(InsTabMemRefSizeInfoCache^[opcode].ConstSize in [csiMultiple, csiUnkown])) then
+ begin
+ case InsTabMemRefSizeInfoCache^[opcode].ConstSize of
+ csiNoSize: ot := ot and (not(OT_SIZE_MASK)) or OT_IMMEDIATE;
+ csiMem8: ot := ot and (not(OT_SIZE_MASK)) or OT_IMMEDIATE or OT_BITS8;
+ csiMem16: ot := ot and (not(OT_SIZE_MASK)) or OT_IMMEDIATE or OT_BITS16;
+ csiMem32: ot := ot and (not(OT_SIZE_MASK)) or OT_IMMEDIATE or OT_BITS32;
+ csiMem64: ot := ot and (not(OT_SIZE_MASK)) or OT_IMMEDIATE or OT_BITS64;
+ end;
+ end
else
- ot:=OT_IMMEDIATE or opsize_2_type[i,opsize];
- if (val=1) and (i=1) then
- ot := ot or OT_ONENESS;
+ begin
+ { allow 2nd, 3rd or 4th operand being a constant and expect no size for shuf* etc. }
+ { further, allow AAD and AAM with imm. operand }
+ if (opsize=S_NO) and not((i in [1,2,3]) or ((i=0) and (opcode in [A_AAD,A_AAM]))) then
+ message(asmr_e_invalid_opcode_and_operand);
+ if (opsize<>S_W) and (aint(val)>=-128) and (val<=127) then
+ ot:=OT_IMM8 or OT_SIGNED
+ else
+ ot:=OT_IMMEDIATE or opsize_2_type[i,opsize];
+ if (val=1) and (i=1) then
+ ot := ot or OT_ONENESS;
+ end;
end;
top_none :
begin
@@ -1208,6 +1272,48 @@ implementation
(((insot and OT_SIZE_MASK) or siz[i])<(currot and OT_SIZE_MASK)) then
exit;
end;
+ end
+ else
+ begin
+ if insflags and IF_SI <> 0 then
+ begin
+ // any opcodes needed a unique mem-size for memory-operands
+ // in this time (e.g. CVTSI2SD, CVTSI2SS, VCVTPD2DQ, VCVTPD2PS, VCVTSI2SD, VCVTSI2SS, VCVTTPD2DQ)
+ // (e.g. "VCVTPD2DQ xmmreg, mem128", "VCVTPD2DQ xmmreg, mem256")
+ // =>> we need the exact mem-ref-size
+
+ { Check operand sizes }
+ for i:=0 to p^.ops-1 do
+ begin
+ insot:=p^.optypes[i];
+ currot:=oper[i]^.ot;
+
+ if ((currot and OT_MEMORY) = OT_MEMORY) then
+ begin
+ if (currot and OT_SIZE_MASK) = 0 then
+ begin
+ // no operand size for memory operand
+ exit;
+ end
+ else
+ begin
+ if (insot and OT_XMMRM = OT_XMMRM) then
+ begin
+ if (currot and OT_SIZE_MASK) <> OT_BITS128 then
+ exit;
+ end
+ else if (insot and OT_YMMRM = OT_YMMRM) then
+ begin
+ if (currot and OT_SIZE_MASK) <> OT_BITS256 then
+ exit;
+ end;
+ end;
+ end;
+ end;
+
+
+ // ignore operands without operand size
+ end;
end;
result:=true;
@@ -1729,12 +1835,22 @@ implementation
c : byte;
len : shortint;
ea_data : ea;
+ exists_vex: boolean;
+ exists_vex_extention: boolean;
+ exists_prefix_66: boolean;
+ exists_prefix_F2: boolean;
+ exists_prefix_F3: boolean;
{$ifdef x86_64}
omit_rexw : boolean;
{$endif x86_64}
begin
len:=0;
codes:=@p^.code[0];
+ exists_vex := false;
+ exists_vex_extention := false;
+ exists_prefix_66 := false;
+ exists_prefix_F2 := false;
+ exists_prefix_F3 := false;
{$ifdef x86_64}
rex:=0;
omit_rexw:=false;
@@ -1795,6 +1911,7 @@ implementation
56,57,58,
172,173,174 :
inc(len,4);
+ 60,61,62,63: ; // ignore vex-coded operand-idx
208,209,210 :
begin
case (oper[c-208]^.ot and OT_SIZE_MASK) of
@@ -1833,8 +1950,21 @@ implementation
213,
215,
217,218: ;
- 219,220,241 :
- inc(len);
+ 219:
+ begin
+ inc(len);
+ exists_prefix_F2 := true;
+ end;
+ 220:
+ begin
+ inc(len);
+ exists_prefix_F3 := true;
+ end;
+ 241:
+ begin
+ inc(len);
+ exists_prefix_66 := true;
+ end;
221:
{$ifdef x86_64}
omit_rexw:=true
@@ -1861,6 +1991,38 @@ implementation
{$endif x86_64}
end;
+ 242: // VEX prefix for AVX (length = 2 or 3 bytes, dependens on REX.XBW or opcode-prefix ($0F38 or $0F3A))
+ // =>> DEFAULT = 2 Bytes
+ begin
+ if not(exists_vex) then
+ begin
+ inc(len, 2);
+ exists_vex := true;
+ end;
+ end;
+ 243: // REX.W = 1
+ // =>> VEX prefix length = 3
+ begin
+ if not(exists_vex_extention) then
+ begin
+ inc(len);
+ exists_vex_extention := true;
+ end;
+ end;
+ 244: ; // VEX length bit
+ 247: inc(len); // operand 3 (ymmreg) encoded immediate byte (bit 4-7)
+ 248: // VEX-Extention prefix $0F
+ // ignore for calculating length
+ ;
+ 249, // VEX-Extention prefix $0F38
+ 250: // VEX-Extention prefix $0F3A
+ begin
+ if not(exists_vex_extention) then
+ begin
+ inc(len);
+ exists_vex_extention := true;
+ end;
+ end;
else
InternalError(200603141);
end;
@@ -1876,9 +2038,27 @@ implementation
else
rex:=rex and $F7;
end;
- if rex<>0 then
- Inc(len);
+ if not(exists_vex) then
+ begin
+ if rex<>0 then
+ Inc(len);
+ end;
{$endif}
+ if exists_vex then
+ begin
+ if exists_prefix_66 then dec(len);
+ if exists_prefix_F2 then dec(len);
+ if exists_prefix_F3 then dec(len);
+
+ {$ifdef x86_64}
+ if not(exists_vex_extention) then
+ begin
+ // REX.WXB <> 0 =>> needed VEX-Extention
+ if rex and $0B <> 0 then inc(len);
+ end;
+ {$endif x86_64}
+
+ end;
calcsize:=len;
end;
@@ -1912,6 +2092,7 @@ implementation
* \64, \65, \66 - select between \6[012] and \7[012] depending on 16/32 bit
* assembly mode or the address-size override on the operand
* \70, \71, \72 - a long relative operand, from operand 0, 1 or 2
+ * \74, \75, \76 - a vex-coded vector operand, from operand 0, 1 or 2
* \1ab - a ModRM, calculated on EA in operand a, with the spare
* field the register value of operand b.
* \2ab - a ModRM, calculated on EA in operand a, with the spare
@@ -1937,6 +2118,16 @@ implementation
* \334 - 0xF2 prefix for SSE instructions
* \335 - Indicates 64-bit operand size with REX.W not necessary
* \361 - 0x66 prefix for SSE instructions
+
+ * \362 - VEX prefix for AVX instructions
+ * \363 - VEX W1
+ * \364 - VEX Vector length 256
+ * \367 - operand 3 (ymmreg) encoded in bit 4-7 of the immediate byte
+
+ * \370 - VEX 0F-FLAG
+ * \371 - VEX 0F38-FLAG
+ * \372 - VEX 0F3A-FLAG
+
}
var
@@ -2047,6 +2238,13 @@ implementation
data,s,opidx : longint;
ea_data : ea;
relsym : TObjSymbol;
+ needed_VEX_Extention: boolean;
+ needed_VEX: boolean;
+ opmode: integer;
+ i: integer;
+ insot: longint;
+ VEXvvvv: byte;
+ VEXmmmmm: byte;
begin
{ safety check }
if objdata.currobjsec.size<>longword(insoffset) then
@@ -2059,10 +2257,129 @@ implementation
{ Force word push/pop for registers }
if (opsize=S_W) and ((codes[0]=#4) or (codes[0]=#6) or
((codes[0]=#1) and ((codes[2]=#5) or (codes[2]=#7)))) then
+ begin
+ bytes[0]:=$66;
+ objdata.writebytes(bytes,1);
+ end;
+
+ // needed VEX Prefix (for AVX etc.)
+
+ needed_VEX := false;
+ needed_VEX_Extention := false;
+ opmode := -1;
+ VEXvvvv := 0;
+ VEXmmmmm := 0;
+ repeat
+ c:=ord(codes^);
+ inc(codes);
+
+ case c of
+ 0: break;
+ 1,
+ 2,
+ 3: inc(codes,c);
+ 60: opmode := 0;
+ 61: opmode := 1;
+ 62: opmode := 2;
+ 219: VEXvvvv := VEXvvvv OR $02; // set SIMD-prefix $F3
+ 220: VEXvvvv := VEXvvvv OR $03; // set SIMD-prefix $F2
+ 241: VEXvvvv := VEXvvvv OR $01; // set SIMD-prefix $66
+ 242: needed_VEX := true;
+ 243: begin
+ needed_VEX_Extention := true;
+ VEXvvvv := VEXvvvv OR (1 shl 7); // set REX.W
+ end;
+ 244: VEXvvvv := VEXvvvv OR $04; // vectorlength = 256 bits AND no scalar
+ 248: VEXmmmmm := VEXmmmmm OR $01; // set leading opcode byte $0F
+ 249: begin
+ needed_VEX_Extention := true;
+ VEXmmmmm := VEXmmmmm OR $02; // set leading opcode byte $0F38
+ end;
+ 250: begin
+ needed_VEX_Extention := true;
+ VEXmmmmm := VEXmmmmm OR $03; // set leading opcode byte $0F3A
+ end;
+
+ end;
+ until false;
+
+ if needed_VEX then
+ begin
+ if (opmode > ops) or
+ (opmode < -1) then
+ begin
+ Internalerror(777100);
+ end
+ else if opmode = -1 then
+ begin
+ VEXvvvv := VEXvvvv or ($0F shl 3); // set VEXvvvv bits (bits 6-3) to 1
+ end
+ else if oper[opmode]^.typ = top_reg then
+ begin
+ VEXvvvv := VEXvvvv or ((not(regval(oper[opmode]^.reg)) and $07) shl 3);
+
+ {$ifdef x86_64}
+ if rexbits(oper[opmode]^.reg) = 0 then VEXvvvv := VEXvvvv or (1 shl 6);
+ {$else}
+ VEXvvvv := VEXvvvv or (1 shl 6);
+ {$endif x86_64}
+ end
+ else Internalerror(777101);
+
+ if not(needed_VEX_Extention) then
+ begin
+ {$ifdef x86_64}
+ if rex and $0B <> 0 then needed_VEX_Extention := true;
+ {$endif x86_64}
+ end;
+
+ if needed_VEX_Extention then
+ begin
+ // VEX-Prefix-Length = 3 Bytes
+ bytes[0]:=$C4;
+ objdata.writebytes(bytes,1);
+
+ {$ifdef x86_64}
+ VEXmmmmm := VEXmmmmm or ((not(rex) and $07) shl 5); // set REX.rxb
+ {$else}
+ VEXmmmmm := VEXmmmmm or (7 shl 5); //
+ {$endif x86_64}
+
+ bytes[0] := VEXmmmmm;
+ objdata.writebytes(bytes,1);
+
+ {$ifdef x86_64}
+ VEXvvvv := VEXvvvv OR ((rex and $08) shl 7); // set REX.w
+ {$endif x86_64}
+ bytes[0] := VEXvvvv;
+ objdata.writebytes(bytes,1);
+ end
+ else
begin
- bytes[0]:=$66;
+ // VEX-Prefix-Length = 2 Bytes
+ bytes[0]:=$C5;
+ objdata.writebytes(bytes,1);
+
+ {$ifdef x86_64}
+ if rex and $04 = 0 then
+ {$endif x86_64}
+ begin
+ VEXvvvv := VEXvvvv or (1 shl 7);
+ end;
+
+ bytes[0] := VEXvvvv;
objdata.writebytes(bytes,1);
end;
+ end
+ else
+ begin
+ needed_VEX_Extention := false;
+ opmode := -1;
+ end;
+
+ { load data to write }
+ codes:=insentry^.code;
+
repeat
c:=ord(codes^);
inc(codes);
@@ -2072,7 +2389,10 @@ implementation
1,2,3 :
begin
{$ifdef x86_64}
- maybewriterex;
+ if not(needed_VEX) then
+ begin
+ maybewriterex;
+ end;
{$endif x86_64}
objdata.writebytes(codes^,c);
inc(codes,c);
@@ -2113,7 +2433,10 @@ implementation
8,9,10 :
begin
{$ifdef x86_64}
- maybewriterex;
+ if not(needed_VEX) then
+ begin
+ maybewriterex;
+ end;
{$endif x86_64}
bytes[0]:=ord(codes^)+regval(oper[c-8]^.reg);
inc(codes);
@@ -2242,6 +2565,8 @@ implementation
else
objdata_writereloc(currval-insend,4,nil,currabsreloc32)
end;
+ 60,61,62 : ; // 074..076 - vex-coded vector operand
+ // ignore
172,173,174 : // 0254..0256 - dword implicitly sign-extended to 64-bit (x86_64 only)
begin
getvalsym(c-172);
@@ -2292,10 +2617,14 @@ implementation
211,
213 : {no action needed};
- 212, 241 :
+ 212,
+ 241:
begin
- bytes[0]:=$66;
- objdata.writebytes(bytes,1);
+ if not(needed_VEX) then
+ begin
+ bytes[0]:=$66;
+ objdata.writebytes(bytes,1);
+ end;
end;
214 :
begin
@@ -2305,13 +2634,19 @@ implementation
end;
219 :
begin
- bytes[0]:=$f3;
- objdata.writebytes(bytes,1);
+ if not(needed_VEX) then
+ begin
+ bytes[0]:=$f3;
+ objdata.writebytes(bytes,1);
+ end;
end;
220 :
begin
- bytes[0]:=$f2;
- objdata.writebytes(bytes,1);
+ if not(needed_VEX) then
+ begin
+ bytes[0]:=$f2;
+ objdata.writebytes(bytes,1);
+ end;
end;
221:
;
@@ -2322,6 +2657,29 @@ implementation
{ these are dissambler hints or 32 bit prefixes which
are not needed }
end;
+ 242..244: ; // VEX flags =>> nothing todo
+ 247: begin
+ if needed_VEX then
+ begin
+ if ops = 4 then
+ begin
+ if (oper[3]^.typ=top_reg) then
+ begin
+ if (oper[3]^.ot and otf_reg_xmm <> 0) or
+ (oper[3]^.ot and otf_reg_ymm <> 0) then
+ begin
+ bytes[0] := ((getsupreg(oper[3]^.reg) and 15) shl 4);
+ objdata.writebytes(bytes,1);
+ end
+ else Internalerror(777102);
+ end
+ else Internalerror(777103);
+ end
+ else Internalerror(777104);
+ end
+ else Internalerror(777105);
+ end;
+ 248..250: ; // VEX flags =>> nothing todo
31,
48,49,50 :
begin
@@ -2331,8 +2689,11 @@ implementation
begin
{ rex should be written at this point }
{$ifdef x86_64}
- if (rex<>0) and not(rexwritten) then
- internalerror(200603191);
+ if not(needed_VEX) then
+ begin
+ if (rex<>0) and not(rexwritten) then
+ internalerror(200603191);
+ end;
{$endif x86_64}
if (c>=64) and (c<=151) then // 0100..0227
begin
@@ -2597,11 +2958,169 @@ implementation
end;
+ procedure BuildInsTabMemRefSizeInfoCache;
+ var
+ AsmOp: TasmOp;
+ i,j: longint;
+ insentry : PInsEntry;
+ MRefInfo: TMemRefSizeInfo;
+ SConstInfo: TConstSizeInfo;
+ actRegSize: int64;
+ RegSize: int64;
+ MemSize: int64;
+ IsRegSizeMemSize: boolean;
+ ExistsRegMem: boolean;
+
+ begin
+ new(InsTabMemRefSizeInfoCache);
+ FillChar(InsTabMemRefSizeInfoCache^,sizeof(TInsTabMemRefSizeInfoCache),0);
+
+ for AsmOp := low(TAsmOp) to high(TAsmOp) do
+ begin
+ i := InsTabCache^[AsmOp];
+
+ if i >= 0 then
+ begin
+ InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize := msiUnkown;
+ RegSize := 0;
+ IsRegSizeMemSize := true;
+ ExistsRegMem := false;
+
+ insentry:=@instab[i];
+ while (insentry^.opcode=AsmOp) do
+ begin
+ MRefInfo := msiUnkown;
+ actRegSize := -1;
+
+ for j := 0 to insentry^.ops -1 do
+ begin
+ if ((insentry^.optypes[j] and OT_MEMORY) <> 0) then
+ begin
+ if (insentry^.optypes[j] and OT_REGISTER) = OT_REGISTER then
+ begin
+ MRefInfo := msiUnkown;
+
+ actRegSize := insentry^.optypes[j] and OT_SIZE_MASK;
+ if actRegSize = 0 then
+ begin
+ case insentry^.optypes[j] and (OT_XMMREG OR OT_YMMREG) of
+ OT_XMMREG: begin
+ actRegSize := OT_BITS128;
+ InsTabMemRefSizeInfoCache^[AsmOp].ExistsSSEAVX := true;
+ end;
+ OT_YMMREG: begin
+ actRegSize := OT_BITS256;
+ InsTabMemRefSizeInfoCache^[AsmOp].ExistsSSEAVX := true;
+ end;
+ end;
+ end;
+
+ if RegSize = 0 then RegSize := actRegSize
+ else if actRegSize <> RegSize then RegSize := -1;
+ end
+ else
+ begin
+ MemSize := insentry^.optypes[j] and OT_SIZE_MASK;
+ case MemSize of
+ 0: case insentry^.optypes[j] and (OT_MMXRM OR OT_XMMRM OR OT_YMMRM OR OT_REGISTER) of
+ OT_MMXRM: begin
+ MRefInfo := msiMem64;
+ MemSize := OT_BITS64;
+ end;
+ OT_XMMRM: begin
+ MRefInfo := msiMem128;
+ MemSize := OT_BITS128;
+ InsTabMemRefSizeInfoCache^[AsmOp].ExistsSSEAVX := true;
+ end;
+ OT_YMMRM: begin
+ MRefInfo := msiMem256;
+ MemSize := OT_BITS256;
+ InsTabMemRefSizeInfoCache^[AsmOp].ExistsSSEAVX := true;
+ end;
+ else MRefInfo := msiUnkown;
+ end;
+ OT_BITS8: MRefInfo := msiMem8;
+ OT_BITS16: MRefInfo := msiMem16;
+ OT_BITS32: MRefInfo := msiMem32;
+ OT_BITS64: MRefInfo := msiMem64;
+ OT_BITS128: MRefInfo := msiMem128;
+ OT_BITS256: MRefInfo := msiMem256;
+ else MRefInfo := msiMultiple;
+ end;
+
+ if MRefInfo <> msiUnkown then
+ begin
+ if InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize = msiUnkown then
+ begin
+ InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize := MRefInfo;
+ end
+ else if InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize <> MRefInfo then
+ begin
+ InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize := msiMultiple;
+ end;
+ end;
+ end;
+ end
+ else if (insentry^.optypes[j] and OT_IMMEDIATE) = OT_IMMEDIATE then
+ begin
+ case insentry^.optypes[j] and OT_SIZE_MASK of
+ 0: SConstInfo := csiNoSize;
+ OT_BITS8: SConstInfo := csiMem8;
+ OT_BITS16: SConstInfo := csiMem16;
+ OT_BITS32: SConstInfo := csiMem32;
+ OT_BITS64: SConstInfo := csiMem64;
+ else SConstInfo := csiMultiple;
+ end;
+
+ if InsTabMemRefSizeInfoCache^[AsmOp].ConstSize = csiUnkown then
+ begin
+ InsTabMemRefSizeInfoCache^[AsmOp].ConstSize := SConstInfo;
+ end
+ else if InsTabMemRefSizeInfoCache^[AsmOp].ConstSize <> SConstInfo then
+ begin
+ InsTabMemRefSizeInfoCache^[AsmOp].ConstSize := csiMultiple;
+ end;
+ end;
+ end;
+
+ if actRegSize < 0 then RegSize := -1;
+
+ if RegSize > 0 then
+ begin
+ IsRegSizeMemSize := IsRegSizeMemSize and ((RegSize > 0) and (RegSize = MemSize));
+ ExistsRegMem := true;
+ end;
+
+ inc(insentry);
+ end;
+
+ if InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize = msiMultiple then
+ begin
+ if IsRegSizeMemSize and ExistsRegMem then InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize := msiMemRegSize;
+ end;
+ end;
+ end;
+
+ for AsmOp := low(TAsmOp) to high(TAsmOp) do
+ begin
+
+ // only supported intructiones with SSE- or AVX-operands
+ if not(InsTabMemRefSizeInfoCache^[AsmOp].ExistsSSEAVX) then
+ begin
+ InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize := msiUnkown;
+ end;
+
+ end;
+ end;
+
procedure InitAsm;
begin
build_spilling_operation_type_table;
if not assigned(instabcache) then
BuildInsTabCache;
+
+ if not assigned(InsTabMemRefSizeInfoCache) then
+ BuildInsTabMemRefSizeInfoCache;
end;
@@ -2617,6 +3136,12 @@ implementation
dispose(instabcache);
instabcache:=nil;
end;
+
+ if assigned(InsTabMemRefSizeInfoCache) then
+ begin
+ dispose(InsTabMemRefSizeInfoCache);
+ InsTabMemRefSizeInfoCache:=nil;
+ end;
end;
diff --git a/compiler/x86/agx86att.pas b/compiler/x86/agx86att.pas
index 55b2a949f2..c4214c2497 100644
--- a/compiler/x86/agx86att.pas
+++ b/compiler/x86/agx86att.pas
@@ -235,6 +235,7 @@ interface
calljmp : boolean;
need_second_mov : boolean;
i : integer;
+ sreg : string;
begin
if hp.typ <> ait_instruction then
exit;
@@ -246,6 +247,30 @@ interface
the fix consists of simply setting only the 4-byte register
as the upper 4-bytes will be zeroed at the same time. }
need_second_mov:=false;
+
+ // BUGFIX GAS-assembler
+ // Intel "Intel 64 and IA-32 Architectures Software Developers manual 12/2011
+ // Intel: VCVTDQ2PD YMMREG, YMMREG/mem128 ((intel syntax))
+ // GAS: VCVTDQ2PD YMMREG, XMMREG/mem128 ((intel syntax))
+ if (op = A_VCVTDQ2PD) and
+ (taicpu(hp).ops = 2) and
+ (taicpu(hp).oper[0]^.typ = top_reg) and
+ (taicpu(hp).oper[1]^.typ = top_reg) then
+ begin
+ if ((taicpu(hp).oper[0]^.ot and OT_YMMREG) = OT_YMMREG) and
+ ((taicpu(hp).oper[1]^.ot and OT_YMMREG) = OT_YMMREG) then
+ begin
+ // change registertype in oper[0] from OT_YMMREG to OT_XMMREG
+ taicpu(hp).oper[0]^.ot := taicpu(hp).oper[0]^.ot and not(OT_YMMREG) or OT_XMMREG;
+
+ sreg := gas_regname(taicpu(hp).oper[0]^.reg);
+ if (copy(sreg, 1, 2) = '%y') or
+ (copy(sreg, 1, 2) = '%Y') then
+ begin
+ taicpu(hp).oper[0]^.reg := gas_regnum_search('%x' + copy(sreg, 3, length(sreg) - 2));
+ end;
+ end;
+ end;
{$ifdef x86_64}
if (op=A_MOV) and (taicpu(hp).opsize=S_Q) and
(taicpu(hp).oper[0]^.typ = top_const) then
@@ -292,7 +317,38 @@ interface
(taicpu(hp).oper[0]^.typ=top_reg) and
(getregtype(taicpu(hp).oper[0]^.reg)=R_FPUREGISTER)
) then
- owner.AsmWrite(gas_opsize2str[taicpu(hp).opsize]);
+ begin
+ if gas_needsuffix[op] = AttSufMM then
+ begin
+ for i:=0 to taicpu(hp).ops-1 do
+ begin
+
+ if (taicpu(hp).oper[i]^.typ = top_ref) then
+ begin
+ case taicpu(hp).oper[i]^.ot and OT_SIZE_MASK of
+ OT_BITS32: begin
+ owner.AsmWrite(gas_opsize2str[S_L]);
+ break;
+ end;
+ OT_BITS64: begin
+ owner.AsmWrite(gas_opsize2str[S_Q]);
+ break;
+ end;
+ OT_BITS128: begin
+ owner.AsmWrite(gas_opsize2str[S_XMM]);
+ break;
+ end;
+ OT_BITS256: begin
+ owner.AsmWrite(gas_opsize2str[S_YMM]);
+ break;
+ end;
+ end;
+ end;
+ end;
+ end
+ else owner.AsmWrite(gas_opsize2str[taicpu(hp).opsize]);
+ end;
+
{ process operands }
if taicpu(hp).ops<>0 then
begin
diff --git a/compiler/x86/agx86int.pas b/compiler/x86/agx86int.pas
index be4cdbe50f..52774e936d 100644
--- a/compiler/x86/agx86int.pas
+++ b/compiler/x86/agx86int.pas
@@ -336,6 +336,8 @@ implementation
AsmWrite('dword ptr ')
else
AsmWrite('word ptr ');
+ S_XMM: AsmWrite('xmmword ptr ');
+ S_YMM: AsmWrite('ymmword ptr ');
{$ifdef x86_64}
S_BQ : if dest then
AsmWrite('qword ptr ')
@@ -349,7 +351,6 @@ implementation
AsmWrite('qword ptr ')
else
AsmWrite('dword ptr ');
- S_XMM: AsmWrite('xmmword ptr ');
{$endif x86_64}
end;
diff --git a/compiler/x86/cgx86.pas b/compiler/x86/cgx86.pas
index e9d4483879..f6f58dcf83 100644
--- a/compiler/x86/cgx86.pas
+++ b/compiler/x86/cgx86.pas
@@ -134,16 +134,16 @@ unit cgx86;
const
{$ifdef x86_64}
TCGSize2OpSize: Array[tcgsize] of topsize =
- (S_NO,S_B,S_W,S_L,S_Q,S_T,S_B,S_W,S_L,S_Q,S_Q,
+ (S_NO,S_B,S_W,S_L,S_Q,S_XMM,S_B,S_W,S_L,S_Q,S_XMM,
S_FS,S_FL,S_FX,S_IQ,S_FXX,
- S_NO,S_NO,S_NO,S_MD,S_T,
- S_NO,S_NO,S_NO,S_NO,S_T);
+ S_NO,S_NO,S_NO,S_MD,S_XMM,S_YMM,
+ S_NO,S_NO,S_NO,S_NO,S_XMM,S_YMM);
{$else x86_64}
TCGSize2OpSize: Array[tcgsize] of topsize =
(S_NO,S_B,S_W,S_L,S_L,S_T,S_B,S_W,S_L,S_L,S_L,
S_FS,S_FL,S_FX,S_IQ,S_FXX,
- S_NO,S_NO,S_NO,S_MD,S_T,
- S_NO,S_NO,S_NO,S_NO,S_T);
+ S_NO,S_NO,S_NO,S_MD,S_XMM,S_YMM,
+ S_NO,S_NO,S_NO,S_NO,S_XMM,S_YMM);
{$endif x86_64}
{$ifndef NOTARGETWIN}
diff --git a/compiler/x86/cpubase.pas b/compiler/x86/cpubase.pas
index 056e571cf7..a17048ae82 100644
--- a/compiler/x86/cpubase.pas
+++ b/compiler/x86/cpubase.pas
@@ -52,7 +52,7 @@ uses
{$endif x86_64}
{ This should define the array of instructions as string }
- op2strtable=array[tasmop] of string[15];
+ op2strtable=array[tasmop] of string[16];
const
{ First value of opcode enumeration }
@@ -325,7 +325,9 @@ implementation
internalerror(2009071902);
end;
OS_M128,OS_MS128:
- cgsize2subreg:=R_SUBMMWHOLE;
+ cgsize2subreg:=R_SUBMMX;
+ OS_M256,OS_MS256:
+ cgsize2subreg:=R_SUBMMY;
else
internalerror(200301231);
end;
@@ -334,7 +336,7 @@ implementation
function reg_cgsize(const reg: tregister): tcgsize;
const subreg2cgsize:array[Tsubregister] of Tcgsize =
- (OS_NO,OS_8,OS_8,OS_16,OS_32,OS_64,OS_NO,OS_NO,OS_NO,OS_F32,OS_F64,OS_M128);
+ (OS_NO,OS_8,OS_8,OS_16,OS_32,OS_64,OS_NO,OS_NO,OS_NO,OS_F32,OS_F64,OS_NO,OS_M128,OS_M256);
begin
case getregtype(reg) of
R_INTREGISTER :
@@ -365,7 +367,7 @@ implementation
function reg2opsize(r:Tregister):topsize;
const
subreg2opsize : array[tsubregister] of topsize =
- (S_NO,S_B,S_B,S_W,S_L,S_Q,S_NO,S_NO,S_NO,S_NO,S_NO,S_NO);
+ (S_NO,S_B,S_B,S_W,S_L,S_Q,S_NO,S_NO,S_NO,S_NO,S_NO,S_NO,S_NO,S_NO);
begin
reg2opsize:=S_L;
case getregtype(r) of
@@ -456,7 +458,7 @@ implementation
hr:=r;
case getsubreg(hr) of
R_SUBMMS,R_SUBMMD,R_SUBMMWHOLE:
- setsubreg(hr,R_SUBNONE);
+ setsubreg(hr,R_SUBMMX);
end;
result:=findreg_by_number_table(hr,regnumber_index);
end;
diff --git a/compiler/x86/itcpugas.pas b/compiler/x86/itcpugas.pas
index 4280245f4d..014101337e 100644
--- a/compiler/x86/itcpugas.pas
+++ b/compiler/x86/itcpugas.pas
@@ -29,7 +29,7 @@ interface
cgbase,cpubase;
type
- TAttSuffix = (AttSufNONE,AttSufINT,AttSufFPU,AttSufFPUint,AttSufINTdual);
+ TAttSuffix = (AttSufNONE,AttSufINT,AttSufFPU,AttSufFPUint,AttSufINTdual,AttSufMM);
const
{$ifdef x86_64}
@@ -50,7 +50,8 @@ interface
'd',
'','','',
't',
- ''
+ 'x',
+ 'y'
);
{ suffix-to-opsize conversion tables, used in asmreadrer }
{ !! S_LQ excluded: movzlq does not exist, movslq is processed
@@ -76,7 +77,8 @@ interface
'd',
'','','',
't',
- ''
+ 'x',
+ 'y'
);
{ suffix-to-opsize conversion tables, used in asmreadrer }
att_sizesuffixstr : array[0..9] of string[2] = (
diff --git a/compiler/x86/itx86int.pas b/compiler/x86/itx86int.pas
index 182938678d..1199159576 100644
--- a/compiler/x86/itx86int.pas
+++ b/compiler/x86/itx86int.pas
@@ -58,20 +58,27 @@ implementation
{$endif x86_64}
- function findreg_by_intname(const s:string):byte;
+ function findreg_by_intname(const s:string):integer;
var
- i,p : tregisterindex;
+ i,p : integer;
+ s1: string;
+
+ l,r,m: integer;
begin
{Binary search.}
p:=0;
- i:=regnumber_count_bsstart;
- repeat
- if (p+i<=high(tregisterindex)) and (int_regname_table[int_regname_index[p+i]]<=s) then
- p:=p+i;
- i:=i shr 1;
- until i=0;
- if int_regname_table[int_regname_index[p]]=s then
- findreg_by_intname:=int_regname_index[p]
+ i := (high(tregisterindex) + 1) shr 1;
+ l := 0;
+ r := high(tregisterindex) + 1;
+ while l < r do
+ begin
+ m := (l + r) div 2;
+ if int_regname_table[int_regname_index[m]] < s then l := m + 1
+ else r := m;
+ end;
+
+ if int_regname_table[int_regname_index[r]]=s then
+ findreg_by_intname:=int_regname_index[r]
else
findreg_by_intname:=0;
end;
diff --git a/compiler/x86/rax86.pas b/compiler/x86/rax86.pas
index 51afa60ac5..be4852ecc5 100644
--- a/compiler/x86/rax86.pas
+++ b/compiler/x86/rax86.pas
@@ -186,6 +186,12 @@ begin
inherited SetSize(_size,force);
{ OS_64 will be set to S_L and be fixed later
in SetCorrectSize }
+
+ // multimedia register
+ case _size of
+ 16: size := OS_M128;
+ 32: size := OS_M256;
+ end;
opsize:=TCGSize2Opsize[size];
end;
@@ -207,6 +213,16 @@ begin
OS_64 : opsize:=S_IQ;
end;
end
+ else if gas_needsuffix[opcode]=AttSufMM then
+ begin
+ if (opr.typ=OPR_Reference) then
+ begin
+ case size of
+ OS_32 : size := OS_M32;
+ OS_64 : size := OS_M64;
+ end;
+ end;
+ end
else
begin
if size=OS_64 then
@@ -281,7 +297,73 @@ var
operand2,i : longint;
s : tasmsymbol;
so : aint;
+ ExistsMemRefNoSize: boolean;
begin
+ ExistsMemRefNoSize := false;
+ for i := 1 to ops do
+ begin
+ if (tx86operand(operands[i]).opsize = S_NO) and
+ (operands[i].Opr.Typ in [OPR_REFERENCE]) then
+ begin
+ ExistsMemRefNoSize := true;
+ end;
+ end;
+
+ if ExistsMemRefNoSize then
+ begin
+ for i := 1 to ops do
+ begin
+ if (tx86operand(operands[i]).opsize = S_NO) then
+ begin
+ case operands[i].Opr.Typ of
+ OPR_REFERENCE:
+ case MemRefInfo(opcode).MemRefSize of
+ msiMem8: begin
+ tx86operand(operands[i]).opsize := S_B;
+ tx86operand(operands[i]).size := OS_8;
+ end;
+ msiMem16: begin
+ tx86operand(operands[i]).opsize := S_W;
+ tx86operand(operands[i]).size := OS_16;
+ end;
+ msiMem32: begin
+ tx86operand(operands[i]).opsize := S_L;
+ tx86operand(operands[i]).size := OS_32;
+ end;
+ msiMem64: begin
+ tx86operand(operands[i]).opsize := S_Q;
+ tx86operand(operands[i]).size := OS_M64;
+ end;
+ msiMem128: begin
+ tx86operand(operands[i]).opsize := S_XMM;
+ tx86operand(operands[i]).size := OS_M128;
+ end;
+ msiMem256: begin
+ tx86operand(operands[i]).opsize := S_YMM;
+ tx86operand(operands[i]).size := OS_M256;
+ end;
+ end;
+ OPR_CONSTANT:
+ case MemRefInfo(opcode).ConstSize of
+ csiMem8: begin
+ tx86operand(operands[i]).opsize := S_B;
+ tx86operand(operands[i]).size := OS_8;
+ end;
+ csiMem16: begin
+ tx86operand(operands[i]).opsize := S_W;
+ tx86operand(operands[i]).size := OS_16;
+ end;
+ csiMem32: begin
+ tx86operand(operands[i]).opsize := S_L;
+ tx86operand(operands[i]).size := OS_32;
+ end;
+ end;
+ end;
+ end;
+ end;
+ end;
+
+
for i:=1 to ops do
begin
operands[i].SetCorrectSize(opcode);
@@ -311,8 +393,24 @@ begin
begin
if ((opcode<>A_MOVD) and
(opcode<>A_CVTSI2SS)) then
- tx86operand(operands[i]).opsize:=tx86operand(operands[operand2]).opsize;
- end
+ begin
+ //tx86operand(operands[i]).opsize:=tx86operand(operands[operand2]).opsize;
+
+ // torsten - 31.01.2012
+ // old: xmm/ymm-register operands have a opsize = "S_NO"
+ // new: xmm/ymm-register operands have a opsize = "S_XMM/S_YMM"
+
+ // any SSE- and AVX-opcodes have mixed operand sizes (e.g. cvtsd2ss xmmreg, xmmreg/m32)
+ // in this case is we need the old handling ("S_NO")
+ // =>> ignore
+ if (tx86operand(operands[operand2]).opsize <> S_XMM) and
+ (tx86operand(operands[operand2]).opsize <> S_YMM) then
+ begin
+ tx86operand(operands[i]).opsize:=tx86operand(operands[operand2]).opsize;
+ end
+ else tx86operand(operands[operand2]).opsize := S_NO;
+ end;
+ end
else
begin
{ if no register then take the opsize (which is available with ATT),
@@ -417,11 +515,30 @@ begin
A_OUT :
opsize:=tx86operand(operands[1]).opsize;
else
- opsize:=tx86operand(operands[2]).opsize;
+ begin
+ // opsize:=tx86operand(operands[2]).opsize;
+
+ // torsten - 31.01.2012
+ // old: xmm/ymm-register operands have a opsize = "S_NO"
+ // new: xmm/ymm-register operands have a opsize = "S_XMM/S_YMM"
+
+ // any SSE- and AVX-opcodes have mixed operand sizes (e.g. cvtsd2ss xmmreg, xmmreg/m32)
+ // in this case is we need the old handling ("S_NO")
+ // =>> ignore
+ if (tx86operand(operands[2]).opsize <> S_XMM) and
+ (tx86operand(operands[2]).opsize <> S_YMM) then
+ begin
+ opsize:=tx86operand(operands[2]).opsize;
+ end;
+
+ end;
end;
end;
- 3 :
- opsize:=tx86operand(operands[3]).opsize;
+ 3,4 :
+ begin
+ opsize:=tx86operand(operands[ops]).opsize;
+ end;
+
end;
end;
@@ -736,7 +853,7 @@ begin
asize:=OT_BITS8;
OS_16,OS_S16 :
asize:=OT_BITS16;
- OS_32,OS_S32,OS_F32 :
+ OS_32,OS_S32,OS_F32,OS_M32 :
asize:=OT_BITS32;
OS_64,OS_S64:
begin
@@ -752,10 +869,14 @@ begin
{$endif i386}
;
end;
- OS_F64,OS_C64 :
+ OS_F64,OS_C64, OS_M64 :
asize:=OT_BITS64;
OS_F80 :
asize:=OT_BITS80;
+ OS_128,OS_M128,OS_MS128:
+ asize := OT_BITS128;
+ OS_M256,OS_MS256:
+ asize := OT_BITS256;
end;
if asize<>0 then
ai.oper[i-1]^.ot:=(ai.oper[i-1]^.ot and not OT_SIZE_MASK) or asize;
diff --git a/compiler/x86/rax86int.pas b/compiler/x86/rax86int.pas
index e5536a1083..8a009823ea 100644
--- a/compiler/x86/rax86int.pas
+++ b/compiler/x86/rax86int.pas
@@ -42,7 +42,7 @@ Unit Rax86int;
{------------------ Assembler directives --------------------}
AS_ALIGN,AS_DB,AS_DW,AS_DD,AS_DQ,AS_END,
{------------------ Assembler Operators --------------------}
- AS_BYTE,AS_WORD,AS_DWORD,AS_QWORD,AS_TBYTE,AS_DQWORD,AS_NEAR,AS_FAR,
+ AS_BYTE,AS_WORD,AS_DWORD,AS_QWORD,AS_TBYTE,AS_DQWORD,AS_OWORD,AS_XMMWORD,AS_YWORD,AS_YMMWORD,AS_NEAR,AS_FAR,
AS_HIGH,AS_LOW,AS_OFFSET,AS_SIZEOF,AS_VMTOFFSET,AS_SEG,AS_TYPE,AS_PTR,AS_MOD,AS_SHL,AS_SHR,AS_NOT,
AS_AND,AS_OR,AS_XOR);
@@ -114,13 +114,13 @@ Unit Rax86int;
{ problems with shl,shr,not,and,or and xor, they are }
{ context sensitive. }
_asmoperators : array[0.._count_asmoperators] of tasmkeyword = (
- 'BYTE','WORD','DWORD','QWORD','TBYTE','DQWORD','NEAR','FAR','HIGH',
+ 'BYTE','WORD','DWORD','QWORD','TBYTE','DQWORD','OWORD','XMMWORD','YWORD','YMMWORD','NEAR','FAR','HIGH',
'LOW','OFFSET','SIZEOF','VMTOFFSET','SEG','TYPE','PTR','MOD','SHL','SHR','NOT','AND',
'OR','XOR');
token2str : array[tasmtoken] of string[10] = (
'','Label','LLabel','String','Integer',
- ',','[',']','(',
+ ',',',',',',',',',','[',']','(',
')',':','.','+','-','*',
';','identifier','register','opcode','/',
'','','','','','END',
@@ -729,7 +729,7 @@ Unit Rax86int;
while (actasmtoken=AS_DOT) do
begin
Consume(AS_DOT);
- if actasmtoken in [AS_BYTE,AS_ID,AS_WORD,AS_DWORD,AS_QWORD,AS_REGISTER] then
+ if actasmtoken in [AS_BYTE,AS_ID,AS_WORD,AS_DWORD,AS_QWORD,AS_OWORD,AS_XMMWORD,AS_YWORD,AS_YMMWORD,AS_REGISTER] then
begin
s:=s+'.'+actasmpattern;
consume(actasmtoken);
@@ -1819,7 +1819,11 @@ Unit Rax86int;
AS_WORD,
AS_TBYTE,
AS_DQWORD,
- AS_QWORD :
+ AS_QWORD,
+ AS_OWORD,
+ AS_XMMWORD,
+ AS_YWORD,
+ AS_YMMWORD:
begin
{ Type specifier }
oper.hastype:=true;
@@ -1831,6 +1835,10 @@ Unit Rax86int;
AS_QWORD : oper.typesize:=8;
AS_DQWORD : oper.typesize:=16;
AS_TBYTE : oper.typesize:=10;
+ AS_OWORD,
+ AS_XMMWORD: oper.typesize:=16;
+ AS_YWORD,
+ AS_YMMWORD: oper.typesize:=32;
else
internalerror(2010061101);
end;
diff --git a/compiler/x86/x86ins.dat b/compiler/x86/x86ins.dat
index 0192216535..86bf90f877 100644
--- a/compiler/x86/x86ins.dat
+++ b/compiler/x86/x86ins.dat
@@ -10,6 +10,7 @@
; arguments bytes flags
;
+
[NONE]
(Ch_None, Ch_None, Ch_None)
void void none
@@ -1458,7 +1459,7 @@ void \326\1\x9D X86_64
[POR]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm \2\x0F\xEB\110 PENT,MMX,SM
-xmmreg,xmmreg \361\2\x0F\xEB\110 WILLAMETTE,SSE2,SM
+xmmreg,xmmrm \361\2\x0F\xEB\110 WILLAMETTE,SSE2,SM
[PREFETCH,prefetchX]
(Ch_All, Ch_None, Ch_None)
@@ -2209,32 +2210,31 @@ xmmreg,xmmrm \2\x0F\x2F\110 KATMAI,SSE
[CVTPI2PS]
(Ch_Wop2, Ch_Rop1, Ch_None)
-xmmreg,mem \331\2\x0F\x2A\110 KATMAI,SSE,MMX
-xmmreg,mmxreg \331\2\x0F\x2A\110 KATMAI,SSE,MMX
+xmmreg,mmxrm \331\2\x0F\x2A\110 KATMAI,SSE,MMX
[CVTPS2PI]
(Ch_Wop2, Ch_Rop1, Ch_None)
-mmxreg,mem \331\2\x0F\x2D\110 KATMAI,SSE,MMX
+mmxreg,mem64 \331\2\x0F\x2D\110 KATMAI,SSE,MMX
mmxreg,xmmreg \331\2\x0F\x2D\110 KATMAI,SSE,MMX
-[CVTSI2SS,cvtsi2ssX]
+[CVTSI2SS,cvtsi2ssM]
(Ch_Wop2, Ch_Rop1, Ch_None)
-xmmreg,mem \333\321\2\x0F\x2A\110 KATMAI,SSE
-xmmreg,reg32|64 \333\321\2\x0F\x2A\110 KATMAI,SSE
+xmmreg,rm32 \333\321\2\x0F\x2A\110 KATMAI,SSE
+xmmreg,rm64 \333\321\2\x0F\x2A\110 KATMAI,SSE,X86_64,SI
[CVTSS2SI,cvtss2siX]
(Ch_Wop2, Ch_Rop1, Ch_None)
-reg32|64,mem \333\320\2\x0F\x2D\110 KATMAI,SSE
+reg32|64,mem32 \333\320\2\x0F\x2D\110 KATMAI,SSE
reg32|64,xmmreg \333\320\2\x0F\x2D\110 KATMAI,SSE
[CVTTPS2PI]
(Ch_Wop2, Ch_Rop1, Ch_None)
-mmxreg,mem \331\2\x0F\x2C\110 KATMAI,SSE,MMX
+mmxreg,mem64 \331\2\x0F\x2C\110 KATMAI,SSE,MMX
mmxreg,xmmreg \331\2\x0F\x2C\110 KATMAI,SSE,MMX
[CVTTSS2SI,cvttss2siX]
(Ch_Wop2, Ch_Rop1, Ch_None)
-reg32|64,mem \333\320\2\x0F\x2C\110 KATMAI,SSE
+reg32|64,mem32 \333\320\2\x0F\x2C\110 KATMAI,SSE
reg32|64,xmmreg \333\320\2\x0F\x2C\110 KATMAI,SSE
[DIVPS]
@@ -2710,7 +2710,8 @@ xmmreg,xmmrm \361\2\x0F\x2F\110 WILLAMETTE,SSE2
[CVTDQ2PD]
(Ch_Wop2, Ch_Rop1, Ch_None)
-xmmreg,xmmrm \333\2\x0F\xE6\110 WILLAMETTE,SSE2
+xmmreg,xmmreg \333\2\x0F\xE6\110 WILLAMETTE,SSE2
+xmmreg,mem64 \333\2\x0F\xE6\110 WILLAMETTE,SSE2
[CVTDQ2PS]
(Ch_Wop2, Ch_Rop1, Ch_None)
@@ -2738,30 +2739,34 @@ xmmreg,xmmrm \361\2\x0F\x5B\110 WILLAMETTE,SSE2,SM
[CVTPS2PD]
(Ch_Wop2, Ch_Rop1, Ch_None)
-xmmreg,xmmrm \2\x0F\x5A\110 WILLAMETTE,SSE2 ;,SQ
+xmmreg,xmmreg \2\x0F\x5A\110 WILLAMETTE,SSE2 ;,SQ
+xmmreg,mem64 \2\x0F\x5A\110 WILLAMETTE,SSE2 ;,SQ
[CVTSD2SI,cvtsd2siX]
(Ch_Wop2, Ch_Rop1, Ch_None)
-reg32|64,xmmreg \334\320\2\x0F\x2D\110 WILLAMETTE,SSE2
-reg32|64,mem \334\320\2\x0F\x2D\110 WILLAMETTE,SSE2
+reg32,xmmreg \334\2\x0F\x2D\110 WILLAMETTE,SSE2
+reg32,mem64 \334\2\x0F\x2D\110 WILLAMETTE,SSE2
+reg64,xmmreg \334\320\2\x0F\x2D\110 WILLAMETTE,SSE2,X86_64
+reg64,mem64 \334\320\2\x0F\x2D\110 WILLAMETTE,SSE2,X86_64
[CVTSD2SS]
(Ch_Wop2, Ch_Rop1, Ch_None)
-xmmreg,xmmrm \334\2\x0F\x5A\110 WILLAMETTE,SSE2 ;,SQ
+xmmreg,xmmreg \334\2\x0F\x5A\110 WILLAMETTE,SSE2 ;,SQ
+xmmreg,mem64 \334\2\x0F\x5A\110 WILLAMETTE,SSE2 ;,SQ
-[CVTSI2SD,cvtsi2sdX]
+[CVTSI2SD,cvtsi2sdM]
(Ch_Wop2, Ch_Rop1, Ch_None)
-xmmreg,reg32|64 \334\321\2\x0F\x2A\110 WILLAMETTE,SSE2
-xmmreg,mem \334\321\2\x0F\x2A\110 WILLAMETTE,SSE2
+xmmreg,rm32 \334\2\x0F\x2A\110 WILLAMETTE,SSE2
+xmmreg,rm64 \326\334\321\2\x0F\x2A\110 WILLAMETTE,SSE2,X86_64,SI
[CVTSS2SD]
(Ch_Wop2, Ch_Rop1, Ch_None)
-xmmreg,xmmrm \333\2\x0F\x5A\110 WILLAMETTE,SSE2 ;,SD
+xmmreg,xmmreg \333\2\x0F\x5A\110 WILLAMETTE,SSE2 ;,SD
+xmmreg,mem32 \333\2\x0F\x5A\110 WILLAMETTE,SSE2 ;,SD
[CVTTPD2PI]
(Ch_Wop2, Ch_Rop1, Ch_None)
-mmxreg,xmmreg \361\2\x0F\x2C\110 WILLAMETTE,SSE2
-mmxreg,mem \361\2\x0F\x2C\110 WILLAMETTE,SSE2
+mmxreg,xmmrm \361\2\x0F\x2C\110 WILLAMETTE,SSE2
[CVTTPD2DQ]
(Ch_Wop2, Ch_Rop1, Ch_None)
@@ -2774,7 +2779,7 @@ xmmreg,xmmrm \333\2\x0F\x5B\110 WILLAMETTE,SSE2,SM
[CVTTSD2SI,cvttsd2siX]
(Ch_Wop2, Ch_Rop1, Ch_None)
reg32|64,xmmreg \334\320\2\x0F\x2C\110 WILLAMETTE,SSE2
-reg32|64,mem \334\320\2\x0F\x2C\110 WILLAMETTE,SSE2
+reg32|64,mem64 \334\320\2\x0F\x2C\110 WILLAMETTE,SSE2
[DIVPD]
(Ch_Mop2, Ch_Rop1, Ch_None)
@@ -3441,3 +3446,1230 @@ void \326\1\xAD X86_64
[CMPSQ]
(Ch_All, Ch_None, Ch_None)
void \326\1\xA7 X86_64
+
+;*******************************************************************************
+;****** AVX I ******************************************************************
+;*******************************************************************************
+
+
+[VADDPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x58\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x58\75\120 AVX,SANDYBRIDGE
+
+[VADDPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \362\370\1\x58\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \362\364\370\1\x58\75\120 AVX,SANDYBRIDGE
+
+[VADDSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem64 \334\362\370\1\x58\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \334\362\370\1\x58\75\120 AVX,SANDYBRIDGE
+
+[VADDSS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem32 \333\362\370\1\x58\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \333\362\370\1\x58\75\120 AVX,SANDYBRIDGE
+
+[VADDSUBPD]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xD0\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmrm \361\362\370\1\xD0\75\120 AVX,SANDYBRIDGE
+
+[VADDSUBPS]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmreg,ymmrm \334\362\364\370\1\xD0\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmrm \334\362\370\1\xD0\75\120 AVX,SANDYBRIDGE
+
+[VAESDEC]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\xDE\75\120 AVX,SANDYBRIDGE
+
+[VAESDECLAST]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\xDF\75\120 AVX,SANDYBRIDGE
+
+[VAESENC]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\xDC\75\120 AVX,SANDYBRIDGE
+
+[VAESENCLAST]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\xDD\75\120 AVX,SANDYBRIDGE
+
+[VAESIMC]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \361\362\371\1\xDB\110 AVX,SANDYBRIDGE
+
+[VAESKEYGENASSIST]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm,imm8 \361\362\372\1\xDF\110\26 AVX,SANDYBRIDGE
+
+[VANDNPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x55\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x55\75\120 AVX,SANDYBRIDGE
+
+[VANDNPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \362\370\1\x55\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \362\364\370\1\x55\75\120 AVX,SANDYBRIDGE
+
+[VANDPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x54\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x54\75\120 AVX,SANDYBRIDGE
+
+[VANDPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \362\370\1\x54\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \362\364\370\1\x54\75\120 AVX,SANDYBRIDGE
+
+[VBLENDPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm,imm8 \361\362\372\1\x0D\75\120\27 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm,imm8 \361\362\364\372\1\x0D\75\120\27 AVX,SANDYBRIDGE
+
+[VBLENDPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm,imm8 \361\362\372\1\x0C\75\120\27 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm,imm8 \361\362\364\372\1\x0C\75\120\27 AVX,SANDYBRIDGE
+
+[VBLENDVPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm,xmmreg \361\362\372\1\x4B\75\120\367 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm,ymmreg \361\362\364\372\1\x4B\75\120\367 AVX,SANDYBRIDGE
+
+[VBLENDVPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm,xmmreg \361\362\372\1\x4A\75\120\367 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm,ymmreg \361\362\364\372\1\x4A\75\120\367 AVX,SANDYBRIDGE
+
+[VBROADCASTF128]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,mem128 \361\362\364\371\1\x1A\110 AVX,SANDYBRIDGE
+
+[VBROADCASTSD]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,mem64 \361\362\364\371\1\x19\110 AVX,SANDYBRIDGE
+
+[VBROADCASTSS]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,mem32 \361\362\364\371\1\x18\110 AVX,SANDYBRIDGE
+xmmreg,mem32 \361\362\371\1\x18\110 AVX,SANDYBRIDGE
+
+[VCMPPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm,imm8 \361\362\370\1\xC2\75\120\27 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm,imm8 \361\362\364\370\1\xC2\75\120\27 AVX,SANDYBRIDGE
+
+[VCMPPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm,imm8 \362\370\1\xC2\75\120\27 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm,imm8 \362\364\370\1\xC2\75\120\27 AVX,SANDYBRIDGE
+
+[VCMPSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem64,imm8 \334\362\370\1\xC2\75\120\27 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg,imm8 \334\362\370\1\xC2\75\120\27 AVX,SANDYBRIDGE
+
+[VCMPSS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem64,imm8 \333\362\370\1\xC2\75\120\27 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg,imm8 \333\362\370\1\xC2\75\120\27 AVX,SANDYBRIDGE
+
+[VCOMISD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem64 \361\362\370\1\x2F\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \361\362\370\1\x2F\110 AVX,SANDYBRIDGE
+
+[VCOMISS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem32 \362\370\1\x2F\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \362\370\1\x2F\110 AVX,SANDYBRIDGE
+
+[VCVTDQ2PD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem64 \333\362\370\1\xE6\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \333\362\370\1\xE6\110 AVX,SANDYBRIDGE
+ymmreg,ymmreg \333\362\364\370\1\xE6\110 AVX,SANDYBRIDGE
+ymmreg,mem128 \333\362\364\370\1\xE6\110 AVX,SANDYBRIDGE
+
+[VCVTDQ2PS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \362\370\1\x5B\110 AVX,SANDYBRIDGE
+ymmreg,ymmrm \362\364\370\1\x5B\110 AVX,SANDYBRIDGE
+
+[VCVTPD2DQ,vcvtpd2dqM]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \334\362\370\1\xE6\110 AVX,SANDYBRIDGE,SI
+xmmreg,ymmrm \334\362\364\370\1\xE6\110 AVX,SANDYBRIDGE,SI
+
+[VCVTPD2PS,vcvtpd2psM]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \361\362\370\1\x5A\110 AVX,SANDYBRIDGE,SI
+xmmreg,ymmrm \361\362\364\370\1\x5A\110 AVX,SANDYBRIDGE,SI
+
+[VCVTPS2DQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \361\362\370\1\x5B\110 AVX,SANDYBRIDGE
+ymmreg,ymmrm \361\362\364\370\1\x5B\110 AVX,SANDYBRIDGE
+
+[VCVTPS2PD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem64 \362\370\1\x5A\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \362\370\1\x5A\110 AVX,SANDYBRIDGE
+ymmreg,xmmrm \362\364\370\1\x5A\110 AVX,SANDYBRIDGE
+
+[VCVTSD2SI]
+(Ch_All, Ch_None, Ch_None)
+reg32,mem64 \334\362\370\1\x2D\110 AVX,SANDYBRIDGE
+reg32,xmmreg \334\362\370\1\x2D\110 AVX,SANDYBRIDGE
+reg64,mem64 \334\362\363\370\1\x2D\110 AVX,SANDYBRIDGE
+reg64,xmmreg \334\362\363\370\1\x2D\110 AVX,SANDYBRIDGE
+
+[VCVTSD2SS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem64 \334\362\370\1\x5A\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \334\362\370\1\x5A\75\120 AVX,SANDYBRIDGE
+
+[VCVTSI2SD,vcvtsi2sdM]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,rm32 \334\362\370\1\x2A\75\120 AVX,SANDYBRIDGE,SD,SI
+xmmreg,xmmreg,rm64 \334\362\363\370\1\x2A\75\120 AVX,SANDYBRIDGE,SI
+
+[VCVTSI2SS,vcvtsi2ssM]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,rm32 \333\362\370\1\x2A\75\120 AVX,SANDYBRIDGE,SD,SI
+xmmreg,xmmreg,rm64 \333\362\363\370\1\x2A\75\120 AVX,SANDYBRIDGE,SI
+
+[VCVTSS2SD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem32 \333\362\370\1\x5A\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \333\362\370\1\x5A\75\120 AVX,SANDYBRIDGE
+
+[VCVTSS2SI]
+(Ch_All, Ch_None, Ch_None)
+reg32,mem32 \333\362\370\1\x2D\110 AVX,SANDYBRIDGE
+reg32,xmmreg \333\362\370\1\x2D\110 AVX,SANDYBRIDGE
+reg64,mem32 \333\362\363\370\1\x2D\110 AVX,SANDYBRIDGE
+reg64,xmmreg \333\362\363\370\1\x2D\110 AVX,SANDYBRIDGE
+
+[VCVTTPD2DQ,vcvttpd2dqM]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \361\362\370\1\xE6\110 AVX,SANDYBRIDGE,SI
+xmmreg,ymmrm \361\362\364\370\1\xE6\110 AVX,SANDYBRIDGE,SI
+
+[VCVTTPS2DQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \333\362\370\1\x5B\110 AVX,SANDYBRIDGE
+ymmreg,ymmrm \333\362\364\370\1\x5B\110 AVX,SANDYBRIDGE
+
+[VCVTTSD2SI]
+(Ch_All, Ch_None, Ch_None)
+reg32,mem64 \334\362\370\1\x2C\110 AVX,SANDYBRIDGE
+reg32,xmmreg \334\362\370\1\x2C\110 AVX,SANDYBRIDGE
+reg64,mem64 \334\362\363\370\1\x2C\110 AVX,SANDYBRIDGE
+reg64,xmmreg \334\362\363\370\1\x2C\110 AVX,SANDYBRIDGE
+
+[VCVTTSS2SI]
+(Ch_All, Ch_None, Ch_None)
+reg32,mem32 \333\362\370\1\x2C\110 AVX,SANDYBRIDGE
+reg32,xmmreg \333\362\370\1\x2C\110 AVX,SANDYBRIDGE
+reg64,mem32 \333\362\363\370\1\x2C\110 AVX,SANDYBRIDGE
+reg64,xmmreg \333\362\363\370\1\x2C\110 AVX,SANDYBRIDGE
+
+[VDIVPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x5E\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x5E\75\120 AVX,SANDYBRIDGE
+
+[VDIVPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \362\370\1\x5E\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \362\364\370\1\x5E\75\120 AVX,SANDYBRIDGE
+
+[VDIVSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem64 \334\362\370\1\x5E\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \334\362\370\1\x5E\75\120 AVX,SANDYBRIDGE
+
+[VDIVSS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem32 \333\362\370\1\x5E\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \333\362\370\1\x5E\75\120 AVX,SANDYBRIDGE
+
+[VDPPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm,imm8 \361\362\372\1\x41\75\120\27 AVX,SANDYBRIDGE
+
+[VDPPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm,imm8 \361\362\372\1\x40\75\120\27 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm,imm8 \361\362\364\372\1\x40\75\120\27 AVX,SANDYBRIDGE
+
+[VEXTRACTF128]
+(Ch_All, Ch_None, Ch_None)
+xmmrm,ymmreg,imm8 \361\362\364\372\1\x19\101\26 AVX,SANDYBRIDGE
+
+[VEXTRACTPS]
+(Ch_All, Ch_None, Ch_None)
+rm32,xmmreg,imm8 \361\362\372\1\x17\101\26 AVX,SANDYBRIDGE
+
+[VHADDPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x7C\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x7C\75\120 AVX,SANDYBRIDGE
+
+[VHADDPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \334\362\370\1\x7C\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \334\362\364\370\1\x7C\75\120 AVX,SANDYBRIDGE
+
+[VHSUBPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x7D\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x7D\75\120 AVX,SANDYBRIDGE
+
+[VHSUBPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \334\362\370\1\x7D\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \334\362\364\370\1\x7D\75\120 AVX,SANDYBRIDGE
+
+[VINSERTF128]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmreg,xmmrm,imm8 \361\362\364\372\1\x18\75\120\27 AVX,SANDYBRIDGE
+
+[VINSERTPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem32,imm8 \361\362\372\1\x21\75\120\27 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg,imm8 \361\362\372\1\x21\75\120\27 AVX,SANDYBRIDGE
+
+[VLDDQU]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem128 \334\362\370\1\xF0\110 AVX,SANDYBRIDGE
+ymmreg,mem256 \334\362\364\370\1\xF0\110 AVX,SANDYBRIDGE
+
+[VLDMXCSR]
+(Ch_All, Ch_None, Ch_None)
+mem32 \362\370\1\xAE\202 AVX,SANDYBRIDGE
+
+[VMASKMOVDQU]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg \361\362\370\1\xF7\110 AVX,SANDYBRIDGE
+
+[VMASKMOVPD]
+(Ch_All, Ch_None, Ch_None)
+mem256,ymmreg,ymmreg \361\362\364\371\1\x2F\75\102 AVX,SANDYBRIDGE
+mem128,xmmreg,xmmreg \361\362\371\1\x2F\75\102 AVX,SANDYBRIDGE
+ymmreg,ymmreg,mem256 \361\362\364\371\1\x2D\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,mem128 \361\362\371\1\x2D\75\120 AVX,SANDYBRIDGE
+
+[VMASKMOVPS]
+(Ch_All, Ch_None, Ch_None)
+mem256,ymmreg,ymmreg \361\362\364\371\1\x2E\75\102 AVX,SANDYBRIDGE
+mem128,xmmreg,xmmreg \361\362\371\1\x2E\75\102 AVX,SANDYBRIDGE
+ymmreg,ymmreg,mem256 \361\362\364\371\1\x2C\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,mem128 \361\362\371\1\x2C\75\120 AVX,SANDYBRIDGE
+
+[VMAXPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x5F\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x5F\75\120 AVX,SANDYBRIDGE
+
+[VMAXPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \362\370\1\x5F\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \362\364\370\1\x5F\75\120 AVX,SANDYBRIDGE
+
+[VMAXSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem64 \334\362\370\1\x5F\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \334\362\370\1\x5F\75\120 AVX,SANDYBRIDGE
+
+[VMAXSS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem32 \333\362\370\1\x5F\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \333\362\370\1\x5F\75\120 AVX,SANDYBRIDGE
+
+[VMINPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x5D\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x5D\75\120 AVX,SANDYBRIDGE
+
+[VMINPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \362\370\1\x5D\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \362\364\370\1\x5D\75\120 AVX,SANDYBRIDGE
+
+[VMINSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem64 \334\362\370\1\x5D\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \334\362\370\1\x5D\75\120 AVX,SANDYBRIDGE
+
+[VMINSS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem32 \333\362\370\1\x5D\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \333\362\370\1\x5D\75\120 AVX,SANDYBRIDGE
+
+[VMOVAPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \361\362\370\1\x28\110 AVX,SANDYBRIDGE
+xmmrm,xmmreg \361\362\370\1\x29\101 AVX,SANDYBRIDGE
+ymmreg,ymmrm \361\362\364\370\1\x28\110 AVX,SANDYBRIDGE
+ymmrm,ymmreg \361\362\364\370\1\x29\101 AVX,SANDYBRIDGE
+
+[VMOVAPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \362\370\1\x28\110 AVX,SANDYBRIDGE
+xmmrm,xmmreg \362\370\1\x29\101 AVX,SANDYBRIDGE
+ymmreg,ymmrm \362\364\370\1\x28\110 AVX,SANDYBRIDGE
+ymmrm,ymmreg \362\364\370\1\x29\101 AVX,SANDYBRIDGE
+
+[VMOVD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,rm32 \361\362\370\1\x6E\110 AVX,SANDYBRIDGE
+rm32,xmmreg \361\362\370\1\x7E\101 AVX,SANDYBRIDGE
+
+[VMOVDDUP]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmrm \334\362\364\370\1\x12\110 AVX,SANDYBRIDGE
+xmmreg,mem64 \334\362\370\1\x12\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \334\362\370\1\x12\110 AVX,SANDYBRIDGE
+
+[VMOVDQA]
+(Ch_All, Ch_None, Ch_None)
+ymmrm,ymmreg \361\362\364\370\1\x7F\101 AVX,SANDYBRIDGE
+xmmreg,xmmrm \361\362\370\1\x6F\110 AVX,SANDYBRIDGE
+xmmrm,xmmreg \361\362\370\1\x7F\101 AVX,SANDYBRIDGE
+ymmreg,ymmrm \361\362\364\370\1\x6F\110 AVX,SANDYBRIDGE
+
+[VMOVDQU]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmrm \333\362\364\370\1\x6F\110 AVX,SANDYBRIDGE
+xmmreg,xmmrm \333\362\370\1\x6F\110 AVX,SANDYBRIDGE
+xmmrm,xmmreg \333\362\370\1\x7F\101 AVX,SANDYBRIDGE
+ymmrm,ymmreg \333\362\364\370\1\x7F\101 AVX,SANDYBRIDGE
+
+[VMOVHLPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmreg \362\370\1\x12\75\120 AVX,SANDYBRIDGE
+
+[VMOVHPD]
+(Ch_All, Ch_None, Ch_None)
+mem64,xmmreg \361\362\370\1\x17\101 AVX,SANDYBRIDGE
+xmmreg,xmmreg,mem64 \361\362\370\1\x16\75\120 AVX,SANDYBRIDGE
+
+[VMOVHPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem64 \362\370\1\x16\75\120 AVX,SANDYBRIDGE
+mem64,xmmreg \362\370\1\x17\101 AVX,SANDYBRIDGE
+
+[VMOVLHPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmreg \362\370\1\x16\75\120 AVX,SANDYBRIDGE
+
+[VMOVLPD]
+(Ch_All, Ch_None, Ch_None)
+mem64,xmmreg \361\362\370\1\x13\101 AVX,SANDYBRIDGE
+xmmreg,xmmreg,mem64 \361\362\370\1\x12\75\120 AVX,SANDYBRIDGE
+
+[VMOVLPS]
+(Ch_All, Ch_None, Ch_None)
+mem64,xmmreg \362\370\1\x13\101 AVX,SANDYBRIDGE
+xmmreg,xmmreg,mem64 \362\370\1\x12\75\120 AVX,SANDYBRIDGE
+
+[VMOVMSKPD]
+(Ch_All, Ch_None, Ch_None)
+reg32,ymmreg \361\362\364\370\1\x50\110 AVX,SANDYBRIDGE
+reg64,xmmreg \361\362\370\1\x50\110 AVX,SANDYBRIDGE
+reg32,xmmreg \361\362\370\1\x50\110 AVX,SANDYBRIDGE
+reg64,ymmreg \361\362\364\370\1\x50\110 AVX,SANDYBRIDGE
+
+[VMOVMSKPS]
+(Ch_All, Ch_None, Ch_None)
+reg32,ymmreg \362\364\370\1\x50\110 AVX,SANDYBRIDGE
+reg64,xmmreg \362\370\1\x50\110 AVX,SANDYBRIDGE
+reg32,xmmreg \362\370\1\x50\110 AVX,SANDYBRIDGE
+reg64,ymmreg \362\364\370\1\x50\110 AVX,SANDYBRIDGE
+
+[VMOVNTDQ]
+(Ch_All, Ch_None, Ch_None)
+mem128,xmmreg \361\362\370\1\xE7\101 AVX,SANDYBRIDGE
+mem256,ymmreg \361\362\364\370\1\xE7\101 AVX,SANDYBRIDGE
+
+[VMOVNTDQA]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem128 \361\362\371\1\x2A\110 AVX,SANDYBRIDGE
+
+[VMOVNTPD]
+(Ch_All, Ch_None, Ch_None)
+mem256,ymmreg \361\362\364\370\1\x2B\101 AVX,SANDYBRIDGE
+mem128,xmmreg \361\362\370\1\x2B\101 AVX,SANDYBRIDGE
+
+[VMOVNTPS]
+(Ch_All, Ch_None, Ch_None)
+mem128,ymmreg \362\364\370\1\x2B\101 AVX,SANDYBRIDGE
+mem128,xmmreg \362\370\1\x2B\101 AVX,SANDYBRIDGE
+
+[VMOVQ]
+(Ch_All, Ch_None, Ch_None)
+rm64,xmmreg \361\362\363\370\1\x7E\101 AVX,SANDYBRIDGE
+xmmreg,rm64 \361\362\363\370\1\x6E\110 AVX,SANDYBRIDGE
+
+[VMOVSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmreg \334\362\370\1\x10\75\120 AVX,SANDYBRIDGE
+xmmreg,mem64 \334\362\370\1\x10\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \334\362\370\1\x11\75\102 AVX,SANDYBRIDGE
+mem64,xmmreg \334\362\370\1\x11\101 AVX,SANDYBRIDGE
+
+[VMOVSHDUP]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \333\362\370\1\x16\110 AVX,SANDYBRIDGE
+ymmreg,ymmrm \333\362\364\370\1\x16\110 AVX,SANDYBRIDGE
+
+[VMOVSLDUP]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \333\362\370\1\x12\110 AVX,SANDYBRIDGE
+ymmreg,ymmrm \333\362\364\370\1\x12\110 AVX,SANDYBRIDGE
+
+[VMOVSS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmreg \333\362\370\1\x10\75\120 AVX,SANDYBRIDGE
+xmmreg,mem64 \333\362\370\1\x10\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \333\362\370\1\x11\75\102 AVX,SANDYBRIDGE
+mem64,xmmreg \333\362\370\1\x11\101 AVX,SANDYBRIDGE
+
+[VMOVUPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \361\362\370\1\x10\110 AVX,SANDYBRIDGE
+xmmrm,xmmreg \361\362\370\1\x11\101 AVX,SANDYBRIDGE
+ymmreg,ymmrm \361\362\364\370\1\x10\110 AVX,SANDYBRIDGE
+ymmrm,ymmreg \361\362\364\370\1\x11\101 AVX,SANDYBRIDGE
+
+[VMOVUPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \362\370\1\x10\110 AVX,SANDYBRIDGE
+xmmrm,xmmreg \362\370\1\x11\101 AVX,SANDYBRIDGE
+ymmreg,ymmrm \362\364\370\1\x10\110 AVX,SANDYBRIDGE
+ymmrm,ymmreg \362\364\370\1\x11\101 AVX,SANDYBRIDGE
+
+[VMPSADBW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm,imm8 \361\362\372\1\x42\75\120\27 AVX,SANDYBRIDGE
+
+[VMULPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x59\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x59\75\120 AVX,SANDYBRIDGE
+
+[VMULPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \362\370\1\x59\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \362\364\370\1\x59\75\120 AVX,SANDYBRIDGE
+
+[VMULSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem64 \334\362\370\1\x59\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \334\362\370\1\x59\75\120 AVX,SANDYBRIDGE
+
+[VMULSS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem32 \333\362\370\1\x59\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \333\362\370\1\x59\75\120 AVX,SANDYBRIDGE
+
+[VORPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x56\75\120 AVX,SANDYBRIDGE
+
+[VORPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \362\370\1\x56\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \362\364\370\1\x56\75\120 AVX,SANDYBRIDGE
+
+[VPABSB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \361\362\371\1\x1C\110 AVX,SANDYBRIDGE
+
+[VPABSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \361\362\371\1\x1E\110 AVX,SANDYBRIDGE
+
+[VPABSW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \361\362\371\1\x1D\110 AVX,SANDYBRIDGE
+
+[VPACKSSDW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x6B\75\120 AVX,SANDYBRIDGE
+
+[VPACKSSWB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x63\75\120 AVX,SANDYBRIDGE
+
+[VPACKUSDW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x2B\75\120 AVX,SANDYBRIDGE
+
+[VPACKUSWB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x67\75\120 AVX,SANDYBRIDGE
+
+[VPADDB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xFC\75\120 AVX,SANDYBRIDGE
+
+[VPADDD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xFE\75\120 AVX,SANDYBRIDGE
+
+[VPADDQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xD4\75\120 AVX,SANDYBRIDGE
+
+[VPADDSB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xEC\75\120 AVX,SANDYBRIDGE
+
+[VPADDSW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xED\75\120 AVX,SANDYBRIDGE
+
+[VPADDUSB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xDC\75\120 AVX,SANDYBRIDGE
+
+[VPADDUSW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xDD\75\120 AVX,SANDYBRIDGE
+
+[VPADDW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xFD\75\120 AVX,SANDYBRIDGE
+
+[VPALIGNR]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm,imm8 \361\362\372\1\x0F\75\120\27 AVX,SANDYBRIDGE
+
+[VPAND]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xDB\75\120 AVX,SANDYBRIDGE
+
+[VPANDN]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xDF\75\120 AVX,SANDYBRIDGE
+
+[VPAVGB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xE0\75\120 AVX,SANDYBRIDGE
+
+[VPAVGW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xE3\75\120 AVX,SANDYBRIDGE
+
+[VPBLENDVB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm,xmmreg \361\362\372\1\x4C\75\120\367 AVX,SANDYBRIDGE
+
+[VPBLENDW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm,imm8 \361\362\372\1\x0E\75\120\27 AVX,SANDYBRIDGE
+
+[VPCLMULQDQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm,imm8 \361\362\372\1\x44\75\120\27 AVX,SANDYBRIDGE
+
+[VPCMPEQB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x74\75\120 AVX,SANDYBRIDGE
+
+[VPCMPEQD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x76\75\120 AVX,SANDYBRIDGE
+
+[VPCMPEQQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x29\75\120 AVX,SANDYBRIDGE
+
+[VPCMPEQW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x75\75\120 AVX,SANDYBRIDGE
+
+[VPCMPESTRI]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm,imm8 \361\362\372\1\x61\110\26 AVX,SANDYBRIDGE
+
+[VPCMPESTRM]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm,imm8 \361\362\372\1\x60\110\26 AVX,SANDYBRIDGE
+
+[VPCMPGTB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x64\75\120 AVX,SANDYBRIDGE
+
+[VPCMPGTD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x66\75\120 AVX,SANDYBRIDGE
+
+[VPCMPGTQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x37\75\120 AVX,SANDYBRIDGE
+
+[VPCMPGTW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x65\75\120 AVX,SANDYBRIDGE
+
+[VPCMPISTRI]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm,imm8 \361\362\372\1\x63\110\26 AVX,SANDYBRIDGE
+
+[VPCMPISTRM]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm,imm8 \361\362\372\1\x62\110\26 AVX,SANDYBRIDGE
+
+[VPERM2F128]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmreg,ymmrm,imm8 \361\362\364\372\1\x06\75\120\27 AVX,SANDYBRIDGE
+
+[VPERMILPD]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x0D\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmrm,imm8 \361\362\372\1\x05\110\26 AVX,SANDYBRIDGE
+ymmreg,ymmrm,imm8 \361\362\364\372\1\x05\110\26 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmrm \361\362\371\1\x0D\75\120 AVX,SANDYBRIDGE
+
+[VPERMILPS]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x0C\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmrm,imm8 \361\362\372\1\x04\110\26 AVX,SANDYBRIDGE
+ymmreg,ymmrm,imm8 \361\362\364\372\1\x04\110\26 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmrm \361\362\371\1\x0C\75\120 AVX,SANDYBRIDGE
+
+[VPEXTRB]
+(Ch_All, Ch_None, Ch_None)
+reg32,xmmreg,imm8 \361\362\372\1\x14\101\26 AVX,SANDYBRIDGE
+reg64,xmmreg,imm8 \361\362\372\1\x14\101\26 AVX,SANDYBRIDGE
+mem8,xmmreg,imm8 \361\362\372\1\x14\101\26 AVX,SANDYBRIDGE
+
+[VPEXTRD]
+(Ch_All, Ch_None, Ch_None)
+rm32,xmmreg,imm8 \361\362\372\1\x16\101\26 AVX,SANDYBRIDGE
+
+[VPEXTRQ]
+(Ch_All, Ch_None, Ch_None)
+rm64,xmmreg,imm8 \361\362\363\372\1\x16\101\26 AVX,SANDYBRIDGE
+
+[VPEXTRW]
+(Ch_All, Ch_None, Ch_None)
+reg32,xmmreg,imm8 \361\362\370\1\xC5\110\26 AVX,SANDYBRIDGE
+reg64,xmmreg,imm8 \361\362\370\1\xC5\110\26 AVX,SANDYBRIDGE
+reg32,xmmreg,imm8 \361\362\372\1\x15\101\26 AVX,SANDYBRIDGE
+reg64,xmmreg,imm8 \361\362\372\1\x15\101\26 AVX,SANDYBRIDGE
+mem16,xmmreg,imm8 \361\362\372\1\x15\101\26 AVX,SANDYBRIDGE
+
+
+[VPHADDD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x02\75\120 AVX,SANDYBRIDGE
+
+[VPHADDSW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x03\75\120 AVX,SANDYBRIDGE
+
+[VPHADDW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x01\75\120 AVX,SANDYBRIDGE
+
+[VPHMINPOSUW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \361\362\371\1\x41\110 AVX,SANDYBRIDGE
+
+[VPHSUBD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x06\75\120 AVX,SANDYBRIDGE
+
+[VPHSUBSW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x07\75\120 AVX,SANDYBRIDGE
+
+[VPHSUBW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x05\75\120 AVX,SANDYBRIDGE
+
+[VPINSRB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,reg32,imm8 \361\362\372\1\x20\75\120\27 AVX,SANDYBRIDGE
+xmmreg,xmmreg,mem8,imm8 \361\362\372\1\x20\75\120\27 AVX,SANDYBRIDGE
+
+[VPINSRD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,rm32,imm8 \361\362\372\1\x22\75\120\27 AVX,SANDYBRIDGE
+
+[VPINSRQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,rm64,imm8 \361\362\363\372\1\x22\75\120\27 AVX,SANDYBRIDGE
+
+[VPINSRW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,reg32,imm8 \361\362\370\1\xC4\75\120\27 AVX,SANDYBRIDGE
+xmmreg,xmmreg,mem16,imm8 \361\362\370\1\xC4\75\120\27 AVX,SANDYBRIDGE
+
+[VPMADDUBSW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x04\75\120 AVX,SANDYBRIDGE
+
+[VPMADDWD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xF5\75\120 AVX,SANDYBRIDGE
+
+[VPMAXSB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x3C\75\120 AVX,SANDYBRIDGE
+
+[VPMAXSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x3D\75\120 AVX,SANDYBRIDGE
+
+[VPMAXSW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xEE\75\120 AVX,SANDYBRIDGE
+
+[VPMAXUB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xDE\75\120 AVX,SANDYBRIDGE
+
+[VPMAXUD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x3F\75\120 AVX,SANDYBRIDGE
+
+[VPMAXUW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x3E\75\120 AVX,SANDYBRIDGE
+
+[VPMINSB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x38\75\120 AVX,SANDYBRIDGE
+
+[VPMINSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x39\75\120 AVX,SANDYBRIDGE
+
+[VPMINSW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xEA\75\120 AVX,SANDYBRIDGE
+
+[VPMINUB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xDA\75\120 AVX,SANDYBRIDGE
+
+[VPMINUD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x3B\75\120 AVX,SANDYBRIDGE
+
+[VPMINUW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x3A\75\120 AVX,SANDYBRIDGE
+
+[VPMOVMSKB]
+(Ch_All, Ch_None, Ch_None)
+reg64,xmmreg \361\362\370\1\xD7\110 AVX,SANDYBRIDGE
+reg32,xmmreg \361\362\370\1\xD7\110 AVX,SANDYBRIDGE
+
+[VPMOVSXBD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem32 \361\362\371\1\x21\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \361\362\371\1\x21\110 AVX,SANDYBRIDGE
+
+[VPMOVSXBQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem16 \361\362\371\1\x22\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \361\362\371\1\x22\110 AVX,SANDYBRIDGE
+
+[VPMOVSXBW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem64 \361\362\371\1\x20\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \361\362\371\1\x20\110 AVX,SANDYBRIDGE
+
+[VPMOVSXDQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem64 \361\362\371\1\x25\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \361\362\371\1\x25\110 AVX,SANDYBRIDGE
+
+[VPMOVSXWD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem64 \361\362\371\1\x23\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \361\362\371\1\x23\110 AVX,SANDYBRIDGE
+
+[VPMOVSXWQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem32 \361\362\371\1\x24\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \361\362\371\1\x24\110 AVX,SANDYBRIDGE
+
+[VPMOVZXBD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem32 \361\362\371\1\x31\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \361\362\371\1\x31\110 AVX,SANDYBRIDGE
+
+[VPMOVZXBQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem16 \361\362\371\1\x32\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \361\362\371\1\x32\110 AVX,SANDYBRIDGE
+
+[VPMOVZXBW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem64 \361\362\371\1\x30\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \361\362\371\1\x30\110 AVX,SANDYBRIDGE
+
+[VPMOVZXDQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem64 \361\362\371\1\x35\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \361\362\371\1\x35\110 AVX,SANDYBRIDGE
+
+[VPMOVZXWD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem64 \361\362\371\1\x33\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \361\362\371\1\x33\110 AVX,SANDYBRIDGE
+
+[VPMOVZXWQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem32 \361\362\371\1\x34\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \361\362\371\1\x34\110 AVX,SANDYBRIDGE
+
+[VPMULDQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x28\75\120 AVX,SANDYBRIDGE
+
+[VPMULHRSW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x0B\75\120 AVX,SANDYBRIDGE
+
+[VPMULHUW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xE4\75\120 AVX,SANDYBRIDGE
+
+[VPMULHW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xE5\75\120 AVX,SANDYBRIDGE
+
+[VPMULLD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x40\75\120 AVX,SANDYBRIDGE
+
+[VPMULLW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xD5\75\120 AVX,SANDYBRIDGE
+
+[VPMULUDQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xF4\75\120 AVX,SANDYBRIDGE
+
+[VPOR]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xEB\75\120 AVX,SANDYBRIDGE
+
+[VPSADBW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xF6\75\120 AVX,SANDYBRIDGE
+
+[VPSHUFB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x00\75\120 AVX,SANDYBRIDGE
+
+[VPSHUFD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm,imm8 \361\362\370\1\x70\110\26 AVX,SANDYBRIDGE
+
+[VPSHUFHW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm,imm8 \333\362\370\1\x70\110\26 AVX,SANDYBRIDGE
+
+[VPSHUFLW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm,imm8 \334\362\370\1\x70\110\26 AVX,SANDYBRIDGE
+
+[VPSIGNB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x08\75\120 AVX,SANDYBRIDGE
+
+[VPSIGND]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x0A\75\120 AVX,SANDYBRIDGE
+
+[VPSIGNW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\371\1\x09\75\120 AVX,SANDYBRIDGE
+
+[VPSLLD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,imm8 \361\362\370\1\x72\74\216\26 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmrm \361\362\370\1\xF2\75\120 AVX,SANDYBRIDGE
+
+[VPSLLDQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,imm8 \361\362\370\1\x73\74\217\26 AVX,SANDYBRIDGE
+
+[VPSLLQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xF3\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,imm8 \361\362\370\1\x73\74\216\26 AVX,SANDYBRIDGE
+
+[VPSLLW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,imm8 \361\362\370\1\x71\74\216\26 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmrm \361\362\370\1\xF1\75\120 AVX,SANDYBRIDGE
+
+[VPSRAD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,imm8 \361\362\370\1\x72\74\214\26 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmrm \361\362\370\1\xE2\75\120 AVX,SANDYBRIDGE
+
+[VPSRAW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,imm8 \361\362\370\1\x71\74\214\26 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmrm \361\362\370\1\xE1\75\120 AVX,SANDYBRIDGE
+
+[VPSRLD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,imm8 \361\362\370\1\x72\74\212\26 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmrm \361\362\370\1\xD2\75\120 AVX,SANDYBRIDGE
+
+[VPSRLDQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,imm8 \361\362\370\1\x73\74\213\26 AVX,SANDYBRIDGE
+
+[VPSRLQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,imm8 \361\362\370\1\x73\74\212\26 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmrm \361\362\370\1\xD3\75\120 AVX,SANDYBRIDGE
+
+[VPSRLW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,imm8 \361\362\370\1\x71\74\212\26 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmrm \361\362\370\1\xD1\75\120 AVX,SANDYBRIDGE
+
+[VPSUBB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xF8\75\120 AVX,SANDYBRIDGE
+
+[VPSUBD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xFA\75\120 AVX,SANDYBRIDGE
+
+[VPSUBQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xFB\75\120 AVX,SANDYBRIDGE
+
+[VPSUBSB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xE8\75\120 AVX,SANDYBRIDGE
+
+[VPSUBSW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xE9\75\120 AVX,SANDYBRIDGE
+
+[VPSUBUSB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xD8\75\120 AVX,SANDYBRIDGE
+
+[VPSUBUSW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xD9\75\120 AVX,SANDYBRIDGE
+
+[VPSUBW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xF9\75\120 AVX,SANDYBRIDGE
+
+[VPTEST]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmrm \361\362\364\371\1\x17\110 AVX,SANDYBRIDGE
+xmmreg,xmmrm \361\362\371\1\x17\110 AVX,SANDYBRIDGE
+
+[VPUNPCKHBW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x68\75\120 AVX,SANDYBRIDGE
+
+[VPUNPCKHDQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x6A\75\120 AVX,SANDYBRIDGE
+
+[VPUNPCKHQDQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x6D\75\120 AVX,SANDYBRIDGE
+
+[VPUNPCKHWD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x69\75\120 AVX,SANDYBRIDGE
+
+[VPUNPCKLBW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x60\75\120 AVX,SANDYBRIDGE
+
+[VPUNPCKLDQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x62\75\120 AVX,SANDYBRIDGE
+
+[VPUNPCKLQDQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x6C\75\120 AVX,SANDYBRIDGE
+
+[VPUNPCKLWD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x61\75\120 AVX,SANDYBRIDGE
+
+[VPXOR]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\xEF\75\120 AVX,SANDYBRIDGE
+
+[VRCPPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \362\370\1\x53\110 AVX,SANDYBRIDGE
+ymmreg,ymmrm \362\364\370\1\x53\110 AVX,SANDYBRIDGE
+
+[VRCPSS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem32 \333\362\370\1\x53\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \333\362\370\1\x53\75\120 AVX,SANDYBRIDGE
+
+[VROUNDPD]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmrm,imm8 \361\362\364\372\1\x09\110\26 AVX,SANDYBRIDGE
+xmmreg,xmmrm,imm8 \361\362\372\1\x09\110\26 AVX,SANDYBRIDGE
+
+[VROUNDPS]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmrm,imm8 \361\362\364\372\1\x08\110\26 AVX,SANDYBRIDGE
+xmmreg,xmmrm,imm8 \361\362\372\1\x08\110\26 AVX,SANDYBRIDGE
+
+[VROUNDSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem64,imm8 \361\362\372\1\x0B\75\120\27 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg,imm8 \361\362\372\1\x0B\75\120\27 AVX,SANDYBRIDGE
+
+[VROUNDSS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem32,imm8 \361\362\372\1\x0A\75\120\27 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg,imm8 \361\362\372\1\x0A\75\120\27 AVX,SANDYBRIDGE
+
+[VRSQRTPS]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmrm \362\364\370\1\x52\110 AVX,SANDYBRIDGE
+xmmreg,xmmrm \362\370\1\x52\110 AVX,SANDYBRIDGE
+
+[VRSQRTSS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem32 \333\362\370\1\x52\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \333\362\370\1\x52\75\120 AVX,SANDYBRIDGE
+
+[VSHUFPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm,imm8 \361\362\370\1\xC6\75\120\27 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm,imm8 \361\362\364\370\1\xC6\75\120\27 AVX,SANDYBRIDGE
+
+[VSHUFPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm,imm8 \362\370\1\xC6\75\120\27 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm,imm8 \362\364\370\1\xC6\75\120\27 AVX,SANDYBRIDGE
+
+[VSQRTPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \361\362\370\1\x51\110 AVX,SANDYBRIDGE
+ymmreg,ymmrm \361\362\364\370\1\x51\110 AVX,SANDYBRIDGE
+
+[VSQRTPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \362\370\1\x51\110 AVX,SANDYBRIDGE
+ymmreg,ymmrm \362\364\370\1\x51\110 AVX,SANDYBRIDGE
+
+[VSQRTSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem64 \334\362\370\1\x51\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \334\362\370\1\x51\75\120 AVX,SANDYBRIDGE
+
+[VSQRTSS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem32 \333\362\370\1\x51\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \333\362\370\1\x51\75\120 AVX,SANDYBRIDGE
+
+[VSTMXCSR]
+(Ch_All, Ch_None, Ch_None)
+mem32 \362\370\1\xAE\203 AVX,SANDYBRIDGE
+
+[VSUBPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x5C\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x5C\75\120 AVX,SANDYBRIDGE
+
+[VSUBPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \362\370\1\x5C\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \362\364\370\1\x5C\75\120 AVX,SANDYBRIDGE
+
+[VSUBSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem64 \334\362\370\1\x5C\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \334\362\370\1\x5C\75\120 AVX,SANDYBRIDGE
+
+[VSUBSS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem32 \333\362\370\1\x5C\75\120 AVX,SANDYBRIDGE
+xmmreg,xmmreg,xmmreg \333\362\370\1\x5C\75\120 AVX,SANDYBRIDGE
+
+[VTESTPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmrm \361\362\371\1\x0F\110 AVX,SANDYBRIDGE
+ymmreg,ymmrm \361\362\364\371\1\x0F\110 AVX,SANDYBRIDGE
+
+[VTESTPS]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmrm \361\362\364\371\1\x0E\110 AVX,SANDYBRIDGE
+xmmreg,xmmrm \361\362\371\1\x0E\110 AVX,SANDYBRIDGE
+
+[VUCOMISD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem64 \361\362\370\1\x2E\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \361\362\370\1\x2E\110 AVX,SANDYBRIDGE
+
+[VUCOMISS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem32 \362\370\1\x2E\110 AVX,SANDYBRIDGE
+xmmreg,xmmreg \362\370\1\x2E\110 AVX,SANDYBRIDGE
+
+[VUNPCKHPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x15\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x15\75\120 AVX,SANDYBRIDGE
+
+[VUNPCKHPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \362\370\1\x15\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \362\364\370\1\x15\75\120 AVX,SANDYBRIDGE
+
+[VUNPCKLPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x14\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x14\75\120 AVX,SANDYBRIDGE
+
+[VUNPCKLPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \362\370\1\x14\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \362\364\370\1\x14\75\120 AVX,SANDYBRIDGE
+
+[VXORPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\370\1\x57\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x57\75\120 AVX,SANDYBRIDGE
+
+[VXORPS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \362\370\1\x57\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \362\364\370\1\x57\75\120 AVX,SANDYBRIDGE
+
+[VZEROALL]
+(Ch_All, Ch_None, Ch_None)
+void \362\364\370\1\x77 AVX,SANDYBRIDGE
+
+[VZEROUPPER]
+(Ch_All, Ch_None, Ch_None)
+void \362\370\1\x77 AVX,SANDYBRIDGE
diff --git a/compiler/x86/x86reg.dat b/compiler/x86/x86reg.dat
index 1ebea360b3..d448e5b0c9 100644
--- a/compiler/x86/x86reg.dat
+++ b/compiler/x86/x86reg.dat
@@ -122,19 +122,36 @@ NR_MM5,$03000005,mm5,%mm5,mm5,mm5,34,34,46,OT_MMXREG,5
NR_MM6,$03000006,mm6,%mm6,mm6,mm6,35,35,47,OT_MMXREG,6
NR_MM7,$03000007,mm7,%mm7,mm7,mm7,36,36,48,OT_MMXREG,7
-NR_XMM0,$04000000,xmm0,%xmm0,xmm0,xmm0,21,21,17,OT_XMMREG,0
-NR_XMM1,$04000001,xmm1,%xmm1,xmm1,xmm1,22,22,18,OT_XMMREG,1
-NR_XMM2,$04000002,xmm2,%xmm2,xmm2,xmm2,23,23,19,OT_XMMREG,2
-NR_XMM3,$04000003,xmm3,%xmm3,xmm3,xmm3,24,24,20,OT_XMMREG,3
-NR_XMM4,$04000004,xmm4,%xmm4,xmm4,xmm4,25,25,21,OT_XMMREG,4
-NR_XMM5,$04000005,xmm5,%xmm5,xmm5,xmm5,26,26,22,OT_XMMREG,5
-NR_XMM6,$04000006,xmm6,%xmm6,xmm6,xmm6,27,27,23,OT_XMMREG,6
-NR_XMM7,$04000007,xmm7,%xmm7,xmm7,xmm7,28,28,24,OT_XMMREG,7
-NR_XMM8,$04000008,xmm8,%xmm8,xmm8,xmm8,-1,-1,25,OT_XMMREG,0,64
-NR_XMM9,$04000009,xmm9,%xmm9,xmm9,xmm9,-1,-1,26,OT_XMMREG,1,64
-NR_XMM10,$0400000a,xmm10,%xmm10,xmm10,xmm10,-1,-1,27,OT_XMMREG,2,64
-NR_XMM11,$0400000b,xmm11,%xmm11,xmm11,xmm11,-1,-1,28,OT_XMMREG,3,64
-NR_XMM12,$0400000c,xmm12,%xmm12,xmm12,xmm12,-1,-1,29,OT_XMMREG,4,64
-NR_XMM13,$0400000d,xmm13,%xmm13,xmm13,xmm13,-1,-1,30,OT_XMMREG,5,64
-NR_XMM14,$0400000e,xmm14,%xmm14,xmm14,xmm14,-1,-1,31,OT_XMMREG,6,64
-NR_XMM15,$0400000f,xmm15,%xmm15,xmm15,xmm15,-1,-1,32,OT_XMMREG,7,64
+NR_XMM0,$040C0000,xmm0,%xmm0,xmm0,xmm0,21,21,17,OT_XMMREG,0
+NR_XMM1,$040C0001,xmm1,%xmm1,xmm1,xmm1,22,22,18,OT_XMMREG,1
+NR_XMM2,$040C0002,xmm2,%xmm2,xmm2,xmm2,23,23,19,OT_XMMREG,2
+NR_XMM3,$040C0003,xmm3,%xmm3,xmm3,xmm3,24,24,20,OT_XMMREG,3
+NR_XMM4,$040C0004,xmm4,%xmm4,xmm4,xmm4,25,25,21,OT_XMMREG,4
+NR_XMM5,$040C0005,xmm5,%xmm5,xmm5,xmm5,26,26,22,OT_XMMREG,5
+NR_XMM6,$040C0006,xmm6,%xmm6,xmm6,xmm6,27,27,23,OT_XMMREG,6
+NR_XMM7,$040C0007,xmm7,%xmm7,xmm7,xmm7,28,28,24,OT_XMMREG,7
+NR_XMM8,$040C0008,xmm8,%xmm8,xmm8,xmm8,-1,-1,25,OT_XMMREG,0,64
+NR_XMM9,$040C0009,xmm9,%xmm9,xmm9,xmm9,-1,-1,26,OT_XMMREG,1,64
+NR_XMM10,$040C000a,xmm10,%xmm10,xmm10,xmm10,-1,-1,27,OT_XMMREG,2,64
+NR_XMM11,$040C000b,xmm11,%xmm11,xmm11,xmm11,-1,-1,28,OT_XMMREG,3,64
+NR_XMM12,$040C000c,xmm12,%xmm12,xmm12,xmm12,-1,-1,29,OT_XMMREG,4,64
+NR_XMM13,$040C000d,xmm13,%xmm13,xmm13,xmm13,-1,-1,30,OT_XMMREG,5,64
+NR_XMM14,$040C000e,xmm14,%xmm14,xmm14,xmm14,-1,-1,31,OT_XMMREG,6,64
+NR_XMM15,$040C000f,xmm15,%xmm15,xmm15,xmm15,-1,-1,32,OT_XMMREG,7,64
+
+NR_YMM0,$040D0000,ymm0,%ymm0,ymm0,ymm0,21,21,17,OT_YMMREG,0
+NR_YMM1,$040D0001,ymm1,%ymm1,ymm1,ymm1,22,22,18,OT_YMMREG,1
+NR_YMM2,$040D0002,ymm2,%ymm2,ymm2,ymm2,23,23,19,OT_YMMREG,2
+NR_YMM3,$040D0003,ymm3,%ymm3,ymm3,ymm3,24,24,20,OT_YMMREG,3
+NR_YMM4,$040D0004,ymm4,%ymm4,ymm4,ymm4,25,25,21,OT_YMMREG,4
+NR_YMM5,$040D0005,ymm5,%ymm5,ymm5,ymm5,26,26,22,OT_YMMREG,5
+NR_YMM6,$040D0006,ymm6,%ymm6,ymm6,ymm6,27,27,23,OT_YMMREG,6
+NR_YMM7,$040D0007,ymm7,%ymm7,ymm7,ymm7,28,28,24,OT_YMMREG,7
+NR_YMM8,$040D0008,ymm8,%ymm8,ymm8,ymm8,-1,-1,25,OT_YMMREG,0,64
+NR_YMM9,$040D0009,ymm9,%ymm9,ymm9,ymm9,-1,-1,26,OT_YMMREG,1,64
+NR_YMM10,$040D000a,ymm10,%ymm10,ymm10,ymm10,-1,-1,27,OT_YMMREG,2,64
+NR_YMM11,$040D000b,ymm11,%ymm11,ymm11,ymm11,-1,-1,28,OT_YMMREG,3,64
+NR_YMM12,$040D000c,ymm12,%ymm12,ymm12,ymm12,-1,-1,29,OT_YMMREG,4,64
+NR_YMM13,$040D000d,ymm13,%ymm13,ymm13,ymm13,-1,-1,30,OT_YMMREG,5,64
+NR_YMM14,$040D000e,ymm14,%ymm14,ymm14,ymm14,-1,-1,31,OT_YMMREG,6,64
+NR_YMM15,$040D000f,ymm15,%ymm15,ymm15,ymm15,-1,-1,32,OT_YMMREG,7,64
diff --git a/compiler/x86_64/cpubase.inc b/compiler/x86_64/cpubase.inc
index 5ad43262b3..68e0763597 100644
--- a/compiler/x86_64/cpubase.inc
+++ b/compiler/x86_64/cpubase.inc
@@ -34,7 +34,8 @@ type
S_MD,
S_NEAR,S_FAR,S_SHORT,
S_T,
- S_XMM
+ S_XMM,
+ S_YMM
);
{*****************************************************************************
diff --git a/compiler/x86_64/r8664ari.inc b/compiler/x86_64/r8664ari.inc
index bdce69ce50..54988eb9e6 100644
--- a/compiler/x86_64/r8664ari.inc
+++ b/compiler/x86_64/r8664ari.inc
@@ -123,4 +123,20 @@
116,
117,
118,
+125,
+126,
+135,
+136,
+137,
+138,
+139,
+140,
+127,
+128,
+129,
+130,
+131,
+132,
+133,
+134,
0
diff --git a/compiler/x86_64/r8664att.inc b/compiler/x86_64/r8664att.inc
index f9539b56f8..b82057950f 100644
--- a/compiler/x86_64/r8664att.inc
+++ b/compiler/x86_64/r8664att.inc
@@ -123,4 +123,20 @@
'%xmm12',
'%xmm13',
'%xmm14',
-'%xmm15'
+'%xmm15',
+'%ymm0',
+'%ymm1',
+'%ymm2',
+'%ymm3',
+'%ymm4',
+'%ymm5',
+'%ymm6',
+'%ymm7',
+'%ymm8',
+'%ymm9',
+'%ymm10',
+'%ymm11',
+'%ymm12',
+'%ymm13',
+'%ymm14',
+'%ymm15'
diff --git a/compiler/x86_64/r8664con.inc b/compiler/x86_64/r8664con.inc
index ae6a0d28e3..d202693242 100644
--- a/compiler/x86_64/r8664con.inc
+++ b/compiler/x86_64/r8664con.inc
@@ -108,19 +108,35 @@ NR_MM4 = tregister($03000004);
NR_MM5 = tregister($03000005);
NR_MM6 = tregister($03000006);
NR_MM7 = tregister($03000007);
-NR_XMM0 = tregister($04000000);
-NR_XMM1 = tregister($04000001);
-NR_XMM2 = tregister($04000002);
-NR_XMM3 = tregister($04000003);
-NR_XMM4 = tregister($04000004);
-NR_XMM5 = tregister($04000005);
-NR_XMM6 = tregister($04000006);
-NR_XMM7 = tregister($04000007);
-NR_XMM8 = tregister($04000008);
-NR_XMM9 = tregister($04000009);
-NR_XMM10 = tregister($0400000a);
-NR_XMM11 = tregister($0400000b);
-NR_XMM12 = tregister($0400000c);
-NR_XMM13 = tregister($0400000d);
-NR_XMM14 = tregister($0400000e);
-NR_XMM15 = tregister($0400000f);
+NR_XMM0 = tregister($040C0000);
+NR_XMM1 = tregister($040C0001);
+NR_XMM2 = tregister($040C0002);
+NR_XMM3 = tregister($040C0003);
+NR_XMM4 = tregister($040C0004);
+NR_XMM5 = tregister($040C0005);
+NR_XMM6 = tregister($040C0006);
+NR_XMM7 = tregister($040C0007);
+NR_XMM8 = tregister($040C0008);
+NR_XMM9 = tregister($040C0009);
+NR_XMM10 = tregister($040C000a);
+NR_XMM11 = tregister($040C000b);
+NR_XMM12 = tregister($040C000c);
+NR_XMM13 = tregister($040C000d);
+NR_XMM14 = tregister($040C000e);
+NR_XMM15 = tregister($040C000f);
+NR_YMM0 = tregister($040D0000);
+NR_YMM1 = tregister($040D0001);
+NR_YMM2 = tregister($040D0002);
+NR_YMM3 = tregister($040D0003);
+NR_YMM4 = tregister($040D0004);
+NR_YMM5 = tregister($040D0005);
+NR_YMM6 = tregister($040D0006);
+NR_YMM7 = tregister($040D0007);
+NR_YMM8 = tregister($040D0008);
+NR_YMM9 = tregister($040D0009);
+NR_YMM10 = tregister($040D000a);
+NR_YMM11 = tregister($040D000b);
+NR_YMM12 = tregister($040D000c);
+NR_YMM13 = tregister($040D000d);
+NR_YMM14 = tregister($040D000e);
+NR_YMM15 = tregister($040D000f);
diff --git a/compiler/x86_64/r8664dwrf.inc b/compiler/x86_64/r8664dwrf.inc
index 27f736cb5c..0f2b2ffe33 100644
--- a/compiler/x86_64/r8664dwrf.inc
+++ b/compiler/x86_64/r8664dwrf.inc
@@ -123,4 +123,20 @@
29,
30,
31,
+32,
+17,
+18,
+19,
+20,
+21,
+22,
+23,
+24,
+25,
+26,
+27,
+28,
+29,
+30,
+31,
32
diff --git a/compiler/x86_64/r8664int.inc b/compiler/x86_64/r8664int.inc
index 55ea578074..25ecb9c5b1 100644
--- a/compiler/x86_64/r8664int.inc
+++ b/compiler/x86_64/r8664int.inc
@@ -123,4 +123,20 @@
'xmm12',
'xmm13',
'xmm14',
-'xmm15'
+'xmm15',
+'ymm0',
+'ymm1',
+'ymm2',
+'ymm3',
+'ymm4',
+'ymm5',
+'ymm6',
+'ymm7',
+'ymm8',
+'ymm9',
+'ymm10',
+'ymm11',
+'ymm12',
+'ymm13',
+'ymm14',
+'ymm15'
diff --git a/compiler/x86_64/r8664iri.inc b/compiler/x86_64/r8664iri.inc
index 67d9df19f9..e138ae7bc3 100644
--- a/compiler/x86_64/r8664iri.inc
+++ b/compiler/x86_64/r8664iri.inc
@@ -123,4 +123,20 @@
115,
116,
117,
-118
+118,
+125,
+126,
+135,
+136,
+137,
+138,
+139,
+140,
+127,
+128,
+129,
+130,
+131,
+132,
+133,
+134
diff --git a/compiler/x86_64/r8664nor.inc b/compiler/x86_64/r8664nor.inc
index 7b3502fb2e..fc3c83871f 100644
--- a/compiler/x86_64/r8664nor.inc
+++ b/compiler/x86_64/r8664nor.inc
@@ -1,2 +1,2 @@
{ don't edit, this file is generated from x86reg.dat }
-125
+141
diff --git a/compiler/x86_64/r8664num.inc b/compiler/x86_64/r8664num.inc
index 01e0b0dfa7..96b7d6ef53 100644
--- a/compiler/x86_64/r8664num.inc
+++ b/compiler/x86_64/r8664num.inc
@@ -108,19 +108,35 @@ tregister($03000004),
tregister($03000005),
tregister($03000006),
tregister($03000007),
-tregister($04000000),
-tregister($04000001),
-tregister($04000002),
-tregister($04000003),
-tregister($04000004),
-tregister($04000005),
-tregister($04000006),
-tregister($04000007),
-tregister($04000008),
-tregister($04000009),
-tregister($0400000a),
-tregister($0400000b),
-tregister($0400000c),
-tregister($0400000d),
-tregister($0400000e),
-tregister($0400000f)
+tregister($040C0000),
+tregister($040C0001),
+tregister($040C0002),
+tregister($040C0003),
+tregister($040C0004),
+tregister($040C0005),
+tregister($040C0006),
+tregister($040C0007),
+tregister($040C0008),
+tregister($040C0009),
+tregister($040C000a),
+tregister($040C000b),
+tregister($040C000c),
+tregister($040C000d),
+tregister($040C000e),
+tregister($040C000f),
+tregister($040D0000),
+tregister($040D0001),
+tregister($040D0002),
+tregister($040D0003),
+tregister($040D0004),
+tregister($040D0005),
+tregister($040D0006),
+tregister($040D0007),
+tregister($040D0008),
+tregister($040D0009),
+tregister($040D000a),
+tregister($040D000b),
+tregister($040D000c),
+tregister($040D000d),
+tregister($040D000e),
+tregister($040D000f)
diff --git a/compiler/x86_64/r8664op.inc b/compiler/x86_64/r8664op.inc
index 2681385b44..af3878d4d3 100644
--- a/compiler/x86_64/r8664op.inc
+++ b/compiler/x86_64/r8664op.inc
@@ -123,4 +123,20 @@
4,
5,
6,
+7,
+0,
+1,
+2,
+3,
+4,
+5,
+6,
+7,
+0,
+1,
+2,
+3,
+4,
+5,
+6,
7
diff --git a/compiler/x86_64/r8664ot.inc b/compiler/x86_64/r8664ot.inc
index 7db67465fe..5cf3af7cd3 100644
--- a/compiler/x86_64/r8664ot.inc
+++ b/compiler/x86_64/r8664ot.inc
@@ -123,4 +123,20 @@ OT_XMMREG,
OT_XMMREG,
OT_XMMREG,
OT_XMMREG,
-OT_XMMREG
+OT_XMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG,
+OT_YMMREG
diff --git a/compiler/x86_64/r8664rni.inc b/compiler/x86_64/r8664rni.inc
index 3ab0a735ab..f83dc7012c 100644
--- a/compiler/x86_64/r8664rni.inc
+++ b/compiler/x86_64/r8664rni.inc
@@ -101,6 +101,22 @@
122,
123,
124,
+125,
+126,
+127,
+128,
+129,
+130,
+131,
+132,
+133,
+134,
+135,
+136,
+137,
+138,
+139,
+140,
69,
70,
71,
diff --git a/compiler/x86_64/r8664sri.inc b/compiler/x86_64/r8664sri.inc
index 67d9df19f9..e138ae7bc3 100644
--- a/compiler/x86_64/r8664sri.inc
+++ b/compiler/x86_64/r8664sri.inc
@@ -123,4 +123,20 @@
115,
116,
117,
-118
+118,
+125,
+126,
+135,
+136,
+137,
+138,
+139,
+140,
+127,
+128,
+129,
+130,
+131,
+132,
+133,
+134
diff --git a/compiler/x86_64/r8664stab.inc b/compiler/x86_64/r8664stab.inc
index 27f736cb5c..0f2b2ffe33 100644
--- a/compiler/x86_64/r8664stab.inc
+++ b/compiler/x86_64/r8664stab.inc
@@ -123,4 +123,20 @@
29,
30,
31,
+32,
+17,
+18,
+19,
+20,
+21,
+22,
+23,
+24,
+25,
+26,
+27,
+28,
+29,
+30,
+31,
32
diff --git a/compiler/x86_64/r8664std.inc b/compiler/x86_64/r8664std.inc
index 55ea578074..25ecb9c5b1 100644
--- a/compiler/x86_64/r8664std.inc
+++ b/compiler/x86_64/r8664std.inc
@@ -123,4 +123,20 @@
'xmm12',
'xmm13',
'xmm14',
-'xmm15'
+'xmm15',
+'ymm0',
+'ymm1',
+'ymm2',
+'ymm3',
+'ymm4',
+'ymm5',
+'ymm6',
+'ymm7',
+'ymm8',
+'ymm9',
+'ymm10',
+'ymm11',
+'ymm12',
+'ymm13',
+'ymm14',
+'ymm15'
diff --git a/compiler/x86_64/x8664ats.inc b/compiler/x86_64/x8664ats.inc
index 31bc9cd421..2f06270fe3 100644
--- a/compiler/x86_64/x8664ats.inc
+++ b/compiler/x86_64/x8664ats.inc
@@ -417,7 +417,7 @@ attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
-attsufINT,
+attsufMM,
attsufINT,
attsufNONE,
attsufINT,
@@ -534,7 +534,7 @@ attsufNONE,
attsufNONE,
attsufINT,
attsufNONE,
-attsufINT,
+attsufMM,
attsufNONE,
attsufNONE,
attsufNONE,
@@ -684,5 +684,264 @@ attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufMM,
+attsufMM,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufMM,
+attsufMM,
+attsufNONE,
+attsufNONE,
+attsufMM,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
attsufNONE
);
diff --git a/compiler/x86_64/x8664att.inc b/compiler/x86_64/x8664att.inc
index a591dad220..14ca3fbc0b 100644
--- a/compiler/x86_64/x8664att.inc
+++ b/compiler/x86_64/x8664att.inc
@@ -684,5 +684,264 @@
'aeskeygenassist',
'stosq',
'lodsq',
-'cmpsq'
+'cmpsq',
+'vaddpd',
+'vaddps',
+'vaddsd',
+'vaddss',
+'vaddsubpd',
+'vaddsubps',
+'vaesdec',
+'vaesdeclast',
+'vaesenc',
+'vaesenclast',
+'vaesimc',
+'vaeskeygenassist',
+'vandnpd',
+'vandnps',
+'vandpd',
+'vandps',
+'vblendpd',
+'vblendps',
+'vblendvpd',
+'vblendvps',
+'vbroadcastf128',
+'vbroadcastsd',
+'vbroadcastss',
+'vcmppd',
+'vcmpps',
+'vcmpsd',
+'vcmpss',
+'vcomisd',
+'vcomiss',
+'vcvtdq2pd',
+'vcvtdq2ps',
+'vcvtpd2dq',
+'vcvtpd2ps',
+'vcvtps2dq',
+'vcvtps2pd',
+'vcvtsd2si',
+'vcvtsd2ss',
+'vcvtsi2sd',
+'vcvtsi2ss',
+'vcvtss2sd',
+'vcvtss2si',
+'vcvttpd2dq',
+'vcvttps2dq',
+'vcvttsd2si',
+'vcvttss2si',
+'vdivpd',
+'vdivps',
+'vdivsd',
+'vdivss',
+'vdppd',
+'vdpps',
+'vextractf128',
+'vextractps',
+'vhaddpd',
+'vhaddps',
+'vhsubpd',
+'vhsubps',
+'vinsertf128',
+'vinsertps',
+'vlddqu',
+'vldmxcsr',
+'vmaskmovdqu',
+'vmaskmovpd',
+'vmaskmovps',
+'vmaxpd',
+'vmaxps',
+'vmaxsd',
+'vmaxss',
+'vminpd',
+'vminps',
+'vminsd',
+'vminss',
+'vmovapd',
+'vmovaps',
+'vmovd',
+'vmovddup',
+'vmovdqa',
+'vmovdqu',
+'vmovhlps',
+'vmovhpd',
+'vmovhps',
+'vmovlhps',
+'vmovlpd',
+'vmovlps',
+'vmovmskpd',
+'vmovmskps',
+'vmovntdq',
+'vmovntdqa',
+'vmovntpd',
+'vmovntps',
+'vmovq',
+'vmovsd',
+'vmovshdup',
+'vmovsldup',
+'vmovss',
+'vmovupd',
+'vmovups',
+'vmpsadbw',
+'vmulpd',
+'vmulps',
+'vmulsd',
+'vmulss',
+'vorpd',
+'vorps',
+'vpabsb',
+'vpabsd',
+'vpabsw',
+'vpackssdw',
+'vpacksswb',
+'vpackusdw',
+'vpackuswb',
+'vpaddb',
+'vpaddd',
+'vpaddq',
+'vpaddsb',
+'vpaddsw',
+'vpaddusb',
+'vpaddusw',
+'vpaddw',
+'vpalignr',
+'vpand',
+'vpandn',
+'vpavgb',
+'vpavgw',
+'vpblendvb',
+'vpblendw',
+'vpclmulqdq',
+'vpcmpeqb',
+'vpcmpeqd',
+'vpcmpeqq',
+'vpcmpeqw',
+'vpcmpestri',
+'vpcmpestrm',
+'vpcmpgtb',
+'vpcmpgtd',
+'vpcmpgtq',
+'vpcmpgtw',
+'vpcmpistri',
+'vpcmpistrm',
+'vperm2f128',
+'vpermilpd',
+'vpermilps',
+'vpextrb',
+'vpextrd',
+'vpextrq',
+'vpextrw',
+'vphaddd',
+'vphaddsw',
+'vphaddw',
+'vphminposuw',
+'vphsubd',
+'vphsubsw',
+'vphsubw',
+'vpinsrb',
+'vpinsrd',
+'vpinsrq',
+'vpinsrw',
+'vpmaddubsw',
+'vpmaddwd',
+'vpmaxsb',
+'vpmaxsd',
+'vpmaxsw',
+'vpmaxub',
+'vpmaxud',
+'vpmaxuw',
+'vpminsb',
+'vpminsd',
+'vpminsw',
+'vpminub',
+'vpminud',
+'vpminuw',
+'vpmovmskb',
+'vpmovsxbd',
+'vpmovsxbq',
+'vpmovsxbw',
+'vpmovsxdq',
+'vpmovsxwd',
+'vpmovsxwq',
+'vpmovzxbd',
+'vpmovzxbq',
+'vpmovzxbw',
+'vpmovzxdq',
+'vpmovzxwd',
+'vpmovzxwq',
+'vpmuldq',
+'vpmulhrsw',
+'vpmulhuw',
+'vpmulhw',
+'vpmulld',
+'vpmullw',
+'vpmuludq',
+'vpor',
+'vpsadbw',
+'vpshufb',
+'vpshufd',
+'vpshufhw',
+'vpshuflw',
+'vpsignb',
+'vpsignd',
+'vpsignw',
+'vpslld',
+'vpslldq',
+'vpsllq',
+'vpsllw',
+'vpsrad',
+'vpsraw',
+'vpsrld',
+'vpsrldq',
+'vpsrlq',
+'vpsrlw',
+'vpsubb',
+'vpsubd',
+'vpsubq',
+'vpsubsb',
+'vpsubsw',
+'vpsubusb',
+'vpsubusw',
+'vpsubw',
+'vptest',
+'vpunpckhbw',
+'vpunpckhdq',
+'vpunpckhqdq',
+'vpunpckhwd',
+'vpunpcklbw',
+'vpunpckldq',
+'vpunpcklqdq',
+'vpunpcklwd',
+'vpxor',
+'vrcpps',
+'vrcpss',
+'vroundpd',
+'vroundps',
+'vroundsd',
+'vroundss',
+'vrsqrtps',
+'vrsqrtss',
+'vshufpd',
+'vshufps',
+'vsqrtpd',
+'vsqrtps',
+'vsqrtsd',
+'vsqrtss',
+'vstmxcsr',
+'vsubpd',
+'vsubps',
+'vsubsd',
+'vsubss',
+'vtestpd',
+'vtestps',
+'vucomisd',
+'vucomiss',
+'vunpckhpd',
+'vunpckhps',
+'vunpcklpd',
+'vunpcklps',
+'vxorpd',
+'vxorps',
+'vzeroall',
+'vzeroupper'
);
diff --git a/compiler/x86_64/x8664int.inc b/compiler/x86_64/x8664int.inc
index b6cc4caa78..3a3f4b4631 100644
--- a/compiler/x86_64/x8664int.inc
+++ b/compiler/x86_64/x8664int.inc
@@ -684,5 +684,264 @@
'aeskeygenassist',
'stosq',
'lodsq',
-'cmpsq'
+'cmpsq',
+'vaddpd',
+'vaddps',
+'vaddsd',
+'vaddss',
+'vaddsubpd',
+'vaddsubps',
+'vaesdec',
+'vaesdeclast',
+'vaesenc',
+'vaesenclast',
+'vaesimc',
+'vaeskeygenassist',
+'vandnpd',
+'vandnps',
+'vandpd',
+'vandps',
+'vblendpd',
+'vblendps',
+'vblendvpd',
+'vblendvps',
+'vbroadcastf128',
+'vbroadcastsd',
+'vbroadcastss',
+'vcmppd',
+'vcmpps',
+'vcmpsd',
+'vcmpss',
+'vcomisd',
+'vcomiss',
+'vcvtdq2pd',
+'vcvtdq2ps',
+'vcvtpd2dq',
+'vcvtpd2ps',
+'vcvtps2dq',
+'vcvtps2pd',
+'vcvtsd2si',
+'vcvtsd2ss',
+'vcvtsi2sd',
+'vcvtsi2ss',
+'vcvtss2sd',
+'vcvtss2si',
+'vcvttpd2dq',
+'vcvttps2dq',
+'vcvttsd2si',
+'vcvttss2si',
+'vdivpd',
+'vdivps',
+'vdivsd',
+'vdivss',
+'vdppd',
+'vdpps',
+'vextractf128',
+'vextractps',
+'vhaddpd',
+'vhaddps',
+'vhsubpd',
+'vhsubps',
+'vinsertf128',
+'vinsertps',
+'vlddqu',
+'vldmxcsr',
+'vmaskmovdqu',
+'vmaskmovpd',
+'vmaskmovps',
+'vmaxpd',
+'vmaxps',
+'vmaxsd',
+'vmaxss',
+'vminpd',
+'vminps',
+'vminsd',
+'vminss',
+'vmovapd',
+'vmovaps',
+'vmovd',
+'vmovddup',
+'vmovdqa',
+'vmovdqu',
+'vmovhlps',
+'vmovhpd',
+'vmovhps',
+'vmovlhps',
+'vmovlpd',
+'vmovlps',
+'vmovmskpd',
+'vmovmskps',
+'vmovntdq',
+'vmovntdqa',
+'vmovntpd',
+'vmovntps',
+'vmovq',
+'vmovsd',
+'vmovshdup',
+'vmovsldup',
+'vmovss',
+'vmovupd',
+'vmovups',
+'vmpsadbw',
+'vmulpd',
+'vmulps',
+'vmulsd',
+'vmulss',
+'vorpd',
+'vorps',
+'vpabsb',
+'vpabsd',
+'vpabsw',
+'vpackssdw',
+'vpacksswb',
+'vpackusdw',
+'vpackuswb',
+'vpaddb',
+'vpaddd',
+'vpaddq',
+'vpaddsb',
+'vpaddsw',
+'vpaddusb',
+'vpaddusw',
+'vpaddw',
+'vpalignr',
+'vpand',
+'vpandn',
+'vpavgb',
+'vpavgw',
+'vpblendvb',
+'vpblendw',
+'vpclmulqdq',
+'vpcmpeqb',
+'vpcmpeqd',
+'vpcmpeqq',
+'vpcmpeqw',
+'vpcmpestri',
+'vpcmpestrm',
+'vpcmpgtb',
+'vpcmpgtd',
+'vpcmpgtq',
+'vpcmpgtw',
+'vpcmpistri',
+'vpcmpistrm',
+'vperm2f128',
+'vpermilpd',
+'vpermilps',
+'vpextrb',
+'vpextrd',
+'vpextrq',
+'vpextrw',
+'vphaddd',
+'vphaddsw',
+'vphaddw',
+'vphminposuw',
+'vphsubd',
+'vphsubsw',
+'vphsubw',
+'vpinsrb',
+'vpinsrd',
+'vpinsrq',
+'vpinsrw',
+'vpmaddubsw',
+'vpmaddwd',
+'vpmaxsb',
+'vpmaxsd',
+'vpmaxsw',
+'vpmaxub',
+'vpmaxud',
+'vpmaxuw',
+'vpminsb',
+'vpminsd',
+'vpminsw',
+'vpminub',
+'vpminud',
+'vpminuw',
+'vpmovmskb',
+'vpmovsxbd',
+'vpmovsxbq',
+'vpmovsxbw',
+'vpmovsxdq',
+'vpmovsxwd',
+'vpmovsxwq',
+'vpmovzxbd',
+'vpmovzxbq',
+'vpmovzxbw',
+'vpmovzxdq',
+'vpmovzxwd',
+'vpmovzxwq',
+'vpmuldq',
+'vpmulhrsw',
+'vpmulhuw',
+'vpmulhw',
+'vpmulld',
+'vpmullw',
+'vpmuludq',
+'vpor',
+'vpsadbw',
+'vpshufb',
+'vpshufd',
+'vpshufhw',
+'vpshuflw',
+'vpsignb',
+'vpsignd',
+'vpsignw',
+'vpslld',
+'vpslldq',
+'vpsllq',
+'vpsllw',
+'vpsrad',
+'vpsraw',
+'vpsrld',
+'vpsrldq',
+'vpsrlq',
+'vpsrlw',
+'vpsubb',
+'vpsubd',
+'vpsubq',
+'vpsubsb',
+'vpsubsw',
+'vpsubusb',
+'vpsubusw',
+'vpsubw',
+'vptest',
+'vpunpckhbw',
+'vpunpckhdq',
+'vpunpckhqdq',
+'vpunpckhwd',
+'vpunpcklbw',
+'vpunpckldq',
+'vpunpcklqdq',
+'vpunpcklwd',
+'vpxor',
+'vrcpps',
+'vrcpss',
+'vroundpd',
+'vroundps',
+'vroundsd',
+'vroundss',
+'vrsqrtps',
+'vrsqrtss',
+'vshufpd',
+'vshufps',
+'vsqrtpd',
+'vsqrtps',
+'vsqrtsd',
+'vsqrtss',
+'vstmxcsr',
+'vsubpd',
+'vsubps',
+'vsubsd',
+'vsubss',
+'vtestpd',
+'vtestps',
+'vucomisd',
+'vucomiss',
+'vunpckhpd',
+'vunpckhps',
+'vunpcklpd',
+'vunpcklps',
+'vxorpd',
+'vxorps',
+'vzeroall',
+'vzeroupper'
);
diff --git a/compiler/x86_64/x8664nop.inc b/compiler/x86_64/x8664nop.inc
index c2713bb5c9..d666800c80 100644
--- a/compiler/x86_64/x8664nop.inc
+++ b/compiler/x86_64/x8664nop.inc
@@ -1,2 +1,2 @@
{ don't edit, this file is generated from x86ins.dat }
-1219;
+1667;
diff --git a/compiler/x86_64/x8664op.inc b/compiler/x86_64/x8664op.inc
index 4070734e54..fbbb16b8c6 100644
--- a/compiler/x86_64/x8664op.inc
+++ b/compiler/x86_64/x8664op.inc
@@ -684,5 +684,264 @@ A_AESIMC,
A_AESKEYGENASSIST,
A_STOSQ,
A_LODSQ,
-A_CMPSQ
+A_CMPSQ,
+A_VADDPD,
+A_VADDPS,
+A_VADDSD,
+A_VADDSS,
+A_VADDSUBPD,
+A_VADDSUBPS,
+A_VAESDEC,
+A_VAESDECLAST,
+A_VAESENC,
+A_VAESENCLAST,
+A_VAESIMC,
+A_VAESKEYGENASSIST,
+A_VANDNPD,
+A_VANDNPS,
+A_VANDPD,
+A_VANDPS,
+A_VBLENDPD,
+A_VBLENDPS,
+A_VBLENDVPD,
+A_VBLENDVPS,
+A_VBROADCASTF128,
+A_VBROADCASTSD,
+A_VBROADCASTSS,
+A_VCMPPD,
+A_VCMPPS,
+A_VCMPSD,
+A_VCMPSS,
+A_VCOMISD,
+A_VCOMISS,
+A_VCVTDQ2PD,
+A_VCVTDQ2PS,
+A_VCVTPD2DQ,
+A_VCVTPD2PS,
+A_VCVTPS2DQ,
+A_VCVTPS2PD,
+A_VCVTSD2SI,
+A_VCVTSD2SS,
+A_VCVTSI2SD,
+A_VCVTSI2SS,
+A_VCVTSS2SD,
+A_VCVTSS2SI,
+A_VCVTTPD2DQ,
+A_VCVTTPS2DQ,
+A_VCVTTSD2SI,
+A_VCVTTSS2SI,
+A_VDIVPD,
+A_VDIVPS,
+A_VDIVSD,
+A_VDIVSS,
+A_VDPPD,
+A_VDPPS,
+A_VEXTRACTF128,
+A_VEXTRACTPS,
+A_VHADDPD,
+A_VHADDPS,
+A_VHSUBPD,
+A_VHSUBPS,
+A_VINSERTF128,
+A_VINSERTPS,
+A_VLDDQU,
+A_VLDMXCSR,
+A_VMASKMOVDQU,
+A_VMASKMOVPD,
+A_VMASKMOVPS,
+A_VMAXPD,
+A_VMAXPS,
+A_VMAXSD,
+A_VMAXSS,
+A_VMINPD,
+A_VMINPS,
+A_VMINSD,
+A_VMINSS,
+A_VMOVAPD,
+A_VMOVAPS,
+A_VMOVD,
+A_VMOVDDUP,
+A_VMOVDQA,
+A_VMOVDQU,
+A_VMOVHLPS,
+A_VMOVHPD,
+A_VMOVHPS,
+A_VMOVLHPS,
+A_VMOVLPD,
+A_VMOVLPS,
+A_VMOVMSKPD,
+A_VMOVMSKPS,
+A_VMOVNTDQ,
+A_VMOVNTDQA,
+A_VMOVNTPD,
+A_VMOVNTPS,
+A_VMOVQ,
+A_VMOVSD,
+A_VMOVSHDUP,
+A_VMOVSLDUP,
+A_VMOVSS,
+A_VMOVUPD,
+A_VMOVUPS,
+A_VMPSADBW,
+A_VMULPD,
+A_VMULPS,
+A_VMULSD,
+A_VMULSS,
+A_VORPD,
+A_VORPS,
+A_VPABSB,
+A_VPABSD,
+A_VPABSW,
+A_VPACKSSDW,
+A_VPACKSSWB,
+A_VPACKUSDW,
+A_VPACKUSWB,
+A_VPADDB,
+A_VPADDD,
+A_VPADDQ,
+A_VPADDSB,
+A_VPADDSW,
+A_VPADDUSB,
+A_VPADDUSW,
+A_VPADDW,
+A_VPALIGNR,
+A_VPAND,
+A_VPANDN,
+A_VPAVGB,
+A_VPAVGW,
+A_VPBLENDVB,
+A_VPBLENDW,
+A_VPCLMULQDQ,
+A_VPCMPEQB,
+A_VPCMPEQD,
+A_VPCMPEQQ,
+A_VPCMPEQW,
+A_VPCMPESTRI,
+A_VPCMPESTRM,
+A_VPCMPGTB,
+A_VPCMPGTD,
+A_VPCMPGTQ,
+A_VPCMPGTW,
+A_VPCMPISTRI,
+A_VPCMPISTRM,
+A_VPERM2F128,
+A_VPERMILPD,
+A_VPERMILPS,
+A_VPEXTRB,
+A_VPEXTRD,
+A_VPEXTRQ,
+A_VPEXTRW,
+A_VPHADDD,
+A_VPHADDSW,
+A_VPHADDW,
+A_VPHMINPOSUW,
+A_VPHSUBD,
+A_VPHSUBSW,
+A_VPHSUBW,
+A_VPINSRB,
+A_VPINSRD,
+A_VPINSRQ,
+A_VPINSRW,
+A_VPMADDUBSW,
+A_VPMADDWD,
+A_VPMAXSB,
+A_VPMAXSD,
+A_VPMAXSW,
+A_VPMAXUB,
+A_VPMAXUD,
+A_VPMAXUW,
+A_VPMINSB,
+A_VPMINSD,
+A_VPMINSW,
+A_VPMINUB,
+A_VPMINUD,
+A_VPMINUW,
+A_VPMOVMSKB,
+A_VPMOVSXBD,
+A_VPMOVSXBQ,
+A_VPMOVSXBW,
+A_VPMOVSXDQ,
+A_VPMOVSXWD,
+A_VPMOVSXWQ,
+A_VPMOVZXBD,
+A_VPMOVZXBQ,
+A_VPMOVZXBW,
+A_VPMOVZXDQ,
+A_VPMOVZXWD,
+A_VPMOVZXWQ,
+A_VPMULDQ,
+A_VPMULHRSW,
+A_VPMULHUW,
+A_VPMULHW,
+A_VPMULLD,
+A_VPMULLW,
+A_VPMULUDQ,
+A_VPOR,
+A_VPSADBW,
+A_VPSHUFB,
+A_VPSHUFD,
+A_VPSHUFHW,
+A_VPSHUFLW,
+A_VPSIGNB,
+A_VPSIGND,
+A_VPSIGNW,
+A_VPSLLD,
+A_VPSLLDQ,
+A_VPSLLQ,
+A_VPSLLW,
+A_VPSRAD,
+A_VPSRAW,
+A_VPSRLD,
+A_VPSRLDQ,
+A_VPSRLQ,
+A_VPSRLW,
+A_VPSUBB,
+A_VPSUBD,
+A_VPSUBQ,
+A_VPSUBSB,
+A_VPSUBSW,
+A_VPSUBUSB,
+A_VPSUBUSW,
+A_VPSUBW,
+A_VPTEST,
+A_VPUNPCKHBW,
+A_VPUNPCKHDQ,
+A_VPUNPCKHQDQ,
+A_VPUNPCKHWD,
+A_VPUNPCKLBW,
+A_VPUNPCKLDQ,
+A_VPUNPCKLQDQ,
+A_VPUNPCKLWD,
+A_VPXOR,
+A_VRCPPS,
+A_VRCPSS,
+A_VROUNDPD,
+A_VROUNDPS,
+A_VROUNDSD,
+A_VROUNDSS,
+A_VRSQRTPS,
+A_VRSQRTSS,
+A_VSHUFPD,
+A_VSHUFPS,
+A_VSQRTPD,
+A_VSQRTPS,
+A_VSQRTSD,
+A_VSQRTSS,
+A_VSTMXCSR,
+A_VSUBPD,
+A_VSUBPS,
+A_VSUBSD,
+A_VSUBSS,
+A_VTESTPD,
+A_VTESTPS,
+A_VUCOMISD,
+A_VUCOMISS,
+A_VUNPCKHPD,
+A_VUNPCKHPS,
+A_VUNPCKLPD,
+A_VUNPCKLPS,
+A_VXORPD,
+A_VXORPS,
+A_VZEROALL,
+A_VZEROUPPER
);
diff --git a/compiler/x86_64/x8664pro.inc b/compiler/x86_64/x8664pro.inc
index 4a8f2f7fa4..e57a923f65 100644
--- a/compiler/x86_64/x8664pro.inc
+++ b/compiler/x86_64/x8664pro.inc
@@ -684,5 +684,264 @@
(Ch: (Ch_All, Ch_None, Ch_None)),
(Ch: (Ch_RRAX, Ch_WMemEDI, Ch_RWRDI)),
(Ch: (Ch_WRAX, Ch_RWRSI, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
(Ch: (Ch_All, Ch_None, Ch_None))
);
diff --git a/compiler/x86_64/x8664tab.inc b/compiler/x86_64/x8664tab.inc
index 5a89969928..e978b44df8 100644
--- a/compiler/x86_64/x8664tab.inc
+++ b/compiler/x86_64/x8664tab.inc
@@ -3944,7 +3944,7 @@
(
opcode : A_POR;
ops : 2;
- optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
code : #241#2#15#235#72;
flags : if_willamette or if_sse2 or if_sm
),
@@ -6086,21 +6086,14 @@
(
opcode : A_CVTPI2PS;
ops : 2;
- optypes : (ot_xmmreg,ot_memory,ot_none,ot_none);
- code : #217#2#15#42#72;
- flags : if_katmai or if_sse or if_mmx
- ),
- (
- opcode : A_CVTPI2PS;
- ops : 2;
- optypes : (ot_xmmreg,ot_mmxreg,ot_none,ot_none);
+ optypes : (ot_xmmreg,ot_mmxrm,ot_none,ot_none);
code : #217#2#15#42#72;
flags : if_katmai or if_sse or if_mmx
),
(
opcode : A_CVTPS2PI;
ops : 2;
- optypes : (ot_mmxreg,ot_memory,ot_none,ot_none);
+ optypes : (ot_mmxreg,ot_memory or ot_bits64,ot_none,ot_none);
code : #217#2#15#45#72;
flags : if_katmai or if_sse or if_mmx
),
@@ -6114,21 +6107,21 @@
(
opcode : A_CVTSI2SS;
ops : 2;
- optypes : (ot_xmmreg,ot_memory,ot_none,ot_none);
+ optypes : (ot_xmmreg,ot_rm_gpr or ot_bits32,ot_none,ot_none);
code : #219#209#2#15#42#72;
flags : if_katmai or if_sse
),
(
opcode : A_CVTSI2SS;
ops : 2;
- optypes : (ot_xmmreg,ot_reg32 or ot_bits64,ot_none,ot_none);
+ optypes : (ot_xmmreg,ot_rm_gpr or ot_bits64,ot_none,ot_none);
code : #219#209#2#15#42#72;
- flags : if_katmai or if_sse
+ flags : if_katmai or if_sse or if_x86_64 or if_si
),
(
opcode : A_CVTSS2SI;
ops : 2;
- optypes : (ot_reg32 or ot_bits64,ot_memory,ot_none,ot_none);
+ optypes : (ot_reg32 or ot_bits64,ot_memory or ot_bits32,ot_none,ot_none);
code : #219#208#2#15#45#72;
flags : if_katmai or if_sse
),
@@ -6142,7 +6135,7 @@
(
opcode : A_CVTTPS2PI;
ops : 2;
- optypes : (ot_mmxreg,ot_memory,ot_none,ot_none);
+ optypes : (ot_mmxreg,ot_memory or ot_bits64,ot_none,ot_none);
code : #217#2#15#44#72;
flags : if_katmai or if_sse or if_mmx
),
@@ -6156,7 +6149,7 @@
(
opcode : A_CVTTSS2SI;
ops : 2;
- optypes : (ot_reg32 or ot_bits64,ot_memory,ot_none,ot_none);
+ optypes : (ot_reg32 or ot_bits64,ot_memory or ot_bits32,ot_none,ot_none);
code : #219#208#2#15#44#72;
flags : if_katmai or if_sse
),
@@ -7087,7 +7080,14 @@
(
opcode : A_CVTDQ2PD;
ops : 2;
- optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #219#2#15#230#72;
+ flags : if_willamette or if_sse2
+ ),
+ (
+ opcode : A_CVTDQ2PD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
code : #219#2#15#230#72;
flags : if_willamette or if_sse2
),
@@ -7136,63 +7136,91 @@
(
opcode : A_CVTPS2PD;
ops : 2;
- optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #2#15#90#72;
+ flags : if_willamette or if_sse2
+ ),
+ (
+ opcode : A_CVTPS2PD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
code : #2#15#90#72;
flags : if_willamette or if_sse2
),
(
opcode : A_CVTSD2SI;
ops : 2;
- optypes : (ot_reg32 or ot_bits64,ot_xmmreg,ot_none,ot_none);
- code : #220#208#2#15#45#72;
+ optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+ code : #220#2#15#45#72;
flags : if_willamette or if_sse2
),
(
opcode : A_CVTSD2SI;
ops : 2;
- optypes : (ot_reg32 or ot_bits64,ot_memory,ot_none,ot_none);
+ optypes : (ot_reg32,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #220#2#15#45#72;
+ flags : if_willamette or if_sse2
+ ),
+ (
+ opcode : A_CVTSD2SI;
+ ops : 2;
+ optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
code : #220#208#2#15#45#72;
+ flags : if_willamette or if_sse2 or if_x86_64
+ ),
+ (
+ opcode : A_CVTSD2SI;
+ ops : 2;
+ optypes : (ot_reg64,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #220#208#2#15#45#72;
+ flags : if_willamette or if_sse2 or if_x86_64
+ ),
+ (
+ opcode : A_CVTSD2SS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #220#2#15#90#72;
flags : if_willamette or if_sse2
),
(
opcode : A_CVTSD2SS;
ops : 2;
- optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
code : #220#2#15#90#72;
flags : if_willamette or if_sse2
),
(
opcode : A_CVTSI2SD;
ops : 2;
- optypes : (ot_xmmreg,ot_reg32 or ot_bits64,ot_none,ot_none);
- code : #220#209#2#15#42#72;
+ optypes : (ot_xmmreg,ot_rm_gpr or ot_bits32,ot_none,ot_none);
+ code : #220#2#15#42#72;
flags : if_willamette or if_sse2
),
(
opcode : A_CVTSI2SD;
ops : 2;
- optypes : (ot_xmmreg,ot_memory,ot_none,ot_none);
- code : #220#209#2#15#42#72;
- flags : if_willamette or if_sse2
+ optypes : (ot_xmmreg,ot_rm_gpr or ot_bits64,ot_none,ot_none);
+ code : #214#220#209#2#15#42#72;
+ flags : if_willamette or if_sse2 or if_x86_64 or if_si
),
(
opcode : A_CVTSS2SD;
ops : 2;
- optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
code : #219#2#15#90#72;
flags : if_willamette or if_sse2
),
(
- opcode : A_CVTTPD2PI;
+ opcode : A_CVTSS2SD;
ops : 2;
- optypes : (ot_mmxreg,ot_xmmreg,ot_none,ot_none);
- code : #241#2#15#44#72;
+ optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #219#2#15#90#72;
flags : if_willamette or if_sse2
),
(
opcode : A_CVTTPD2PI;
ops : 2;
- optypes : (ot_mmxreg,ot_memory,ot_none,ot_none);
+ optypes : (ot_mmxreg,ot_xmmrm,ot_none,ot_none);
code : #241#2#15#44#72;
flags : if_willamette or if_sse2
),
@@ -7220,7 +7248,7 @@
(
opcode : A_CVTTSD2SI;
ops : 2;
- optypes : (ot_reg32 or ot_bits64,ot_memory,ot_none,ot_none);
+ optypes : (ot_reg32 or ot_bits64,ot_memory or ot_bits64,ot_none,ot_none);
code : #220#208#2#15#44#72;
flags : if_willamette or if_sse2
),
@@ -8532,5 +8560,3113 @@
optypes : (ot_none,ot_none,ot_none,ot_none);
code : #214#1#167;
flags : if_x86_64
+ ),
+ (
+ opcode : A_VADDPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#88#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#88#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#88#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#88#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #220#242#248#1#88#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#88#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#88#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#88#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDSUBPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#208#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDSUBPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#208#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDSUBPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #220#242#244#248#1#208#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VADDSUBPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #220#242#248#1#208#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VAESDEC;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#222#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VAESDECLAST;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#223#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VAESENC;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#220#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VAESENCLAST;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#221#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VAESIMC;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#249#1#219#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VAESKEYGENASSIST;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#223#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VANDNPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#85#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VANDNPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#85#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VANDNPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#85#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VANDNPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#85#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VANDPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#84#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VANDPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#84#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VANDPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#84#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VANDPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#84#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBLENDPD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#250#1#13#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBLENDPD;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+ code : #241#242#244#250#1#13#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBLENDPS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#250#1#12#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBLENDPS;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+ code : #241#242#244#250#1#12#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBLENDVPD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_xmmreg);
+ code : #241#242#250#1#75#61#80#247;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBLENDVPD;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_ymmreg);
+ code : #241#242#244#250#1#75#61#80#247;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBLENDVPS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_xmmreg);
+ code : #241#242#250#1#74#61#80#247;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBLENDVPS;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_ymmreg);
+ code : #241#242#244#250#1#74#61#80#247;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBROADCASTF128;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_memory or ot_bits128,ot_none,ot_none);
+ code : #241#242#244#249#1#26#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBROADCASTSD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #241#242#244#249#1#25#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBROADCASTSS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #241#242#244#249#1#24#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VBROADCASTSS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #241#242#249#1#24#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCMPPD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#248#1#194#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCMPPD;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+ code : #241#242#244#248#1#194#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCMPPS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #242#248#1#194#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCMPPS;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+ code : #242#244#248#1#194#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCMPSD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+ code : #220#242#248#1#194#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCMPSD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+ code : #220#242#248#1#194#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCMPSS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+ code : #219#242#248#1#194#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCMPSS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+ code : #219#242#248#1#194#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCOMISD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #241#242#248#1#47#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCOMISD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#47#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCOMISS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #242#248#1#47#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCOMISS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#47#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTDQ2PD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #219#242#248#1#230#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTDQ2PD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #219#242#248#1#230#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTDQ2PD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_none,ot_none);
+ code : #219#242#244#248#1#230#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTDQ2PD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_memory or ot_bits128,ot_none,ot_none);
+ code : #219#242#244#248#1#230#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTDQ2PS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #242#248#1#91#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTDQ2PS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #242#244#248#1#91#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTPD2DQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #220#242#248#1#230#72;
+ flags : if_avx or if_sandybridge or if_si
+ ),
+ (
+ opcode : A_VCVTPD2DQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_ymmrm,ot_none,ot_none);
+ code : #220#242#244#248#1#230#72;
+ flags : if_avx or if_sandybridge or if_si
+ ),
+ (
+ opcode : A_VCVTPD2PS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#248#1#90#72;
+ flags : if_avx or if_sandybridge or if_si
+ ),
+ (
+ opcode : A_VCVTPD2PS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#248#1#90#72;
+ flags : if_avx or if_sandybridge or if_si
+ ),
+ (
+ opcode : A_VCVTPS2DQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#248#1#91#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTPS2DQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#248#1#91#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTPS2PD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #242#248#1#90#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTPS2PD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#90#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTPS2PD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #242#244#248#1#90#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSD2SI;
+ ops : 2;
+ optypes : (ot_reg32,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #220#242#248#1#45#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSD2SI;
+ ops : 2;
+ optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+ code : #220#242#248#1#45#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSD2SI;
+ ops : 2;
+ optypes : (ot_reg64,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #220#242#243#248#1#45#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSD2SI;
+ ops : 2;
+ optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+ code : #220#242#243#248#1#45#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSD2SS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #220#242#248#1#90#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSD2SS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#90#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSI2SD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits32,ot_none);
+ code : #220#242#248#1#42#61#80;
+ flags : if_avx or if_sandybridge or if_sd or if_si
+ ),
+ (
+ opcode : A_VCVTSI2SD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits64,ot_none);
+ code : #220#242#243#248#1#42#61#80;
+ flags : if_avx or if_sandybridge or if_si
+ ),
+ (
+ opcode : A_VCVTSI2SS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits32,ot_none);
+ code : #219#242#248#1#42#61#80;
+ flags : if_avx or if_sandybridge or if_sd or if_si
+ ),
+ (
+ opcode : A_VCVTSI2SS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits64,ot_none);
+ code : #219#242#243#248#1#42#61#80;
+ flags : if_avx or if_sandybridge or if_si
+ ),
+ (
+ opcode : A_VCVTSS2SD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#90#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSS2SD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#90#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSS2SI;
+ ops : 2;
+ optypes : (ot_reg32,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #219#242#248#1#45#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSS2SI;
+ ops : 2;
+ optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+ code : #219#242#248#1#45#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSS2SI;
+ ops : 2;
+ optypes : (ot_reg64,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #219#242#243#248#1#45#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTSS2SI;
+ ops : 2;
+ optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+ code : #219#242#243#248#1#45#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTPD2DQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#248#1#230#72;
+ flags : if_avx or if_sandybridge or if_si
+ ),
+ (
+ opcode : A_VCVTTPD2DQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#248#1#230#72;
+ flags : if_avx or if_sandybridge or if_si
+ ),
+ (
+ opcode : A_VCVTTPS2DQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #219#242#248#1#91#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTPS2DQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #219#242#244#248#1#91#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTSD2SI;
+ ops : 2;
+ optypes : (ot_reg32,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #220#242#248#1#44#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTSD2SI;
+ ops : 2;
+ optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+ code : #220#242#248#1#44#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTSD2SI;
+ ops : 2;
+ optypes : (ot_reg64,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #220#242#243#248#1#44#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTSD2SI;
+ ops : 2;
+ optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+ code : #220#242#243#248#1#44#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTSS2SI;
+ ops : 2;
+ optypes : (ot_reg32,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #219#242#248#1#44#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTSS2SI;
+ ops : 2;
+ optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+ code : #219#242#248#1#44#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTSS2SI;
+ ops : 2;
+ optypes : (ot_reg64,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #219#242#243#248#1#44#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VCVTTSS2SI;
+ ops : 2;
+ optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+ code : #219#242#243#248#1#44#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDIVPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#94#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDIVPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#94#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDIVPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#94#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDIVPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#94#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDIVSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #220#242#248#1#94#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDIVSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#94#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDIVSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#94#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDIVSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#94#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDPPD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#250#1#65#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDPPS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#250#1#64#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VDPPS;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+ code : #241#242#244#250#1#64#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VEXTRACTF128;
+ ops : 3;
+ optypes : (ot_xmmrm,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#244#250#1#25#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VEXTRACTPS;
+ ops : 3;
+ optypes : (ot_rm_gpr or ot_bits32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#23#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VHADDPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#124#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VHADDPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#124#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VHADDPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #220#242#248#1#124#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VHADDPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #220#242#244#248#1#124#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VHSUBPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#125#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VHSUBPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#125#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VHSUBPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #220#242#248#1#125#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VHSUBPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #220#242#244#248#1#125#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VINSERTF128;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#244#250#1#24#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VINSERTPS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+ code : #241#242#250#1#33#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VINSERTPS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+ code : #241#242#250#1#33#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VLDDQU;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits128,ot_none,ot_none);
+ code : #220#242#248#1#240#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VLDDQU;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_memory or ot_bits256,ot_none,ot_none);
+ code : #220#242#244#248#1#240#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VLDMXCSR;
+ ops : 1;
+ optypes : (ot_memory or ot_bits32,ot_none,ot_none,ot_none);
+ code : #242#248#1#174#130;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMASKMOVDQU;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#247#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMASKMOVPD;
+ ops : 3;
+ optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
+ code : #241#242#244#249#1#47#61#66;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMASKMOVPD;
+ ops : 3;
+ optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #241#242#249#1#47#61#66;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMASKMOVPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
+ code : #241#242#244#249#1#45#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMASKMOVPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
+ code : #241#242#249#1#45#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMASKMOVPS;
+ ops : 3;
+ optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
+ code : #241#242#244#249#1#46#61#66;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMASKMOVPS;
+ ops : 3;
+ optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #241#242#249#1#46#61#66;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMASKMOVPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
+ code : #241#242#244#249#1#44#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMASKMOVPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
+ code : #241#242#249#1#44#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMAXPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#95#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMAXPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#95#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMAXPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#95#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMAXPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#95#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMAXSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #220#242#248#1#95#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMAXSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#95#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMAXSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#95#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMAXSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#95#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMINPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#93#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMINPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#93#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMINPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#93#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMINPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#93#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMINSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #220#242#248#1#93#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMINSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#93#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMINSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#93#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMINSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#93#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVAPD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#248#1#40#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVAPD;
+ ops : 2;
+ optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#41#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVAPD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#248#1#40#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVAPD;
+ ops : 2;
+ optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
+ code : #241#242#244#248#1#41#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVAPS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #242#248#1#40#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVAPS;
+ ops : 2;
+ optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#41#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVAPS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #242#244#248#1#40#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVAPS;
+ ops : 2;
+ optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
+ code : #242#244#248#1#41#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_rm_gpr or ot_bits32,ot_none,ot_none);
+ code : #241#242#248#1#110#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVD;
+ ops : 2;
+ optypes : (ot_rm_gpr or ot_bits32,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#126#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDDUP;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #220#242#244#248#1#18#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDDUP;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #220#242#248#1#18#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDDUP;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #220#242#248#1#18#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDQA;
+ ops : 2;
+ optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
+ code : #241#242#244#248#1#127#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDQA;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#248#1#111#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDQA;
+ ops : 2;
+ optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#127#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDQA;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#248#1#111#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDQU;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #219#242#244#248#1#111#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDQU;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #219#242#248#1#111#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDQU;
+ ops : 2;
+ optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
+ code : #219#242#248#1#127#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVDQU;
+ ops : 2;
+ optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
+ code : #219#242#244#248#1#127#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVHLPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #242#248#1#18#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVHPD;
+ ops : 2;
+ optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#23#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVHPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #241#242#248#1#22#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVHPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #242#248#1#22#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVHPS;
+ ops : 2;
+ optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#23#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVLHPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #242#248#1#22#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVLPD;
+ ops : 2;
+ optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#19#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVLPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #241#242#248#1#18#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVLPS;
+ ops : 2;
+ optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#19#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVLPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #242#248#1#18#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVMSKPD;
+ ops : 2;
+ optypes : (ot_reg32,ot_ymmreg,ot_none,ot_none);
+ code : #241#242#244#248#1#80#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVMSKPD;
+ ops : 2;
+ optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#80#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVMSKPD;
+ ops : 2;
+ optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#80#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVMSKPD;
+ ops : 2;
+ optypes : (ot_reg64,ot_ymmreg,ot_none,ot_none);
+ code : #241#242#244#248#1#80#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVMSKPS;
+ ops : 2;
+ optypes : (ot_reg32,ot_ymmreg,ot_none,ot_none);
+ code : #242#244#248#1#80#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVMSKPS;
+ ops : 2;
+ optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#80#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVMSKPS;
+ ops : 2;
+ optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#80#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVMSKPS;
+ ops : 2;
+ optypes : (ot_reg64,ot_ymmreg,ot_none,ot_none);
+ code : #242#244#248#1#80#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVNTDQ;
+ ops : 2;
+ optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#231#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVNTDQ;
+ ops : 2;
+ optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_none,ot_none);
+ code : #241#242#244#248#1#231#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVNTDQA;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits128,ot_none,ot_none);
+ code : #241#242#249#1#42#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVNTPD;
+ ops : 2;
+ optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_none,ot_none);
+ code : #241#242#244#248#1#43#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVNTPD;
+ ops : 2;
+ optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#43#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVNTPS;
+ ops : 2;
+ optypes : (ot_memory or ot_bits128,ot_ymmreg,ot_none,ot_none);
+ code : #242#244#248#1#43#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVNTPS;
+ ops : 2;
+ optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#43#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVQ;
+ ops : 2;
+ optypes : (ot_rm_gpr or ot_bits64,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#243#248#1#126#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_rm_gpr or ot_bits64,ot_none,ot_none);
+ code : #241#242#243#248#1#110#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#16#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #220#242#248#1#16#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#17#61#66;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSD;
+ ops : 2;
+ optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+ code : #220#242#248#1#17#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSHDUP;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #219#242#248#1#22#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSHDUP;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #219#242#244#248#1#22#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSLDUP;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #219#242#248#1#18#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSLDUP;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #219#242#244#248#1#18#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#16#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #219#242#248#1#16#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#17#61#66;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVSS;
+ ops : 2;
+ optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+ code : #219#242#248#1#17#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVUPD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#248#1#16#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVUPD;
+ ops : 2;
+ optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#17#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVUPD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#248#1#16#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVUPD;
+ ops : 2;
+ optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
+ code : #241#242#244#248#1#17#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVUPS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #242#248#1#16#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVUPS;
+ ops : 2;
+ optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#17#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVUPS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #242#244#248#1#16#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMOVUPS;
+ ops : 2;
+ optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
+ code : #242#244#248#1#17#65;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMPSADBW;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#250#1#66#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMULPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#89#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMULPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#89#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMULPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#89#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMULPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#89#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMULSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #220#242#248#1#89#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMULSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#89#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMULSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#89#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VMULSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#89#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VORPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#86#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VORPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#86#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VORPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#86#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPABSB;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#249#1#28#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPABSD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#249#1#30#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPABSW;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#249#1#29#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPACKSSDW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#107#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPACKSSWB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#99#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPACKUSDW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#43#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPACKUSWB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#103#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPADDB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#252#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPADDD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#254#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPADDQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#212#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPADDSB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#236#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPADDSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#237#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPADDUSB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#220#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPADDUSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#221#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPADDW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#253#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPALIGNR;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#250#1#15#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPAND;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#219#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPANDN;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#223#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPAVGB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#224#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPAVGW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#227#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPBLENDVB;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_xmmreg);
+ code : #241#242#250#1#76#61#80#247;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPBLENDW;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#250#1#14#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCLMULQDQ;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#250#1#68#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPEQB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#116#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPEQD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#118#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPEQQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#41#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPEQW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#117#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPESTRI;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#97#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPESTRM;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#96#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPGTB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#100#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPGTD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#102#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPGTQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#55#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPGTW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#101#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPISTRI;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#99#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPCMPISTRM;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#98#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPERM2F128;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+ code : #241#242#244#250#1#6#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPERMILPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#13#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPERMILPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#5#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPERMILPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#244#250#1#5#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPERMILPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#13#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPERMILPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#12#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPERMILPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#4#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPERMILPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#244#250#1#4#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPERMILPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#12#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRB;
+ ops : 3;
+ optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#20#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRB;
+ ops : 3;
+ optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#20#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRB;
+ ops : 3;
+ optypes : (ot_memory or ot_bits8,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#20#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRD;
+ ops : 3;
+ optypes : (ot_rm_gpr or ot_bits32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#22#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRQ;
+ ops : 3;
+ optypes : (ot_rm_gpr or ot_bits64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#243#250#1#22#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRW;
+ ops : 3;
+ optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#197#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRW;
+ ops : 3;
+ optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#197#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRW;
+ ops : 3;
+ optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#21#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRW;
+ ops : 3;
+ optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#21#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPEXTRW;
+ ops : 3;
+ optypes : (ot_memory or ot_bits16,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#21#65#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPHADDD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#2#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPHADDSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#3#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPHADDW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#1#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPHMINPOSUW;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#249#1#65#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPHSUBD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#6#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPHSUBSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#7#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPHSUBW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#5#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPINSRB;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_reg32,ot_immediate or ot_bits8);
+ code : #241#242#250#1#32#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPINSRB;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits8,ot_immediate or ot_bits8);
+ code : #241#242#250#1#32#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPINSRD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits32,ot_immediate or ot_bits8);
+ code : #241#242#250#1#34#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPINSRQ;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits64,ot_immediate or ot_bits8);
+ code : #241#242#243#250#1#34#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPINSRW;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_reg32,ot_immediate or ot_bits8);
+ code : #241#242#248#1#196#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPINSRW;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits16,ot_immediate or ot_bits8);
+ code : #241#242#248#1#196#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMADDUBSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#4#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMADDWD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#245#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMAXSB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#60#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMAXSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#61#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMAXSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#238#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMAXUB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#222#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMAXUD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#63#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMAXUW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#62#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMINSB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#56#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMINSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#57#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMINSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#234#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMINUB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#218#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMINUD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#59#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMINUW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#58#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVMSKB;
+ ops : 2;
+ optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#215#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVMSKB;
+ ops : 2;
+ optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#215#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXBD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #241#242#249#1#33#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXBD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#33#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXBQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits16,ot_none,ot_none);
+ code : #241#242#249#1#34#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXBQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#34#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXBW;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #241#242#249#1#32#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXBW;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#32#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXDQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #241#242#249#1#37#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXDQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#37#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXWD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #241#242#249#1#35#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXWD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#35#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXWQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #241#242#249#1#36#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVSXWQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#36#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXBD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #241#242#249#1#49#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXBD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#49#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXBQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits16,ot_none,ot_none);
+ code : #241#242#249#1#50#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXBQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#50#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXBW;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #241#242#249#1#48#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXBW;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#48#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXDQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #241#242#249#1#53#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXDQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#53#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXWD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #241#242#249#1#51#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXWD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#51#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXWQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #241#242#249#1#52#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMOVZXWQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#52#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMULDQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#40#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMULHRSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#11#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMULHUW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#228#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMULHW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#229#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMULLD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#64#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMULLW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#213#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPMULUDQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#244#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPOR;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#235#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSADBW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#246#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSHUFB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#0#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSHUFD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#112#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSHUFHW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #219#242#248#1#112#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSHUFLW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #220#242#248#1#112#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSIGNB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#8#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSIGND;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#10#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSIGNW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#9#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSLLD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#114#60#142#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSLLD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#242#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSLLDQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#115#60#143#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSLLQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#243#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSLLQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#115#60#142#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSLLW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#113#60#142#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSLLW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#241#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRAD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#114#60#140#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRAD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#226#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRAW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#113#60#140#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRAW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#225#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRLD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#114#60#138#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRLD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#210#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRLDQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#115#60#139#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRLQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#115#60#138#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRLQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#211#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRLW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#248#1#113#60#138#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSRLW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#209#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSUBB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#248#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSUBD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#250#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSUBQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#251#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSUBSB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#232#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSUBSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#233#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSUBUSB;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#216#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSUBUSW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#217#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPSUBW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#249#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPTEST;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#23#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPTEST;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#249#1#23#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPUNPCKHBW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#104#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPUNPCKHDQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#106#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPUNPCKHQDQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#109#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPUNPCKHWD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#105#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPUNPCKLBW;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#96#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPUNPCKLDQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#98#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPUNPCKLQDQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#108#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPUNPCKLWD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#97#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VPXOR;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#239#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VRCPPS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #242#248#1#83#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VRCPPS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #242#244#248#1#83#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VRCPSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#83#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VRCPSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#83#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VROUNDPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#244#250#1#9#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VROUNDPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#9#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VROUNDPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#244#250#1#8#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VROUNDPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+ code : #241#242#250#1#8#72#22;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VROUNDSD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+ code : #241#242#250#1#11#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VROUNDSD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+ code : #241#242#250#1#11#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VROUNDSS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+ code : #241#242#250#1#10#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VROUNDSS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+ code : #241#242#250#1#10#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VRSQRTPS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #242#244#248#1#82#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VRSQRTPS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #242#248#1#82#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VRSQRTSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#82#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VRSQRTSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#82#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSHUFPD;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #241#242#248#1#198#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSHUFPD;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+ code : #241#242#244#248#1#198#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSHUFPS;
+ ops : 4;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+ code : #242#248#1#198#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSHUFPS;
+ ops : 4;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+ code : #242#244#248#1#198#61#80#23;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSQRTPD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#248#1#81#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSQRTPD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#248#1#81#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSQRTPS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #242#248#1#81#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSQRTPS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #242#244#248#1#81#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSQRTSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #220#242#248#1#81#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSQRTSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#81#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSQRTSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#81#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSQRTSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#81#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSTMXCSR;
+ ops : 1;
+ optypes : (ot_memory or ot_bits32,ot_none,ot_none,ot_none);
+ code : #242#248#1#174#131;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSUBPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#92#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSUBPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#92#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSUBPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#92#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSUBPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#92#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSUBSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+ code : #220#242#248#1#92#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSUBSD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #220#242#248#1#92#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSUBSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+ code : #219#242#248#1#92#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VSUBSS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+ code : #219#242#248#1#92#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VTESTPD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#249#1#15#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VTESTPD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#15#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VTESTPS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#14#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VTESTPS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#249#1#14#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUCOMISD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+ code : #241#242#248#1#46#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUCOMISD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#248#1#46#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUCOMISS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
+ code : #242#248#1#46#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUCOMISS;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #242#248#1#46#72;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUNPCKHPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#21#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUNPCKHPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#21#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUNPCKHPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#21#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUNPCKHPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#21#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUNPCKLPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#20#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUNPCKLPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#20#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUNPCKLPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#20#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VUNPCKLPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#20#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VXORPD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#248#1#87#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VXORPD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#87#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VXORPS;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #242#248#1#87#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VXORPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #242#244#248#1#87#61#80;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VZEROALL;
+ ops : 0;
+ optypes : (ot_none,ot_none,ot_none,ot_none);
+ code : #242#244#248#1#119;
+ flags : if_avx or if_sandybridge
+ ),
+ (
+ opcode : A_VZEROUPPER;
+ ops : 0;
+ optypes : (ot_none,ot_none,ot_none,ot_none);
+ code : #242#248#1#119;
+ flags : if_avx or if_sandybridge
)
);