PATCH: more disasm
Marcus Meissner
marcus at jet.franken.de
Mon Apr 23 16:30:15 CDT 2001
Hi,
Changelog:
added some more disassembly instructions. (notably rdtsc, which is
used by several programs) and more MMX.
Index: db_disasm.c
===================================================================
RCS file: /home/wine/wine/debugger/db_disasm.c,v
retrieving revision 1.20
diff -u -r1.20 db_disasm.c
--- db_disasm.c 2001/04/23 18:11:17 1.20
+++ db_disasm.c 2001/04/23 22:33:53
@@ -243,11 +243,11 @@
/*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 },
+/*28*/ { "", FALSE, NONE, 0, 0 },
/*29*/ { "", FALSE, NONE, 0, 0 },
/*2a*/ { "", FALSE, NONE, 0, 0 },
/*2b*/ { "", FALSE, NONE, 0, 0 },
@@ -257,6 +257,26 @@
/*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 @@
/*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 @@
db_inst_0fcx,
db_inst_0fdx,
db_inst_0fex,
- 0
+ db_inst_0ffx
};
static const char * const db_Esc92[] = {
More information about the wine-patches
mailing list