Decoder: fix illegal LEA encoding

This commit is contained in:
Justin Becker committed 2026-07-27 15:48:35 -07:00
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}},
+15
View File
@@ -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",