diff --git a/src/arch/i386.ins b/src/arch/i386.ins index 5723736..37ad5d2 100644 --- a/src/arch/i386.ins +++ b/src/arch/i386.ins @@ -238,5 +238,15 @@ { "btr", 0x0fba, OP2F, OP_RMW_D8+6,OP_S8, AOT_NONE }, { "btr", 0x0fba, OP2F, OP_RMW_DW+6,OP_S8, AOT_NONE }, { "btr", 0x0fba, OP2F, OP_RMW_RW+6,OP_S8, AOT_NONE }, +/* BTS 0x0fab 2 r/mW rW */ +{ "bts", 0x0fab, OP2F, OP_RMW_D0_R,OP_RW, AOT_NONE }, +{ "bts", 0x0fab, OP2F, OP_RMW_D8_R,OP_RW, AOT_NONE }, +{ "bts", 0x0fab, OP2F, OP_RMW_DW_R,OP_RW, AOT_NONE }, +{ "bts", 0x0fab, OP2F, OP_RMW_RW_R,OP_RW, AOT_NONE }, +/* BTS 0x0fba /5 ib 2 r/mW imm8 */ +{ "bts", 0x0fba, OP2F, OP_RMW_D0+5,OP_S8, AOT_NONE }, +{ "bts", 0x0fba, OP2F, OP_RMW_D8+5,OP_S8, AOT_NONE }, +{ "bts", 0x0fba, OP2F, OP_RMW_DW+5,OP_S8, AOT_NONE }, +{ "bts", 0x0fba, OP2F, OP_RMW_RW+5,OP_S8, AOT_NONE }, /* NOP */ { "nop", 0x90, OP1F, AOT_NONE, AOT_NONE, AOT_NONE }, diff --git a/test/i386.S b/test/i386.S index c131de9..0bf5f5f 100644 --- a/test/i386.S +++ b/test/i386.S @@ -69,5 +69,10 @@ btr [%eax], %ecx /* 0f b3 08 */ btr %eax, $0x42 /* 0f ba f0 42 */ btr [%eax], $0x42 /* 0f ba 30 42 */ + /* BTS */ + bts %eax, %ecx /* 0f ab c8 */ + bts [%eax], %ecx /* 0f ab 08 */ + bts %eax, $0x42 /* 0f ba e8 42 */ + bts [%eax], $0x42 /* 0f ba 28 42 */ /* NOP */ nop