instrs: Various small fixes

This commit is contained in:
Alexis Engelke
2022-12-26 21:59:44 +01:00
parent 94fc7a3671
commit 1aec30cd0f
2 changed files with 31 additions and 24 deletions

View File

@@ -636,6 +636,13 @@ main(int argc, char** argv)
TEST("\xc5\xf9\xf7\xc1", "vmaskmovdqu xmm0, xmm1");
TEST("\xc5\xf9\xf7\x00", "UD"); // must have memory operand
TEST("\xc5\xfd\xf7\xc1", "UD"); // VEX.L != 0
TEST64("\xc5\x07\xd0\x02", "vaddsubps ymm8, ymm15, ymmword ptr [rdx]");
TEST("\xc4\xc3\x6d\x09\xd9\x85", "UD"); // VEX.vvvv != 0
TEST32("\xc4\xc3\x7d\x09\xd9\x85", "vroundpd ymm3, ymm1, 0x85");
TEST64("\xc4\xc3\x7d\x09\xd9\x85", "vroundpd ymm3, ymm9, 0x85");
TEST("\xc5\xff\xf0\xd1", "UD"); // must have memory operand
TEST32("\xc5\xff\xf0\x11", "vlddqu ymm2, ymmword ptr [ecx]");
TEST64("\xc5\xff\xf0\x11", "vlddqu ymm2, ymmword ptr [rcx]");
TEST("\xc5\xf1\xe1\xc2", "vpsraw xmm0, xmm1, xmm2");
TEST32("\xc5\xf1\xe1\x00", "vpsraw xmm0, xmm1, xmmword ptr [eax]");

View File

