From 50cef996e68f14372be1ba8394e93cc37dd9b3e1 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Wed, 20 Apr 2011 00:30:43 +0000 Subject: [PATCH] Added the "inc" instruction --- src/arch/i386.ins | 19 +++++++++++++++++++ test/i386.S | 17 +++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/arch/i386.ins b/src/arch/i386.ins index 9d56118..b799ab6 100644 --- a/src/arch/i386.ins +++ b/src/arch/i386.ins @@ -589,6 +589,25 @@ { "fnop", 0xd9d0, OP2F, AOT_NONE, AOT_NONE, AOT_NONE }, /* FWAIT 0x9b 1 */ { "fwait", 0x9b, OP1F, AOT_NONE, AOT_NONE, AOT_NONE }, +/* INC 0x40 +rd 1 */ +{ "inc", 0x40, OP1F, OP_AX, AOT_NONE, AOT_NONE }, +{ "inc", 0x41, OP1F, OP_CX, AOT_NONE, AOT_NONE }, +{ "inc", 0x42, OP1F, OP_DX, AOT_NONE, AOT_NONE }, +{ "inc", 0x43, OP1F, OP_BX, AOT_NONE, AOT_NONE }, +{ "inc", 0x44, OP1F, OP_SP, AOT_NONE, AOT_NONE }, +{ "inc", 0x45, OP1F, OP_BP, AOT_NONE, AOT_NONE }, +{ "inc", 0x46, OP1F, OP_SI, AOT_NONE, AOT_NONE }, +{ "inc", 0x47, OP1F, OP_DI, AOT_NONE, AOT_NONE }, +/* INC 0xfe /0 1 r/m8 */ +{ "incb", 0xfe, OP1F, OP_RM8_D0+0,AOT_NONE, AOT_NONE }, +{ "incb", 0xfe, OP1F, OP_RM8_D8+0,AOT_NONE, AOT_NONE }, +{ "incb", 0xfe, OP1F, OP_RM8_DW+0,AOT_NONE, AOT_NONE }, +{ "inc", 0xfe, OP1F, OP_RM8_R8+0,AOT_NONE, AOT_NONE }, +/* INC 0xff /0 1 r/mW */ +{ "inc", 0xff, OP1F, OP_RMW_D0+0,AOT_NONE, AOT_NONE }, +{ "inc", 0xff, OP1F, OP_RMW_D8+0,AOT_NONE, AOT_NONE }, +{ "inc", 0xff, OP1F, OP_RMW_DW+0,AOT_NONE, AOT_NONE }, +{ "inc", 0xff, OP1F, OP_RMW_RW+0,AOT_NONE, AOT_NONE }, /* INSB 0x6c 1 */ { "insb", 0x6c, OP1F, AOT_NONE, AOT_NONE, AOT_NONE }, #ifdef ARCH_i386_real diff --git a/test/i386.S b/test/i386.S index dcf51d0..552b236 100644 --- a/test/i386.S +++ b/test/i386.S @@ -240,6 +240,23 @@ fnclex fninit fwait + /* INC */ + inc %eax /* 40 */ + inc %ecx /* 41 */ + inc %edx /* 42 */ + inc %ebx /* 43 */ + inc %esp /* 44 */ + inc %ebp /* 45 */ + inc %esi /* 46 */ + inc %edi /* 47 */ + incb [%eax] /* fe 00 */ + incb [%ecx] /* fe 01 */ + incb [%edx] /* fe 02 */ + incb [%ebx] /* fe 03 */ + inc [%eax] /* ff 00 */ + inc [%ecx] /* ff 01 */ + inc [%edx] /* ff 02 */ + inc [%ebx] /* ff 03 */ insb insd int $0x3 /* cd 03 */