This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH: More x86 disassembler cleanup


I am checking in this patch to handle invalid operands for
moving control/debug/test registers.


H.J.
----
2007-08-31  H.J. Lu  <hongjiu.lu@intel.com>

	* i386-dis.c (OPC_EXT_40...OPC_EXT_45): New.
	(dis386_twobyte): Use OPC_EXT_40...OPC_EXT_45.
	(opc_ext_table): Add OPC_EXT_40...OPC_EXT_45.

--- opcodes/i386-dis.c.mov	2007-08-31 13:19:30.000000000 -0700
+++ opcodes/i386-dis.c	2007-08-31 13:52:22.000000000 -0700
@@ -596,6 +596,12 @@ fetch_data (struct disassemble_info *inf
 #define OPC_EXT_37 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 37 } }
 #define OPC_EXT_38 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 38 } }
 #define OPC_EXT_39 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 39 } }
+#define OPC_EXT_40 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 40 } }
+#define OPC_EXT_41 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 41 } }
+#define OPC_EXT_42 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 42 } }
+#define OPC_EXT_43 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 43 } }
+#define OPC_EXT_44 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 44 } }
+#define OPC_EXT_45 NULL, { { NULL, USE_OPC_EXT_TABLE }, { NULL, 45 } }
 
 #define OPC_EXT_RM_0  NULL, { { NULL, USE_OPC_EXT_RM_TABLE }, { NULL, 0 } }
 #define OPC_EXT_RM_1  NULL, { { NULL, USE_OPC_EXT_RM_TABLE }, { NULL, 1 } }
@@ -986,13 +992,13 @@ static const struct dis386 dis386_twobyt
   { "(bad)",		{ XX } },
   { "nopQ",		{ Ev } },
   /* 20 */
-  { "movZ",		{ Rm, Cm } },
-  { "movZ",		{ Rm, Dm } },
-  { "movZ",		{ Cm, Rm } },
-  { "movZ",		{ Dm, Rm } },
-  { "movL",		{ Rd, Td } },
+  { OPC_EXT_40 },
+  { OPC_EXT_41 },
+  { OPC_EXT_42 },
+  { OPC_EXT_43 },
+  { OPC_EXT_44 },
   { "(bad)",		{ XX } },
-  { "movL",		{ Td, Rd } },
+  { OPC_EXT_45 },
   { "(bad)",		{ XX } },
   /* 28 */
   { "movapX",		{ XM, EXx } },
@@ -3264,6 +3270,36 @@ static const struct dis386 opc_ext_table
     { "lidt{Q|Q||}",	{ M } },
     { OPC_EXT_RM_6 },
   },
+  {
+    /* OPC_EXT_40 */
+    { "(bad)",		{ XX } },
+    { "movZ",		{ Rm, Cm } },
+  },
+  {
+    /* OPC_EXT_41 */
+    { "(bad)",		{ XX } },
+    { "movZ",		{ Rm, Dm } },
+  },
+  {
+    /* OPC_EXT_42 */
+    { "(bad)",		{ XX } },
+    { "movZ",		{ Cm, Rm } },
+  },
+  {
+    /* OPC_EXT_43 */
+    { "(bad)",		{ XX } },
+    { "movZ",		{ Dm, Rm } },
+  },
+  {
+    /* OPC_EXT_44 */
+    { "(bad)",		{ XX } },
+    { "movL",		{ Rd, Td } },
+  },
+  {
+    /* OPC_EXT_45 */
+    { "(bad)",		{ XX } },
+    { "movL",		{ Td, Rd } },
+  },
 };
 
 static const struct dis386 opc_ext_rm_table[][8] = {


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]