summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2008-05-21 18:10:09 -0700
committerH. Peter Anvin <hpa@zytor.com>2008-05-21 18:10:09 -0700
commit283ba9103e7213d524ec3cd07bd2b150a803aee1 (patch)
tree42f6245dc78cdca77facde9cad3caefd47eccd05
parent2637aca8053d50e5976994140646e270312c4399 (diff)
downloadnasm-283ba9103e7213d524ec3cd07bd2b150a803aee1.tar.gz
AVX: instruction table through M
Implement the AVX instruction table through the letter M.
-rw-r--r--insns.dat113
1 files changed, 105 insertions, 8 deletions
diff --git a/insns.dat b/insns.dat
index 4229c1c2..728eaa31 100644
--- a/insns.dat
+++ b/insns.dat
@@ -2660,29 +2660,29 @@ VCVTPS2DQ ymmreg,ymmrm [rm: vex.256.66.0f 5b /r] AVX,SANDYBRIDGE,SY
VCVTPS2PD xmmreg,xmmrm [rm: vex.128.0f 5a /r] AVX,SANDYBRIDGE,SQ
VCVTPS2PD ymmreg,xmmrm [rm: vex.256.0f 5a /r] AVX,SANDYBRIDGE,SO
VCVTSD2SI reg32,xmmrm [rm: vex.128.f2.0f.w0 2d /r] AVX,SANDYBRIDGE,SQ
-VCVTSD2SI reg64,xmmrm [rm: vex.128.f2.0f.w1 2d /r] AVX,SANDYBRIDGE,SQ
+VCVTSD2SI reg64,xmmrm [rm: vex.128.f2.0f.w1 2d /r] AVX,SANDYBRIDGE,SQ,LONG
VCVTSD2SS xmmreg,xmmreg,xmmrm [rvm: vex.nds.128.f2.0f 5a /r] AVX,SANDYBRIDGE,SQ
VCVTSD2SS xmmreg,xmmrm [r+vm: vex.nds.128.f2.0f 5a /r] AVX,SANDYBRIDGE,SQ
VCVTSI2SD xmmreg,xmmreg,rm32 [rvm: vex.nds.128.f2.0f.w0 2a /r] AVX,SANDYBRIDGE
VCVTSI2SD xmmreg,rm32 [r+vm: vex.nds.128.f2.0f.w0 2a /r] AVX,SANDYBRIDGE
-VCVTSI2SD xmmreg,xmmreg,rm64 [rvm: vex.nds.128.f2.0f.w1 2a /r] AVX,SANDYBRIDGE
-VCVTSI2SD xmmreg,rm64 [r+vm: vex.nds.128.f2.0f.w1 2a /r] AVX,SANDYBRIDGE
+VCVTSI2SD xmmreg,xmmreg,rm64 [rvm: vex.nds.128.f2.0f.w1 2a /r] AVX,SANDYBRIDGE,LONG
+VCVTSI2SD xmmreg,rm64 [r+vm: vex.nds.128.f2.0f.w1 2a /r] AVX,SANDYBRIDGE,LONG
VCVTSI2SD xmmreg,xmmreg,rm32 [rvm: vex.nds.128.f3.0f.w0 2a /r] AVX,SANDYBRIDGE
VCVTSI2SD xmmreg,rm32 [r+vm: vex.nds.128.f3.0f.w0 2a /r] AVX,SANDYBRIDGE
-VCVTSI2SD xmmreg,xmmreg,rm64 [rvm: vex.nds.128.f3.0f.w1 2a /r] AVX,SANDYBRIDGE
-VCVTSI2SD xmmreg,rm64 [r+vm: vex.nds.128.f3.0f.w1 2a /r] AVX,SANDYBRIDGE
+VCVTSI2SD xmmreg,xmmreg,rm64 [rvm: vex.nds.128.f3.0f.w1 2a /r] AVX,SANDYBRIDGE,LONG
+VCVTSI2SD xmmreg,rm64 [r+vm: vex.nds.128.f3.0f.w1 2a /r] AVX,SANDYBRIDGE,LONG
VCVTSS2SD xmmreg,xmmreg,xmmrm [rvm: vex.nds.128.f3.0f 5a /r] AVX,SANDYBRIDGE,SD
VCVTSS2SD xmmreg,xmmrm [r+vm: vex.nds.128.f3.0f 5a /r] AVX,SANDYBRIDGE,SD
VCVTSS2SI reg32,xmmrm [rm: vex.128.f3.0f.w0 2d /r] AVX,SANDYBRIDGE,SD
-VCVTSS2SI reg64,xmmrm [rm: vex.128.f3.0f.w1 2d /r] AVX,SANDYBRIDGE,SD
+VCVTSS2SI reg64,xmmrm [rm: vex.128.f3.0f.w1 2d /r] AVX,SANDYBRIDGE,SD,LONG
VCVTTPD2DQ xmmreg,xmmrm [rm: vex.128.66.0f e6 /r] AVX,SANDYBRIDGE,SO
VCVTTPD2DQ xmmreg,ymmrm [rm: vex.256.66.0f e6 /r] AVX,SANDYBRIDGE,SY
VCVTTPS2DQ xmmreg,xmmrm [rm: vex.128.f3.0f 5b /r] AVX,SANDYBRIDGE,SO
VCVTTPS2DQ ymmreg,ymmrm [rm: vex.256.f3.0f 5b /r] AVX,SANDYBRIDGE,SY
VCVTTSD2SI reg32,xmmrm [rm: vex.128.f2.0f.w0 2c /r] AVX,SANDYBRIDGE,SQ
-VCVTTSD2SI reg64,xmmrm [rm: vex.128.f2.0f.w1 2c /r] AVX,SANDYBRIDGE,SQ
+VCVTTSD2SI reg64,xmmrm [rm: vex.128.f2.0f.w1 2c /r] AVX,SANDYBRIDGE,SQ,LONG
VCVTTSS2SI reg32,xmmrm [rm: vex.128.f3.0f.w0 2c /r] AVX,SANDYBRIDGE,SD
-VCVTTSS2SI reg64,xmmrm [rm: vex.128.f3.0f.w1 2c /r] AVX,SANDYBRIDGE,SD
+VCVTTSS2SI reg64,xmmrm [rm: vex.128.f3.0f.w1 2c /r] AVX,SANDYBRIDGE,SD,LONG
VDIVPD xmmreg,xmmreg,xmmrm [rvm: vex.nds.128.66.0f 5e /r] AVX,SANDYBRIDGE,SO
VDIVPD xmmreg,xmmrm [r+vm: vex.nds.128.66.0f 5e /r] AVX,SANDYBRIDGE,SO
VDIVPD ymmreg,ymmreg,ymmrm [rvm: vex.nds.256.66.0f 5e /r] AVX,SANDYBRIDGE,SY
@@ -2758,6 +2758,103 @@ VMINSD xmmreg,xmmreg,xmmrm [rvm: vex.nds.128.f2.0f 5d /r] AVX,SANDYBRIDGE,SQ
VMINSD xmmreg,xmmrm [r+vm: vex.nds.128.f2.0f 5d /r] AVX,SANDYBRIDGE,SQ
VMINSS xmmreg,xmmreg,xmmrm [rvm: vex.nds.128.f3.0f 5d /r] AVX,SANDYBRIDGE,SD
VMINSS xmmreg,xmmrm [r+vm: vex.nds.128.f3.0f 5d /r] AVX,SANDYBRIDGE,SD
+VMOVAPD xmmreg,xmmrm [rm: vex.128.66.0f 28 /r] AVX,SANDYBRIDGE,SO
+VMOVAPD xmmrm,xmmreg [mr: vex.128.66.0f 29 /r] AVX,SANDYBRIDGE,SO
+VMOVAPD ymmreg,ymmrm [rm: vex.256.66.0f 28 /r] AVX,SANDYBRIDGE,SY
+VMOVAPD ymmrm,ymmreg [mr: vex.256.66.0f 29 /r] AVX,SANDYBRIDGE,SY
+VMOVAPS xmmreg,xmmrm [rm: vex.128.0f 28 /r] AVX,SANDYBRIDGE,SO
+VMOVAPS xmmrm,xmmreg [mr: vex.128.0f 29 /r] AVX,SANDYBRIDGE,SO
+VMOVAPS ymmreg,ymmrm [rm: vex.256.0f 28 /r] AVX,SANDYBRIDGE,SY
+VMOVAPS ymmrm,ymmreg [mr: vex.256.0f 29 /r] AVX,SANDYBRIDGE,SY
+VMOVQ xmmreg,xmmrm [rm: vex.128.f3.0f 7e /r] AVX,SANDYBRIDGE,SQ
+VMOVQ xmmrm,xmmreg [mr: vex.128.66.0f d6 /r] AVX,SANDYBRIDGE,SQ
+VMOVD xmmreg,rm32 [rm: vex.128.66.0f.w0 6e /r] AVX,SANDYBRIDGE,SD
+VMOVQ xmmreg,rm64 [rm: vex.128.66.0f.w1 6e /r] AVX,SANDYBRIDGE,SQ,LONG
+VMOVD rm32,xmmreg [mr: vex.128.66.0f.w0 7e /r] AVX,SANDYBRIDGE,SD
+VMOVQ rm64,xmmreg [mr: vex.128.66.0f.w1 7e /r] AVX,SANDYBRIDGE,SQ,LONG
+VMOVDDUP xmmreg,xmmrm [rm: vex.128.f2.0f 12 /r] AVX,SANDYBRIDGE,SQ
+VMOVDDUP ymmreg,ymmrm [rm: vex.256.f2.0f 12 /r] AVX,SANDYBRIDGE,SY
+VMOVDQA xmmreg,xmmrm [rm: vex.128.66.0f 6f /r] AVX,SANDYBRIDGE,SO
+VMOVDQA xmmrm,xmmreg [mr: vex.128.66.0f 7f /r] AVX,SANDYBRIDGE,SO
+; These are officially documented as VMOVDQA, but VMOVQQA seems more logical to be...
+VMOVQQA ymmreg,ymmrm [rm: vex.256.66.0f 6f /r] AVX,SANDYBRIDGE,SY
+VMOVQQA ymmrm,ymmreg [mr: vex.256.66.0f 7f /r] AVX,SANDYBRIDGE,SY
+VMOVDQA ymmreg,ymmrm [rm: vex.256.66.0f 6f /r] AVX,SANDYBRIDGE,SY
+VMOVDQA ymmrm,ymmreg [mr: vex.256.66.0f 7f /r] AVX,SANDYBRIDGE,SY
+VMOVDQU xmmreg,xmmrm [rm: vex.128.f3.0f 6f /r] AVX,SANDYBRIDGE,SO
+VMOVDQU xmmrm,xmmreg [mr: vex.128.f3.0f 7f /r] AVX,SANDYBRIDGE,SO
+; These are officially documented as VMOVDQU, but VMOVQQU seems more logical to be...
+VMOVQQU ymmreg,ymmrm [rm: vex.256.f3.0f 6f /r] AVX,SANDYBRIDGE,SY
+VMOVQQU ymmrm,ymmreg [mr: vex.256.f3.0f 7f /r] AVX,SANDYBRIDGE,SY
+VMOVDQU ymmreg,ymmrm [rm: vex.256.f3.0f 6f /r] AVX,SANDYBRIDGE,SY
+VMOVDQU ymmrm,ymmreg [mr: vex.256.f3.0f 7f /r] AVX,SANDYBRIDGE,SY
+VMOVHLPS xmmreg,xmmreg,xmmreg [rvm: vex.nds.128.0f 12 /r] AVX,SANDYBRIDGE
+VMOVHLPS xmmreg,xmmreg [r+vm: vex.nds.128.0f 12 /r] AVX,SANDYBRIDGE
+VMOVHPD xmmreg,xmmreg,mem [rvm: vex.nds.128.66.0f 16 /r] AVX,SANDYBRIDGE,SQ
+VMOVHPD xmmreg,mem [r+vm: vex.nds.128.66.0f 16 /r] AVX,SANDYBRIDGE,SQ
+VMOVHPD mem,xmmreg [mr: vex.128.66.0f 17 /r] AVX,SANDYBRIDGE,SQ
+VMOVHPS xmmreg,xmmreg,mem [rvm: vex.nds.128.0f 16 /r] AVX,SANDYBRIDGE,SQ
+VMOVHPS xmmreg,mem [r+vm: vex.nds.128.0f 16 /r] AVX,SANDYBRIDGE,SQ
+VMOVHPS mem,xmmreg [mr: vex.128.0f 17 /r] AVX,SANDYBRIDGE,SQ
+VMOVLHPS xmmreg,xmmreg,xmmreg [rvm: vex.nds.128.0f 16 /r] AVX,SANDYBRIDGE
+VMOVLHPS xmmreg,xmmreg [r+vm: vex.nds.128.0f 16 /r] AVX,SANDYBRIDGE
+VMOVLPD xmmreg,xmmreg,mem [rvm: vex.nds.128.66.0f 12 /r] AVX,SANDYBRIDGE,SQ
+VMOVLPD xmmreg,mem [r+vm: vex.nds.128.66.0f 12 /r] AVX,SANDYBRIDGE,SQ
+VMOVLPD mem,xmmreg [mr: vex.128.66.0f 13 /r] AVX,SANDYBRIDGE,SQ
+VMOVLPS xmmreg,xmmreg,mem [rvm: vex.nds.128.0f 12 /r] AVX,SANDYBRIDGE,SQ
+VMOVLPS xmmreg,mem [r+vm: vex.nds.128.0f 12 /r] AVX,SANDYBRIDGE,SQ
+VMOVLPS mem,xmmreg [mr: vex.128.0f 13 /r] AVX,SANDYBRIDGE,SQ
+VMOVMSKPD reg32,xmmreg [rm: vex.128.66.0f 50 /r] AVX,SANDYBRIDGE,NOLONG
+VMOVMSKPD reg64,xmmreg [rm: vex.128.66.0f 50 /r] AVX,SANDYBRIDGE,LONG
+VMOVMSKPD reg32,ymmreg [rm: vex.256.66.0f 50 /r] AVX,SANDYBRIDGE,NOLONG
+VMOVMSKPD reg64,ymmreg [rm: vex.256.66.0f 50 /r] AVX,SANDYBRIDGE,LONG
+VMOVMSKPS reg32,xmmreg [rm: vex.128.0f 50 /r] AVX,SANDYBRIDGE,NOLONG
+VMOVMSKPS reg64,xmmreg [rm: vex.128.0f 50 /r] AVX,SANDYBRIDGE,LONG
+VMOVMSKPS reg32,ymmreg [rm: vex.256.0f 50 /r] AVX,SANDYBRIDGE,NOLONG
+VMOVMSKPS reg64,ymmreg [rm: vex.256.0f 50 /r] AVX,SANDYBRIDGE,LONG
+VMOVNTDQ mem,xmmreg [mr: vex.128.66.0f e7 /r] AVX,SANDYBRIDGE,SO
+VMOVNTDQA xmmreg,mem [rm: vex.128.66.0f38 2a /r] AVX,SANDYBRIDGE,SO
+VMOVNTPD mem,xmmreg [mr: vex.128.66.0f 2b /r] AVX,SANDYBRIDGE,SO
+VMOVNTPS mem,xmmreg [mr: vex.128.0f 2b /r] AVX,SANDYBRIDGE,SO
+VMOVSD xmmreg,xmmreg,xmmreg [rvm: vex.nds.128.f2.0f 10 /r] AVX,SANDYBRIDGE
+VMOVSD xmmreg,xmmreg [r+vm: vex.nds.128.f2.0f 10 /r] AVX,SANDYBRIDGE
+VMOVSD xmmreg,mem [rm: vex.128.f2.0f 10 /r] AVX,SANDYBRIDGE,SQ
+VMOVSD xmmreg,xmmreg,xmmreg [mvr: vex.nds.128.f2.0f 11 /r] AVX,SANDYBRIDGE
+VMOVSD xmmreg,xmmreg [m+vr: vex.nds.128.f2.0f 11 /r] AVX,SANDYBRIDGE
+VMOVSD mem,xmmreg [mr: vex.128.f2.0f 11 /r] AVX,SANDYBRIDGE,SQ
+VMOVSHDUP xmmreg,xmmrm [rm: vex.128.f3.0f 16 /r] AVX,SANDYBRIDGE,SO
+VMOVSHDUP ymmreg,ymmrm [rm: vex.256.f3.0f 16 /r] AVX,SANDYBRIDGE,SY
+VMOVSLDUP xmmreg,xmmrm [rm: vex.128.f3.0f 12 /r] AVX,SANDYBRIDGE,SO
+VMOVSLDUP ymmreg,ymmrm [rm: vex.256.f3.0f 12 /r] AVX,SANDYBRIDGE,SY
+VMOVSS xmmreg,xmmreg,xmmreg [rvm: vex.nds.128.f3.0f 10 /r] AVX,SANDYBRIDGE
+VMOVSS xmmreg,xmmreg [r+vm: vex.nds.128.f3.0f 10 /r] AVX,SANDYBRIDGE
+VMOVSS xmmreg,mem [rm: vex.128.f3.0f 10 /r] AVX,SANDYBRIDGE,SQ
+VMOVSS xmmreg,xmmreg,xmmreg [mvr: vex.nds.128.f3.0f 11 /r] AVX,SANDYBRIDGE
+VMOVSS xmmreg,xmmreg [m+vr: vex.nds.128.f3.0f 11 /r] AVX,SANDYBRIDGE
+VMOVSS mem,xmmreg [mr: vex.128.f3.0f 11 /r] AVX,SANDYBRIDGE,SQ
+VMOVUPD xmmreg,xmmrm [rm: vex.128.66.0f 10 /r] AVX,SANDYBRIDGE,SO
+VMOVUPD xmmrm,xmmreg [mr: vex.128.66.0f 11 /r] AVX,SANDYBRIDGE,SO
+VMOVUPD ymmreg,ymmrm [rm: vex.256.66.0f 10 /r] AVX,SANDYBRIDGE,SY
+VMOVUPD ymmrm,ymmreg [mr: vex.256.66.0f 11 /r] AVX,SANDYBRIDGE,SY
+VMOVUPS xmmreg,xmmrm [rm: vex.128.0f 10 /r] AVX,SANDYBRIDGE,SO
+VMOVUPS xmmrm,xmmreg [mr: vex.128.0f 11 /r] AVX,SANDYBRIDGE,SO
+VMOVUPS ymmreg,ymmrm [rm: vex.256.0f 10 /r] AVX,SANDYBRIDGE,SY
+VMOVUPS ymmrm,ymmreg [mr: vex.256.0f 11 /r] AVX,SANDYBRIDGE,SY
+VMPSADBW xmmreg,xmmreg,xmmrm,imm [rvmi: vex.nds.128.66.0f3a 42 /r ib] AVX,SANDYBRIDGE,SO
+VMPSADBW xmmreg,xmmrm,imm [r+vmi: vex.nds.128.66.0f3a 42 /r ib] AVX,SANDYBRIDGE,SO
+VMULPD xmmreg,xmmreg,xmmrm [rvm: vex.nds.128.66.0f 59 /r] AVX,SANDYBRIDGE,SO
+VMULPD xmmreg,xmmrm [r+vm: vex.nds.128.66.0f 59 /r] AVX,SANDYBRIDGE,SO
+VMULPD ymmreg,ymmreg,ymmrm [rvm: vex.nds.256.66.0f 59 /r] AVX,SANDYBRIDGE,SY
+VMULPD ymmreg,ymmrm [r+vm: vex.nds.256.66.0f 59 /r] AVX,SANDYBRIDGE,SY
+VMULPS xmmreg,xmmreg,xmmrm [rvm: vex.nds.128.0f 59 /r] AVX,SANDYBRIDGE,SO
+VMULPS xmmreg,xmmrm [r+vm: vex.nds.128.0f 59 /r] AVX,SANDYBRIDGE,SO
+VMULPS ymmreg,ymmreg,ymmrm [rvm: vex.nds.256.0f 59 /r] AVX,SANDYBRIDGE,SY
+VMULPS ymmreg,ymmrm [r+vm: vex.nds.256.0f 59 /r] AVX,SANDYBRIDGE,SY
+VMULSD xmmreg,xmmreg,xmmrm [rvm: vex.nds.128.f2.0f 59 /r] AVX,SANDYBRIDGE,SQ
+VMULSD xmmreg,xmmrm [r+vm: vex.nds.128.f2.0f 59 /r] AVX,SANDYBRIDGE,SQ
+VMULSS xmmreg,xmmreg,xmmrm [rvm: vex.nds.128.f3.0f 59 /r] AVX,SANDYBRIDGE,SD
+VMULSS xmmreg,xmmrm [r+vm: vex.nds.128.f3.0f 59 /r] AVX,SANDYBRIDGE,SD
+
VPERMILTD2PS xmmreg,xmmreg,xmmrm,xmmreg [rvms: vex.nds.128.66.0f3a.w0 48 /r /is4=0] AVX,SANDYBRIDGE,SO
VPERMILTD2PS xmmreg,xmmreg,xmmreg,xmmrm [rvsm: vex.nds.128.66.0f3a.w1 48 /r /is4=0] AVX,SANDYBRIDGE,SO