From 9024067e9d065e9df777d3c87df409f1293c474d Mon Sep 17 00:00:00 2001 From: Silent Date: Fri, 30 Oct 2020 22:38:26 +0100 Subject: Implement additional CMP, DEC and FLD instructions Fixes broken trampolines encountered in Cxbx-Reloaded --- subhook_x86.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/subhook_x86.c b/subhook_x86.c index 95c1f24..2560c28 100644 --- a/subhook_x86.c +++ b/subhook_x86.c @@ -140,8 +140,13 @@ SUBHOOK_EXPORT int SUBHOOK_API subhook_disasm(void *src, int *reloc_op_offset) { /* CALL rel32 */ {0xE8, 0, IMM32 | RELOC}, /* CALL r/m32 */ {0xFF, 2, MODRM | REG_OPCODE}, /* CMP r/m16/32, imm8*/ {0x83, 7, MODRM | REG_OPCODE | IMM8 }, + /* CMP r/m16/32, r16/32 */ {0x39, 0, MODRM}, /* DEC r/m16/32 */ {0xFF, 1, MODRM | REG_OPCODE }, + /* DEC r16/32 */ {0x48, 0, PLUS_R}, /* ENTER imm16, imm8 */ {0xC8, 0, IMM16 | IMM8}, + /* FLD m32fp */ {0xD9, 0, MODRM | REG_OPCODE}, + /* FLD m64fp */ {0xDD, 0, MODRM | REG_OPCODE}, + /* FLD m80fp */ {0xDB, 5, MODRM | REG_OPCODE}, /* INT 3 */ {0xCC, 0, 0}, /* JMP rel32 */ {0xE9, 0, IMM32 | RELOC}, /* JMP r/m32 */ {0xFF, 4, MODRM | REG_OPCODE}, -- cgit v1.1