Added some more disassembly instructions (notably rdtsc, which is used
by several programs) and more MMX.
This commit is contained in:
parent
ec0bff1585
commit
5e2eeb66ec
|
@ -243,9 +243,9 @@ static const struct inst db_inst_0f2x[] = {
|
|||
/*22*/ { "mov", TRUE, LONG, op2(E,CR), 0 },
|
||||
/*23*/ { "mov", TRUE, LONG, op2(E,DR), 0 },
|
||||
/*24*/ { "mov", TRUE, LONG, op2(TR,E), 0 },
|
||||
/*25*/ { "", FALSE, NONE, 0, 0 },
|
||||
/*25*/ { "(bad)", FALSE, NONE, 0, 0 },
|
||||
/*26*/ { "mov", TRUE, LONG, op2(E,TR), 0 },
|
||||
/*27*/ { "", FALSE, NONE, 0, 0 },
|
||||
/*27*/ { "(bad)", FALSE, NONE, 0, 0 },
|
||||
|
||||
/*28*/ { "", FALSE, NONE, 0, 0 },
|
||||
/*29*/ { "", FALSE, NONE, 0, 0 },
|
||||
|
@ -257,6 +257,26 @@ static const struct inst db_inst_0f2x[] = {
|
|||
/*2f*/ { "", FALSE, NONE, 0, 0 },
|
||||
};
|
||||
|
||||
static const struct inst db_inst_0f3x[] = {
|
||||
/*20*/ { "wrmsr", FALSE, NONE, 0, 0 },
|
||||
/*21*/ { "rdtsc", FALSE, NONE, 0, 0 },
|
||||
/*22*/ { "rdmsr", FALSE, NONE, 0, 0 },
|
||||
/*23*/ { "rdpmc", FALSE, NONE, 0, 0 },
|
||||
/*24*/ { "sysenter",FALSE,NONE, 0, 0 },
|
||||
/*25*/ { "sysexit",FALSE,NONE, 0, 0 },
|
||||
/*26*/ { "(bad)", FALSE, NONE, 0, 0 },
|
||||
/*27*/ { "(bad)", FALSE, NONE, 0, 0 },
|
||||
|
||||
/*28*/ { "(bad)",FALSE, NONE, 0, 0 },
|
||||
/*29*/ { "(bad)",FALSE, NONE, 0, 0 },
|
||||
/*2a*/ { "(bad)",FALSE, NONE, 0, 0 },
|
||||
/*2b*/ { "(bad)",FALSE, NONE, 0, 0 },
|
||||
/*2c*/ { "(bad)",FALSE, NONE, 0, 0 },
|
||||
/*2d*/ { "(bad)",FALSE, NONE, 0, 0 },
|
||||
/*2e*/ { "(bad)",FALSE, NONE, 0, 0 },
|
||||
/*2f*/ { "(bad)",FALSE, NONE, 0, 0 },
|
||||
};
|
||||
|
||||
static const struct inst db_inst_0f4x[] = {
|
||||
/*40*/ { "cmovo", TRUE, NONE, op2(E, R), 0 },
|
||||
/*41*/ { "cmovno", TRUE, NONE, op2(E, R), 0 },
|
||||
|
@ -454,11 +474,30 @@ static const struct inst db_inst_0fex[] = {
|
|||
/*ef*/ { "pxor", TRUE, NONE, op2(MX, EMX), 0 },
|
||||
};
|
||||
|
||||
static const struct inst db_inst_0ffx[] = {
|
||||
/*f0*/ { "(bad)", FALSE,NONE, 0, 0 },
|
||||
/*f1*/ { "psllw", TRUE, NONE, op2(MX, EMX), 0 },
|
||||
/*f2*/ { "pslld", TRUE, NONE, op2(MX, EMX), 0 },
|
||||
/*f3*/ { "psllq", TRUE, NONE, op2(MX, EMX), 0 },
|
||||
/*f4*/ { "(bad)", FALSE,NONE, 0, 0 },
|
||||
/*f5*/ { "pmaddwd",TRUE, NONE, op2(MX, EMX), 0 },
|
||||
/*f6*/ { "psadbw", TRUE, NONE, op2(MX, EMX), 0 },
|
||||
/*f7*/ { "maskmovq",TRUE,NONE, op2(MX, EMX), 0 },
|
||||
/*f8*/ { "psubb", TRUE, NONE, op2(MX, EMX), 0 },
|
||||
/*f9*/ { "psubw", TRUE, NONE, op2(MX, EMX), 0 },
|
||||
/*fa*/ { "psubd", TRUE, NONE, op2(MX, EMX), 0 },
|
||||
/*fb*/ { "(bad)", FALSE,NONE, 0, 0 },
|
||||
/*fc*/ { "paddb", TRUE, NONE, op2(MX, EMX), 0 },
|
||||
/*fd*/ { "paddw", TRUE, NONE, op2(MX, EMX), 0 },
|
||||
/*fe*/ { "paddd", TRUE, NONE, op2(MX, EMX), 0 },
|
||||
/*ff*/ { "(bad)", FALSE, NONE, 0, 0 },
|
||||
};
|
||||
|
||||
static const struct inst * const db_inst_0f[] = {
|
||||
db_inst_0f0x,
|
||||
0,
|
||||
db_inst_0f2x,
|
||||
0,
|
||||
db_inst_0f3x,
|
||||
db_inst_0f4x,
|
||||
0,
|
||||
db_inst_0f6x,
|
||||
|
@ -470,7 +509,7 @@ static const struct inst * const db_inst_0f[] = {
|
|||
db_inst_0fcx,
|
||||
db_inst_0fdx,
|
||||
db_inst_0fex,
|
||||
0
|
||||
db_inst_0ffx
|
||||
};
|
||||
|
||||
static const char * const db_Esc92[] = {
|
||||
|
|
Loading…
Reference in New Issue