diff --git a/src/arch/i386.ins b/src/arch/i386.ins index d4878c2..ff673d5 100644 --- a/src/arch/i386.ins +++ b/src/arch/i386.ins @@ -586,6 +586,16 @@ { "fnop", 0xd9d0, OP2F, AOT_NONE, AOT_NONE, AOT_NONE }, /* FWAIT 0x9b 1 */ { "fwait", 0x9b, OP1F, AOT_NONE, AOT_NONE, AOT_NONE }, +/* MUL 0xf6 /4 1 r/m8 */ +{ "mulb", 0xf6, OP1F, OP_RM8_D0+4,AOT_NONE, AOT_NONE }, +{ "mulb", 0xf6, OP1F, OP_RM8_D8+4,AOT_NONE, AOT_NONE }, +{ "mulb", 0xf6, OP1F, OP_RM8_DW+4,AOT_NONE, AOT_NONE }, +{ "mul", 0xf6, OP1F, OP_RM8_R8+4,AOT_NONE, AOT_NONE }, +/* MUL 0xf7 /4 1 r/mW */ +{ "mul", 0xf7, OP1F, OP_RMW_D0+4,AOT_NONE, AOT_NONE }, +{ "mul", 0xf7, OP1F, OP_RMW_D8+4,AOT_NONE, AOT_NONE }, +{ "mul", 0xf7, OP1F, OP_RMW_DW+4,AOT_NONE, AOT_NONE }, +{ "mul", 0xf7, OP1F, OP_RMW_RW+4,AOT_NONE, AOT_NONE }, /* NEG 0xf6 /3 1 r/m8 */ { "negb", 0xf6, OP1F, OP_RM8_D0+3,AOT_NONE, AOT_NONE }, { "negb", 0xf6, OP1F, OP_RM8_D8+3,AOT_NONE, AOT_NONE }, diff --git a/test/i386.S b/test/i386.S index 53d76ad..b41f78f 100644 --- a/test/i386.S +++ b/test/i386.S @@ -241,6 +241,14 @@ fninit fwait nop /* 90 */ + mulb [%eax] + mulb [%eax + $0x42] + mulb [%eax + $0x11223344] + mul %ch + mul [%eax] + mul [%eax + $0x42] + mul [%eax + $0x11223344] + mul %eax negb [%eax] negb [%eax + $0x42] negb [%eax + $0x11223344]