instrs: Fix VMOVSS/VMOVSD with memory operand

This commit is contained in:
Alexis Engelke
2021-01-23 16:44:16 +01:00
parent e8f440c713
commit f7567c89bd
2 changed files with 6 additions and 2 deletions

View File

@@ -881,8 +881,10 @@ VEX.66.L0.0f3adf RMI XMM XMM IMM8 - VAESKEYGENASSIST
# AVX
VEX.NP.0f10 RM XMM XMM - - VMOVUPS
VEX.66.0f10 RM XMM XMM - - VMOVUPD
VEX.F3.LIG.0f10 RVM XMM128 XMM128 XMM32 - VMOVSS
VEX.F2.LIG.0f10 RVM XMM128 XMM128 XMM64 - VMOVSD
VEX.F3.LIG.0f10/m RM XMM128 XMM32 - - VMOVSS
VEX.F3.LIG.0f10/r RVM XMM128 XMM128 XMM32 - VMOVSS
VEX.F2.LIG.0f10/m RM XMM128 XMM64 - - VMOVSD
VEX.F2.LIG.0f10/r RVM XMM128 XMM128 XMM64 - VMOVSD
VEX.NP.0f11 MR XMM XMM - - VMOVUPS
VEX.66.0f11 MR XMM XMM - - VMOVUPD
VEX.F3.LIG.0f11/m MR XMM32 XMM32 - - VMOVSS

View File

@@ -413,6 +413,8 @@ main(int argc, char** argv)
TEST32("\xc4\xe1\xf9\x6e\xc8", "vmovd xmm1, eax");
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]");
TEST("\xc5\xf2\x10\x04\x25\x34\x12\x00\x00", "UD"); // VEX.vvvv != 0
TEST("\xc5\xfa\x11\x04\x25\x34\x12\x00\x00", "vmovss dword ptr [0x1234], xmm0");
TEST("\xc5\xf2\x11\x04\x25\x34\x12\x00\x00", "UD"); // VEX.vvvv != 0
TEST("\xc5\xf2\x2a\xc0", "vcvtsi2ss xmm0, xmm1, eax");