x86: get rid of redundant X86_INS_LOCK/REP/RENE. issue reported by Pancake

This commit is contained in:
Nguyen Anh Quynh 2014-10-18 05:53:32 +08:00
parent bec9af7f6d
commit 85cfb1839c
2 changed files with 34 additions and 40 deletions

View File

@ -1140,7 +1140,6 @@ static name_map insn_name_maps[] = {
{ X86_INS_LLDT, "lldt" },
{ X86_INS_LMSW, "lmsw" },
{ X86_INS_OR, "or" },
{ X86_INS_LOCK, "lock" },
{ X86_INS_SUB, "sub" },
{ X86_INS_XOR, "xor" },
{ X86_INS_LODSB, "lodsb" },
@ -1413,8 +1412,6 @@ static name_map insn_name_maps[] = {
{ X86_INS_RDSEED, "rdseed" },
{ X86_INS_RDTSC, "rdtsc" },
{ X86_INS_RDTSCP, "rdtscp" },
{ X86_INS_REPNE, "repne" },
{ X86_INS_REP, "rep" },
{ X86_INS_ROL, "rol" },
{ X86_INS_ROR, "ror" },
{ X86_INS_RORX, "rorx" },
@ -8726,7 +8723,7 @@ static insn_map insns[] = { // full x86 instructions
#endif
},
{
X86_LOCK_PREFIX, X86_INS_LOCK,
X86_LOCK_PREFIX, 0,
#ifndef CAPSTONE_DIET
{ 0 }, { 0 }, { 0 }, 0, 0
#endif
@ -15026,97 +15023,97 @@ static insn_map insns[] = { // full x86 instructions
#endif
},
{
X86_REPNE_PREFIX, X86_INS_REPNE,
X86_REPNE_PREFIX, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_ECX, X86_REG_EFLAGS, 0 }, { X86_REG_ECX, 0 }, { 0 }, 0, 0
#endif
},
{
X86_REP_MOVSB_32, X86_INS_REP,
X86_REP_MOVSB_32, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_ECX, X86_REG_EDI, X86_REG_ESI, 0 }, { X86_REG_ECX, X86_REG_EDI, X86_REG_ESI, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_REP_MOVSB_64, X86_INS_REP,
X86_REP_MOVSB_64, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_RCX, X86_REG_RDI, X86_REG_RSI, 0 }, { X86_REG_RCX, X86_REG_RDI, X86_REG_RSI, 0 }, { X86_GRP_MODE64, 0 }, 0, 0
#endif
},
{
X86_REP_MOVSD_32, X86_INS_REP,
X86_REP_MOVSD_32, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_ECX, X86_REG_EDI, X86_REG_ESI, 0 }, { X86_REG_ECX, X86_REG_EDI, X86_REG_ESI, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_REP_MOVSD_64, X86_INS_REP,
X86_REP_MOVSD_64, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_RCX, X86_REG_RDI, X86_REG_RSI, 0 }, { X86_REG_RCX, X86_REG_RDI, X86_REG_RSI, 0 }, { X86_GRP_MODE64, 0 }, 0, 0
#endif
},
{
X86_REP_MOVSQ_64, X86_INS_REP,
X86_REP_MOVSQ_64, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_RCX, X86_REG_RDI, X86_REG_RSI, 0 }, { X86_REG_RCX, X86_REG_RDI, X86_REG_RSI, 0 }, { X86_GRP_MODE64, 0 }, 0, 0
#endif
},
{
X86_REP_MOVSW_32, X86_INS_REP,
X86_REP_MOVSW_32, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_ECX, X86_REG_EDI, X86_REG_ESI, 0 }, { X86_REG_ECX, X86_REG_EDI, X86_REG_ESI, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_REP_MOVSW_64, X86_INS_REP,
X86_REP_MOVSW_64, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_RCX, X86_REG_RDI, X86_REG_RSI, 0 }, { X86_REG_RCX, X86_REG_RDI, X86_REG_RSI, 0 }, { X86_GRP_MODE64, 0 }, 0, 0
#endif
},
{
X86_REP_PREFIX, X86_INS_REP,
X86_REP_PREFIX, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_ECX, X86_REG_EFLAGS, 0 }, { X86_REG_ECX, 0 }, { 0 }, 0, 0
#endif
},
{
X86_REP_STOSB_32, X86_INS_REP,
X86_REP_STOSB_32, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_AL, X86_REG_ECX, X86_REG_EDI, 0 }, { X86_REG_ECX, X86_REG_EDI, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_REP_STOSB_64, X86_INS_REP,
X86_REP_STOSB_64, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_AL, X86_REG_RCX, X86_REG_RDI, 0 }, { X86_REG_RCX, X86_REG_RDI, 0 }, { X86_GRP_MODE64, 0 }, 0, 0
#endif
},
{
X86_REP_STOSD_32, X86_INS_REP,
X86_REP_STOSD_32, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_EAX, X86_REG_ECX, X86_REG_EDI, 0 }, { X86_REG_ECX, X86_REG_EDI, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_REP_STOSD_64, X86_INS_REP,
X86_REP_STOSD_64, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_RAX, X86_REG_RCX, X86_REG_RDI, 0 }, { X86_REG_RCX, X86_REG_RDI, 0 }, { X86_GRP_MODE64, 0 }, 0, 0
#endif
},
{
X86_REP_STOSQ_64, X86_INS_REP,
X86_REP_STOSQ_64, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_RAX, X86_REG_RCX, X86_REG_RDI, 0 }, { X86_REG_RCX, X86_REG_RDI, 0 }, { X86_GRP_MODE64, 0 }, 0, 0
#endif
},
{
X86_REP_STOSW_32, X86_INS_REP,
X86_REP_STOSW_32, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_AX, X86_REG_ECX, X86_REG_EDI, 0 }, { X86_REG_ECX, X86_REG_EDI, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_REP_STOSW_64, X86_INS_REP,
X86_REP_STOSW_64, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_AX, X86_REG_RCX, X86_REG_RDI, 0 }, { X86_REG_RCX, X86_REG_RDI, 0 }, { X86_GRP_MODE64, 0 }, 0, 0
#endif
@ -41773,7 +41770,7 @@ static insn_map insns[] = { // reduce x86 instructions
#endif
},
{
X86_LOCK_PREFIX, X86_INS_LOCK,
X86_LOCK_PREFIX, 0,
#ifndef CAPSTONE_DIET
{ 0 }, { 0 }, { 0 }, 0, 0
#endif
@ -44161,97 +44158,97 @@ static insn_map insns[] = { // reduce x86 instructions
#endif
},
{
X86_REPNE_PREFIX, X86_INS_REPNE,
X86_REPNE_PREFIX, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_ECX, X86_REG_EFLAGS, 0 }, { X86_REG_ECX, 0 }, { 0 }, 0, 0
#endif
},
{
X86_REP_MOVSB_32, X86_INS_REP,
X86_REP_MOVSB_32, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_ECX, X86_REG_EDI, X86_REG_ESI, 0 }, { X86_REG_ECX, X86_REG_EDI, X86_REG_ESI, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_REP_MOVSB_64, X86_INS_REP,
X86_REP_MOVSB_64, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_RCX, X86_REG_RDI, X86_REG_RSI, 0 }, { X86_REG_RCX, X86_REG_RDI, X86_REG_RSI, 0 }, { X86_GRP_MODE64, 0 }, 0, 0
#endif
},
{
X86_REP_MOVSD_32, X86_INS_REP,
X86_REP_MOVSD_32, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_ECX, X86_REG_EDI, X86_REG_ESI, 0 }, { X86_REG_ECX, X86_REG_EDI, X86_REG_ESI, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_REP_MOVSD_64, X86_INS_REP,
X86_REP_MOVSD_64, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_RCX, X86_REG_RDI, X86_REG_RSI, 0 }, { X86_REG_RCX, X86_REG_RDI, X86_REG_RSI, 0 }, { X86_GRP_MODE64, 0 }, 0, 0
#endif
},
{
X86_REP_MOVSQ_64, X86_INS_REP,
X86_REP_MOVSQ_64, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_RCX, X86_REG_RDI, X86_REG_RSI, 0 }, { X86_REG_RCX, X86_REG_RDI, X86_REG_RSI, 0 }, { X86_GRP_MODE64, 0 }, 0, 0
#endif
},
{
X86_REP_MOVSW_32, X86_INS_REP,
X86_REP_MOVSW_32, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_ECX, X86_REG_EDI, X86_REG_ESI, 0 }, { X86_REG_ECX, X86_REG_EDI, X86_REG_ESI, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_REP_MOVSW_64, X86_INS_REP,
X86_REP_MOVSW_64, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_RCX, X86_REG_RDI, X86_REG_RSI, 0 }, { X86_REG_RCX, X86_REG_RDI, X86_REG_RSI, 0 }, { X86_GRP_MODE64, 0 }, 0, 0
#endif
},
{
X86_REP_PREFIX, X86_INS_REP,
X86_REP_PREFIX, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_ECX, X86_REG_EFLAGS, 0 }, { X86_REG_ECX, 0 }, { 0 }, 0, 0
#endif
},
{
X86_REP_STOSB_32, X86_INS_REP,
X86_REP_STOSB_32, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_AL, X86_REG_ECX, X86_REG_EDI, 0 }, { X86_REG_ECX, X86_REG_EDI, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_REP_STOSB_64, X86_INS_REP,
X86_REP_STOSB_64, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_AL, X86_REG_RCX, X86_REG_RDI, 0 }, { X86_REG_RCX, X86_REG_RDI, 0 }, { X86_GRP_MODE64, 0 }, 0, 0
#endif
},
{
X86_REP_STOSD_32, X86_INS_REP,
X86_REP_STOSD_32, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_EAX, X86_REG_ECX, X86_REG_EDI, 0 }, { X86_REG_ECX, X86_REG_EDI, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_REP_STOSD_64, X86_INS_REP,
X86_REP_STOSD_64, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_RAX, X86_REG_RCX, X86_REG_RDI, 0 }, { X86_REG_RCX, X86_REG_RDI, 0 }, { X86_GRP_MODE64, 0 }, 0, 0
#endif
},
{
X86_REP_STOSQ_64, X86_INS_REP,
X86_REP_STOSQ_64, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_RAX, X86_REG_RCX, X86_REG_RDI, 0 }, { X86_REG_RCX, X86_REG_RDI, 0 }, { X86_GRP_MODE64, 0 }, 0, 0
#endif
},
{
X86_REP_STOSW_32, X86_INS_REP,
X86_REP_STOSW_32, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_AX, X86_REG_ECX, X86_REG_EDI, 0 }, { X86_REG_ECX, X86_REG_EDI, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_REP_STOSW_64, X86_INS_REP,
X86_REP_STOSW_64, 0,
#ifndef CAPSTONE_DIET
{ X86_REG_AX, X86_REG_RCX, X86_REG_RDI, 0 }, { X86_REG_RCX, X86_REG_RDI, 0 }, { X86_GRP_MODE64, 0 }, 0, 0
#endif

View File

@ -569,7 +569,6 @@ typedef enum x86_insn {
X86_INS_LLDT,
X86_INS_LMSW,
X86_INS_OR,
X86_INS_LOCK,
X86_INS_SUB,
X86_INS_XOR,
X86_INS_LODSB,
@ -842,8 +841,6 @@ typedef enum x86_insn {
X86_INS_RDSEED,
X86_INS_RDTSC,
X86_INS_RDTSCP,
X86_INS_REPNE,
X86_INS_REP,
X86_INS_ROL,
X86_INS_ROR,
X86_INS_RORX,