mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-06 14:00:16 +02:00
Decoder: fix illegal LEA encoding
This commit is contained in:
1 parent
21a968b84d
commit
34a87cc94c
2 files changed
+16
-1
No files matched your search
@@ -318,7 +318,7 @@ const std::array<X86InstInfo, MAX_PRIMARY_TABLE_SIZE> BaseOps = []() consteval {
|
||||
{0x8A, 1, X86InstInfo{"MOV", TYPE_INST, GenFlagsSameSize(SIZE_8BIT) | FLAGS_MODRM, 0}},
|
||||
{0x8B, 1, X86InstInfo{"MOV", TYPE_INST, FLAGS_MODRM, 0}},
|
||||
{0x8C, 1, X86InstInfo{"MOV", TYPE_INST, GenFlagsSrcSize(SIZE_16BIT) | FLAGS_MODRM | FLAGS_SF_MOD_DST, 0}},
|
||||
{0x8D, 1, X86InstInfo{"LEA", TYPE_INST, GenFlagsSameSize(SIZE_64BITDEF) | FLAGS_MODRM, 0}},
|
||||
{0x8D, 1, X86InstInfo{"LEA", TYPE_INST, GenFlagsSameSize(SIZE_64BITDEF) | FLAGS_MODRM | FLAGS_SF_MOD_MEM_ONLY, 0}},
|
||||
{0x8E, 1, X86InstInfo{"MOV", TYPE_INST, GenFlagsSameSize(SIZE_16BIT) | FLAGS_MODRM, 0}},
|
||||
{0x8F, 1, X86InstInfo{"POP", TYPE_INST, GenFlagsSameSize(SIZE_64BITDEF) | FLAGS_MODRM | FLAGS_SF_MOD_DST | FLAGS_SF_MOD_ZERO_REG | FLAGS_DEBUG_MEM_ACCESS, 0}},
|
||||
{0x90, 8, X86InstInfo{"XCHG", TYPE_INST, FLAGS_SF_REX_IN_BYTE | FLAGS_SF_SRC_RAX, 0}},
|
||||
|
||||
@@ -2461,6 +2461,21 @@
|
||||
"mov w4, w20"
|
||||
]
|
||||
},
|
||||
"db 0x48, 0x8D, 0xC0": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": [
|
||||
"0x8d",
|
||||
"LEA rax, rax illegal register to register encoding"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x10000",
|
||||
"str x20, [x28, #24]",
|
||||
"mov w0, #0x401",
|
||||
"str x0, [x28, #1496]",
|
||||
"ldr x0, [x28, #2968]",
|
||||
"br x0"
|
||||
]
|
||||
},
|
||||
"mov cs, ax": {
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Skip": "Yes",
|
||||
|
||||
Reference in new issue
Block a user