decode: Support half vector size
This is realized by two changes: first, GP and vector operand size are completely separated using one extra bit. If the operand size of an instruction is derived from VEX.L (or EVEX.L'L), then the "opsize" bits indicate how to derive a smaller vector size (half/quarter/eighth).
This commit is contained in:
27
instrs.txt
27
instrs.txt
@@ -964,9 +964,8 @@ VEX.NP.0f59 RVM Vps Hps Wps - VMULPS F=AVX
|
||||
VEX.66.0f59 RVM Vpd Hpd Wpd - VMULPD F=AVX
|
||||
VEX.F3.LIG.0f59 RVM Vdq Hdq Wss - VMULSS F=AVX
|
||||
VEX.F2.LIG.0f59 RVM Vdq Hdq Wsd - VMULSD F=AVX
|
||||
VEX.NP.L0.0f5a RM Vpd Wq - - VCVTPS2PD F=AVX
|
||||
VEX.NP.L1.0f5a RM Vpd Wdq - - VCVTPS2PD F=AVX
|
||||
VEX.66.0f5a RM Vdq Wpd - - VCVTPD2PS F=AVX
|
||||
VEX.NP.0f5a RM Vpd Wh - - VCVTPS2PD F=AVX
|
||||
VEX.66.0f5a RM Vh Wpd - - VCVTPD2PS F=AVX
|
||||
VEX.F3.LIG.0f5a RVM Vdq Hdq Wss - VCVTSS2SD F=AVX
|
||||
VEX.F2.LIG.0f5a RVM Vdq Hdq Wsd - VCVTSD2SS F=AVX
|
||||
VEX.NP.0f5b RM Vps Vx - - VCVTDQ2PS F=AVX
|
||||
@@ -1069,10 +1068,9 @@ VEX.66.0fe2 RVM Vx Hx Wx - VPSRAD F=AVX
|
||||
VEX.66.0fe3 RVM Vx Hx Wx - VPAVGW F=AVX
|
||||
VEX.66.0fe4 RVM Vx Hx Wx - VPMULHUW F=AVX
|
||||
VEX.66.0fe5 RVM Vx Hx Wx - VPMULHW F=AVX
|
||||
VEX.66.0fe6 RM Vdq Wx - - VCVTTPD2DQ F=AVX
|
||||
VEX.F3.L0.0fe6 RM Vx Wq - - VCVTDQ2PD F=AVX
|
||||
VEX.F3.L1.0fe6 RM Vx Wdq - - VCVTDQ2PD F=AVX
|
||||
VEX.F2.0fe6 RM Vdq Wx - - VCVTPD2DQ F=AVX
|
||||
VEX.66.0fe6 RM Vh Wx - - VCVTTPD2DQ F=AVX
|
||||
VEX.F3.0fe6 RM Vx Wh - - VCVTDQ2PD F=AVX
|
||||
VEX.F2.0fe6 RM Vh Wx - - VCVTPD2DQ F=AVX
|
||||
VEX.66.0fe7/m MR Mx Vx - - VMOVNTDQ F=AVX
|
||||
VEX.66.0fe8 RVM Vx Hx Wx - VPSUBSB F=AVX
|
||||
VEX.66.0fe9 RVM Vx Hx Wx - VPSUBSW F=AVX
|
||||
@@ -1113,8 +1111,7 @@ VEX.66.W0.0f380c RVM Vx Hx Wx - VPERMILPS F=AVX
|
||||
VEX.66.W0.0f380d RVM Vx Hx Wx - VPERMILPD F=AVX
|
||||
VEX.66.W0.0f380e RM Vx Wx - - VTESTPS F=AVX
|
||||
VEX.66.W0.0f380f RM Vx Wx - - VTESTPD F=AVX
|
||||
# TODO: Wx is actually half the size
|
||||
VEX.66.W0.0f3813 RM Vx Wx - - VCVTPH2PS F=F16C
|
||||
VEX.66.W0.0f3813 RM Vx Wh - - VCVTPH2PS F=F16C
|
||||
VEX.66.W0.L1.0f3816 RVM Vx Hx Wx - VPERMPS F=AVX2
|
||||
VEX.66.0f3817 RM Vx Wx - - VPTEST F=AVX EFL=0--0m00m
|
||||
VEX.66.W0.0f3818 RM Vx Wd - - VBROADCASTSS F=AVX
|
||||
@@ -1172,13 +1169,11 @@ VEX.66.W0.0f388e MVR Wx Hx Vx - VPMASKMOVD F=AVX2
|
||||
VEX.66.W1.0f388e MVR Wx Hx Vx - VPMASKMOVQ F=AVX2
|
||||
VEX.66.W0.0f3890/m RMV Vx Md Hx - VPGATHERDD VSIB F=AVX2
|
||||
VEX.66.W1.0f3890/m RMV Vx Mq Hx - VPGATHERDQ VSIB F=AVX2
|
||||
VEX.66.W0.L0.0f3891/m RMV Vq Md Hq - VPGATHERQD VSIB F=AVX2
|
||||
VEX.66.W0.L1.0f3891/m RMV Vdq Md Hdq - VPGATHERQD VSIB F=AVX2
|
||||
VEX.66.W0.0f3891/m RMV Vh Md Hh - VPGATHERQD VSIB F=AVX2
|
||||
VEX.66.W1.0f3891/m RMV Vx Mq Hx - VPGATHERQQ VSIB F=AVX2
|
||||
VEX.66.W0.0f3892/m RMV Vx Md Hx - VGATHERDPS VSIB F=AVX2
|
||||
VEX.66.W1.0f3892/m RMV Vx Mq Hx - VGATHERDPD VSIB F=AVX2
|
||||
VEX.66.W0.L0.0f3893/m RMV Vq Md Hq - VGATHERQPS VSIB F=AVX2
|
||||
VEX.66.W0.L1.0f3893/m RMV Vdq Md Hdq - VGATHERQPS VSIB F=AVX2
|
||||
VEX.66.W0.0f3893/m RMV Vh Md Hh - VGATHERQPS VSIB F=AVX2
|
||||
VEX.66.W1.0f3893/m RMV Vx Mq Hx - VGATHERQPD VSIB F=AVX2
|
||||
VEX.66.W0.0f3896 RVM Vx Hx Wx - VFMADDSUB132PS F=FMA
|
||||
VEX.66.W1.0f3896 RVM Vx Hx Wx - VFMADDSUB132PD F=FMA
|
||||
@@ -1265,8 +1260,7 @@ VEX.66.W1.L0.0f3a16 MRI Eq Vx Ib - VPEXTRQ O64 F=AVX ENC_NOSZ
|
||||
VEX.66.L0.0f3a17 MRI Ed Vx Ib - VEXTRACTPS F=AVX ENC_NOSZ
|
||||
VEX.66.W0.L1.0f3a18 RVMI Vx Hx Wdq Ib VINSERTF128 F=AVX ENC_NOSZ
|
||||
VEX.66.W0.L1.0f3a19 MRI Wdq Vx Ib - VEXTRACTF128 F=AVX ENC_NOSZ
|
||||
# TODO: Wx is actually half the size
|
||||
VEX.66.W0.0f3a1d MRI Wx Hx Ib - VCVTPS2PH F=F16C
|
||||
VEX.66.W0.0f3a1d MRI Wh Hx Ib - VCVTPS2PH F=F16C
|
||||
VEX.66.WIG.L0.0f3a20 RVMI Vx Hx Eb Ib VPINSRB F=AVX ENC_NOSZ
|
||||
VEX.66.L0.0f3a21 RVMI Vx Hx Wd Ib VINSERTPS F=AVX ENC_NOSZ
|
||||
VEX.66.W0.L0.0f3a22 RVMI Vdq Hdq Ey Ib VPINSRD F=AVX ENC_NOSZ
|
||||
@@ -1613,8 +1607,7 @@ VEX.F3.W0.0f38b0/m RM Vx Mx - - VCVTNEEBF162PS F=AVX-NE-CONVERT
|
||||
VEX.F2.W0.0f38b0/m RM Vx Mx - - VCVTNEOBF162PS F=AVX-NE-CONVERT
|
||||
VEX.66.W0.0f38b1/m RM Vx Mw - - VBCSTNESH2PS F=AVX-NE-CONVERT
|
||||
VEX.F3.W0.0f38b1/m RM Vx Mw - - VBCSTNEBF162PS F=AVX-NE-CONVERT
|
||||
# TODO: Vdq is actually half the vector size
|
||||
VEX.F3.W0.0f3872 RM Vdq Wps - - VCVTNEPS2BF16 F=AVX-NE-CONVERT
|
||||
VEX.F3.W0.0f3872 RM Vh Wps - - VCVTNEPS2BF16 F=AVX-NE-CONVERT
|
||||
|
||||
# AVX-IFMA
|
||||
VEX.66.W1.0f38b4 RVM Vx Hx Wx - VPMADD52LUQ F=AVX-IFMA
|
||||
|
||||
Reference in New Issue
Block a user