mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-29 04:01:27 +01:00
Merge pull request #377 from FEX-Emu/skmp/fix-movd
x86tables: fix mmx movd src/dst sizes for gprs
This commit is contained in:
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}},
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in new issue
Block a user