Merge pull request #377 from FEX-Emu/skmp/fix-movd

x86tables: fix mmx movd src/dst sizes for gprs
This commit is contained in:
Ryan Houdek authored and GitHub committed 2020-09-15 10:00:14 -07:00
commit a6addcee5e
3 files changed
+25 -4

No files matched your search

@@ -105,7 +105,7 @@ void InitializeSecondaryTables() {
{0x6A, 1, X86InstInfo{"PUNPCKHDQ", TYPE_INST, GenFlagsSameSize(SIZE_64BIT) | FLAGS_MODRM | FLAGS_XMM_FLAGS | FLAGS_SF_MMX, 0, nullptr}},
{0x6B, 1, X86InstInfo{"PACKSSDW", TYPE_INST, GenFlagsSameSize(SIZE_64BIT) | FLAGS_MODRM | FLAGS_XMM_FLAGS | FLAGS_SF_MMX, 0, nullptr}},
{0x6C, 2, X86InstInfo{"", TYPE_INVALID, FLAGS_NONE, 0, nullptr}},
{0x6E, 1, X86InstInfo{"MOVD", TYPE_INST, GenFlagsSameSize(SIZE_64BIT) | FLAGS_MODRM | FLAGS_SF_SRC_GPR | FLAGS_XMM_FLAGS | FLAGS_SF_MMX, 0, nullptr}},
{0x6E, 1, X86InstInfo{"MOVD", TYPE_INST, GenFlagsDstSize(SIZE_64BIT) | FLAGS_MODRM | FLAGS_SF_SRC_GPR | FLAGS_XMM_FLAGS | FLAGS_SF_MMX, 0, nullptr}},
{0x6F, 1, X86InstInfo{"MOVQ", TYPE_INST, GenFlagsSameSize(SIZE_64BIT) | FLAGS_MODRM | FLAGS_XMM_FLAGS | FLAGS_SF_MMX, 0, nullptr}},
{0x70, 1, X86InstInfo{"PSHUFW", TYPE_INST, GenFlagsSameSize(SIZE_64BIT) | FLAGS_MODRM | FLAGS_XMM_FLAGS | FLAGS_SF_MMX, 1, nullptr}},
@@ -117,7 +117,7 @@ void InitializeSecondaryTables() {
{0x76, 1, X86InstInfo{"PCMPEQD", TYPE_INST, GenFlagsSameSize(SIZE_64BIT) | FLAGS_MODRM | FLAGS_XMM_FLAGS | FLAGS_SF_MMX, 0, nullptr}},
{0x77, 1, X86InstInfo{"EMMS", TYPE_INST, FLAGS_NONE, 0, nullptr}},
{0x78, 6, X86InstInfo{"", TYPE_INVALID, FLAGS_NONE, 0, nullptr}},
{0x7E, 1, X86InstInfo{"MOVD", TYPE_INST, GenFlagsSameSize(SIZE_64BIT) | FLAGS_MODRM | FLAGS_SF_MOD_DST | FLAGS_SF_DST_GPR | FLAGS_XMM_FLAGS | FLAGS_SF_MMX, 0, nullptr}},
{0x7E, 1, X86InstInfo{"MOVD", TYPE_INST, GenFlagsSrcSize(SIZE_64BIT) | FLAGS_MODRM | FLAGS_SF_MOD_DST | FLAGS_SF_DST_GPR | FLAGS_XMM_FLAGS | FLAGS_SF_MMX, 0, nullptr}},
{0x7F, 1, X86InstInfo{"MOVQ", TYPE_INST, GenFlagsSameSize(SIZE_64BIT) | FLAGS_MODRM | FLAGS_SF_MOD_DST | FLAGS_XMM_FLAGS | FLAGS_SF_MMX, 0, nullptr}},
{0x80, 1, X86InstInfo{"JO", TYPE_INST, GenFlagsSameSize(SIZE_64BIT) | FLAGS_SETS_RIP | FLAGS_SRC_SEXT | FLAGS_DISPLACE_SIZE_DIV_2 | FLAGS_NO_OVERLAY, 4, nullptr}},
+8 -2
View File
@@ -2,7 +2,9 @@
{
"RegData": {
"MM0": ["0x0000000045464748", "0x0"],
"MM1": ["0x5152535455565758", "0x0"]
"MM1": ["0x5152535455565758", "0x0"],
"MM2": ["0x0000000045464748", "0x0"],
"MM3": ["0x5152535455565758", "0x0"]
},
"MemoryRegions": {
"0x100000000": "4096"
@@ -26,9 +28,13 @@ mov rax, 0x0
mov [rdx + 8 * 4], rax
mov [rdx + 8 * 5], rax
mov eax, dword [rdx + 8 * 0]
mov rax, qword [rdx + 8 * 0]
mov rbx, qword [rdx + 8 * 1]
movd mm0, eax
movq mm1, rbx
movd mm2, dword [rdx + 8 * 0]
movq mm3, qword [rdx + 8 * 1]
hlt
+15
View File
@@ -0,0 +1,15 @@
%ifdef CONFIG
{
"RegData": {
"MM0": ["0x0000000045464748", "0x0"],
"MM1": ["0x5152535455565758", "0x0"]
}
}
%endif
mov rax, 0x4142434445464748
mov rbx, 0x5152535455565758
movd mm0, eax
movq mm1, rbx
hlt