@@ -484,12 +484,12 @@ NFx.0f38f1/m MR Mv Gv - - MOVBE F=MOVBE
F2.0f38f1 RM Gd Ev - - CRC32 U66 F=SSE42
#
# MMX
NP.0f2a RM Vps Qq - - MMX_CVTPI2PS F=SSE2
66.0f2a RM Vpd Qq - - MMX_CVTPI2PD F=SSE2
NP.0f2c RM Pq Wps - - MMX_CVTTPS2PI F=SSE2
66.0f2c RM Pq Wpd - - MMX_CVTTPD2PI F=SSE2
NP.0f2d RM Pq Wps - - MMX_CVTPS2PI F=SSE2
66.0f2d RM Pq Wpd - - MMX_CVTPD2PI F=SSE2
NP.0f2a RM Vq Qq - - MMX_CVTPI2PS F=SSE2
66.0f2a RM Vdq Qq - - MMX_CVTPI2PD F=SSE2
NP.0f2c RM Pq Wq - - MMX_CVTTPS2PI F=SSE2
66.0f2c RM Pq Wdq - - MMX_CVTTPD2PI F=SSE2
NP.0f2d RM Pq Wq - - MMX_CVTPS2PI F=SSE2
66.0f2d RM Pq Wdq - - MMX_CVTPD2PI F=SSE2
NP.0f60 RM Pq Qd - - MMX_PUNPCKLBW F=MMX
NP.0f61 RM Pq Qd - - MMX_PUNPCKLWD F=MMX
NP.0f62 RM Pq Qd - - MMX_PUNPCKLDQ F=MMX
@@ -498,10 +498,10 @@ NP.0f64 RM Pq Qq - - MMX_PCMPGTB F=MMX
NP.0f65 RM Pq Qq - - MMX_PCMPGTW F=MMX
NP.0f66 RM Pq Qq - - MMX_PCMPGTD F=MMX
NP.0f67 RM Pq Qq - - MMX_PACKUSWB F=MMX
NP.0f68 RM Pq Qd - - MMX_PUNPCKHBW F=MMX
NP.0f69 RM Pq Qd - - MMX_PUNPCKHWD F=MMX
NP.0f6a RM Pq Qd - - MMX_PUNPCKHDQ F=MMX
NP.0f6b RM Pq Qd - - MMX_PACKSSDW F=MMX
NP.0f68 RM Pq Qq - - MMX_PUNPCKHBW F=MMX
NP.0f69 RM Pq Qq - - MMX_PUNPCKHWD F=MMX
NP.0f6a RM Pq Qq - - MMX_PUNPCKHDQ F=MMX
NP.0f6b RM Pq Qq - - MMX_PACKSSDW F=MMX
NP.W0.0f6e RM Pq Ey - - MMX_MOVD_G2M F=MMX ENC_NOSZ
NP.W1.0f6e RM Pq Ey - - MMX_MOVQ_G2M F=MMX ENC_NOSZ
NP.0f6f RM Pq Qq - - MMX_MOVQ F=MMX
@@ -521,7 +521,7 @@ NP.0f77 NP - - - - MMX_EMMS F=MMX
NP.W0.0f7e MR Ey Py - - MMX_MOVD_M2G F=MMX ENC_NOSZ
NP.W1.0f7e MR Ey Py - - MMX_MOVQ_M2G F=MMX ENC_NOSZ
NP.0f7f MR Qq Pq - - MMX_MOVQ F=MMX
# TODO: Ey operand is actually Ry/Mw
# TODO: Ey operand is actually Ew
NP.0fc4 RMI Pq Ey Ib - MMX_PINSRW F=SSE ENC_NOSZ
NP.0fc5/r RMI Gy Nq Ib - MMX_PEXTRW D64 F=SSE
NP.0fd1 RM Pq Qq - - MMX_PSRLW F=MMX
@@ -739,7 +739,7 @@ NP.0fc2 RMI Vps Wps Ib - SSE_CMPPS F=SSE
66.0fc2 RMI Vpd Wpd Ib - SSE_CMPPD F=SSE2
F3.0fc2 RMI Vss Wss Ib - SSE_CMPSS F=SSE
F2.0fc2 RMI Vsd Wsd Ib - SSE_CMPSD F=SSE2
66.0fc4 RMI Vdq Ey Ib - SSE_PINSRW F=SSE2 ENC_NOSZ
66.0fc4 RMI Vx Ew Ib - SSE_PINSRW F=SSE2 ENC_NOSZ
66.0fc5/r RMI Gy Udq Ib - SSE_PEXTRW D64 F=SSE2 ENC_NOSZ
NP.0fc6 RMI Vps Wps Ib - SSE_SHUFPS F=SSE
66.0fc6 RMI Vpd Wpd Ib - SSE_SHUFPD F=SSE2
@@ -1045,8 +1045,8 @@ VEX.66.WIG.L0.0fc4 RVMI Vx Hx Ew Ib VPINSRW F=AVX ENC_NOSZ
VEX.66.WIG.L0.0fc5/r RMI Gd Ux Ib - VPEXTRW F=AVX ENC_NOSZ
VEX.NP.0fc6 RVMI Vx Hx Wx Ib VSHUFPS F=AVX
VEX.66.0fc6 RVMI Vx Hx Wx Ib VSHUFPD F=AVX
VEX.NP.0fd0 RVM Vx Hx Wx - VADDSUBPS F=AVX
VEX.66.0fd0 RVM Vx Hx Wx - VADDSUBPD F=AVX
VEX.F2.0fd0 RVM Vx Hx Wx - VADDSUBPS F=AVX
VEX.66.0fd1 RVM Vx Hx Wdq - VPSRLW F=AVX
VEX.66.0fd2 RVM Vx Hx Wdq - VPSRLD F=AVX
VEX.66.0fd3 RVM Vx Hx Wdq - VPSRLQ F=AVX
@@ -1080,7 +1080,7 @@ VEX.66.0fea RVM Vx Hx Wx - VPMINSW F=AVX
VEX.66.0fed RVM Vx Hx Wx - VPADDSW F=AVX
VEX.66.0fee RVM Vx Hx Wx - VPMAXSW F=AVX
VEX.66.0fef RVM Vx Hx Wx - VPXOR F=AVX
VEX.F2.0ff0 RM Vx Wx - - VLDDQU F=AVX
VEX.F2.0ff0/m RM Vx Wx - - VLDDQU F=AVX
VEX.66.0ff1 RVM Vx Hx Wdq - VPSLLW F=AVX
VEX.66.0ff2 RVM Vx Hx Wdq - VPSLLD F=AVX
VEX.66.0ff3 RVM Vx Hx Wdq - VPSLLQ F=AVX
@@ -1130,10 +1130,10 @@ VEX.66.0f3828 RVM Vx Hx Wx - VPMULDQ F=AVX
VEX.66.0f3829 RVM Vx Hx Wx - VPCMPEQQ F=AVX
VEX.66.0f382a/m RM Vx Mx - - VMOVNTDQA F=AVX
VEX.66.0f382b RVM Vx Hx Wx - VPACKUSDW F=AVX
VEX.66.W0.0f382c RVM Vx Hx Wx - VMASKMOVPS F=AVX
VEX.66.W0.0f382d RVM Vx Hx Wx - VMASKMOVPD F=AVX
VEX.66.W0.0f382e MVR Wx Hx Vx - VMASKMOVPS F=AVX
VEX.66.W0.0f382f MVR Wx Hx Vx - VMASKMOVPD F=AVX
VEX.66.W0.0f382c/m RVM Vx Hx Mx - VMASKMOVPS F=AVX
VEX.66.W0.0f382d/m RVM Vx Hx Mx - VMASKMOVPD F=AVX
VEX.66.W0.0f382e/m MVR Mx Hx Vx - VMASKMOVPS F=AVX
VEX.66.W0.0f382f/m MVR Mx Hx Vx - VMASKMOVPD F=AVX
VEX.66.0f3830 RM Vx Wh - - VPMOVZXBW F=AVX
VEX.66.0f3831 RM Vx Wf - - VPMOVZXBD F=AVX
VEX.66.0f3832 RM Vx We - - VPMOVZXBQ F=AVX
@@ -1162,10 +1162,10 @@ VEX.66.W0.0f3859 RM Vx Wq - - VPBROADCASTQ F=AVX2
VEX.66.W0.L1.0f385a/m RM Vx Mdq - - VBROADCASTI128 F=AVX2 ENC_NOSZ
VEX.66.W0.0f3878 RM Vx Wb - - VPBROADCASTB F=AVX2
VEX.66.W0.0f3879 RM Vx Ww - - VPBROADCASTW F=AVX2
VEX.66.W0.0f388c RVM Vx Hx Wx - VPMASKMOVD F=AVX2
VEX.66.W1.0f388c RVM Vx Hx Wx - VPMASKMOVQ F=AVX2
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.0f388c/m RVM Vx Hx Mx - VPMASKMOVD F=AVX2
VEX.66.W1.0f388c/m RVM Vx Hx Mx - VPMASKMOVQ F=AVX2
VEX.66.W0.0f388e/m MVR Mx Hx Vx - VPMASKMOVD F=AVX2
VEX.66.W1.0f388e/m MVR Mx 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.0f3891/m RMV Vh Md Hh - VPGATHERQD VSIB F=AVX2
@@ -1240,8 +1240,8 @@ VEX.66.W0.0f3a02 RVMI Vx Hx Wx Ib VPBLENDD F=AVX2
VEX.66.W0.0f3a04 RMI Vx Wx Ib - VPERMILPS F=AVX
VEX.66.W0.0f3a05 RMI Vx Wx Ib - VPERMILPD F=AVX
VEX.66.W0.L1.0f3a06 RVMI Vx Hx Wx Ib VPERM2F128 F=AVX
VEX.66.0f3a08 RVMI Vps Hps Wps Ib VROUNDPS F=AVX
VEX.66.0f3a09 RVMI Vpd Hpd Wpd Ib VROUNDPD F=AVX
VEX.66.0f3a08 RMI Vps Wps Ib - VROUNDPS F=AVX
VEX.66.0f3a09 RMI Vpd Wpd Ib - VROUNDPD F=AVX
# TODO: Vx/Hx is actually Vdq/Hdq
VEX.66.LIG.0f3a0a RVMI Vx Hx Wss Ib VROUNDSS F=AVX
VEX.66.LIG.0f3a0b RVMI Vx Hx Wsd Ib VROUNDSD F=AVX