diff --git a/decode-test.c b/decode-test.c index 166be77..0d90f58 100644 --- a/decode-test.c +++ b/decode-test.c @@ -1449,6 +1449,9 @@ main(int argc, char** argv) TEST("\xc5\xf9\x6e\xc8", "vmovd xmm1, eax"); TEST64("\xc4\xe1\xf9\x6e\xc8", "vmovq xmm1, rax"); TEST32("\xc4\xe1\xf9\x6e\xc8", "vmovd xmm1, eax"); + TEST("\xc5\xf9\x7e\xc8", "vmovd eax, xmm1"); + TEST64("\xc4\xe1\xf9\x7e\xc8", "vmovq rax, xmm1"); + TEST32("\xc4\xe1\xf9\x7e\xc8", "vmovd eax, xmm1"); TEST("\xc5\xf2\x10\xc2", "vmovss xmm0, xmm1, xmm2"); TEST("\xc5\xf6\x10\xc2", "vmovss xmm0, xmm1, xmm2"); // VEX.L=1 TEST("\xc5\xfa\x10\x04\x25\x34\x12\x00\x00", "vmovss xmm0, dword ptr [0x1234]"); diff --git a/instrs.txt b/instrs.txt index 68a9417..7ec0530 100644 --- a/instrs.txt +++ b/instrs.txt @@ -1026,7 +1026,7 @@ VEX.F2.0f7c RVM Vx Hx Wx - VHADDPS F=AVX VEX.66.0f7d RVM Vx Hx Wx - VHSUBPD F=AVX VEX.F2.0f7d RVM Vx Hx Wx - VHSUBPS F=AVX VEX.66.W0.L0.0f7e MR Ey Vy - - VMOVD_X2G F=AVX ENC_NOSZ -VEX.66.W1.L0.0f7e MR Ey Vy - - VMOVQ_X2G I64 F=AVX ENC_NOSZ +VEX.66.W1.L0.0f7e MR Ey Vy - - VMOVD_X2G I64 F=AVX ENC_NOSZ VEX.66.W1.L0.0f7e MR Ey Vy - - VMOVQ_X2G O64 F=AVX ENC_NOSZ VEX.F3.L0.0f7e RM Vq Wq - - VMOVQ F=AVX ENC_NOSZ VEX.66.0f7f MR Wx Vx - - VMOVDQA F=AVX