Author: markj
Date: Fri Feb 13 01:35:53 2015
New Revision: 278655
URL: https://svnweb.freebsd.org/changeset/base/278655

Log:
  Add support for decoding multibyte NOPs.
  
  Differential Revision:        https://reviews.freebsd.org/D1830
  Reviewed by:  jhb, kib
  MFC after:    2 weeks
  Sponsored by: EMC / Isilon Storage Divison

Modified:
  head/sys/amd64/amd64/db_disasm.c
  head/sys/i386/i386/db_disasm.c

Modified: head/sys/amd64/amd64/db_disasm.c
==============================================================================
--- head/sys/amd64/amd64/db_disasm.c    Fri Feb 13 01:20:37 2015        
(r278654)
+++ head/sys/amd64/amd64/db_disasm.c    Fri Feb 13 01:35:53 2015        
(r278655)
@@ -250,6 +250,26 @@ static const struct inst db_inst_0f0x[] 
 /*0f*/ { "",      FALSE, NONE,  0,           0 },
 };
 
+static const struct inst db_inst_0f1x[] = {
+/*10*/ { "",      FALSE, NONE,  0,           0 },
+/*11*/ { "",      FALSE, NONE,  0,           0 },
+/*12*/ { "",      FALSE, NONE,  0,           0 },
+/*13*/ { "",      FALSE, NONE,  0,           0 },
+/*14*/ { "",      FALSE, NONE,  0,           0 },
+/*15*/ { "",      FALSE, NONE,  0,           0 },
+/*16*/ { "",      FALSE, NONE,  0,           0 },
+/*17*/ { "",      FALSE, NONE,  0,           0 },
+
+/*18*/ { "",      FALSE, NONE,  0,           0 },
+/*19*/ { "",      FALSE, NONE,  0,           0 },
+/*1a*/ { "",      FALSE, NONE,  0,           0 },
+/*1b*/ { "",      FALSE, NONE,  0,           0 },
+/*1c*/ { "",      FALSE, NONE,  0,           0 },
+/*1d*/ { "",      FALSE, NONE,  0,           0 },
+/*1e*/ { "",      FALSE, NONE,  0,           0 },
+/*1f*/ { "nopl",  TRUE,  SDEP,  0,           "nopw" },
+};
+
 static const struct inst db_inst_0f2x[] = {
 /*20*/ { "mov",   TRUE,  LONG,  op2(CR,El),  0 },
 /*21*/ { "mov",   TRUE,  LONG,  op2(DR,El),  0 },
@@ -431,7 +451,7 @@ static const struct inst db_inst_0fcx[] 
 
 static const struct inst * const db_inst_0f[] = {
        db_inst_0f0x,
-       0,
+       db_inst_0f1x,
        db_inst_0f2x,
        db_inst_0f3x,
        db_inst_0f4x,

Modified: head/sys/i386/i386/db_disasm.c
==============================================================================
--- head/sys/i386/i386/db_disasm.c      Fri Feb 13 01:20:37 2015        
(r278654)
+++ head/sys/i386/i386/db_disasm.c      Fri Feb 13 01:35:53 2015        
(r278655)
@@ -195,6 +195,26 @@ static const struct inst db_inst_0f0x[] 
 /*0f*/ { "",      FALSE, NONE,  0,           0 },
 };
 
+static const struct inst db_inst_0f1x[] = {
+/*10*/ { "",      FALSE, NONE,  0,           0 },
+/*11*/ { "",      FALSE, NONE,  0,           0 },
+/*12*/ { "",      FALSE, NONE,  0,           0 },
+/*13*/ { "",      FALSE, NONE,  0,           0 },
+/*14*/ { "",      FALSE, NONE,  0,           0 },
+/*15*/ { "",      FALSE, NONE,  0,           0 },
+/*16*/ { "",      FALSE, NONE,  0,           0 },
+/*17*/ { "",      FALSE, NONE,  0,           0 },
+
+/*18*/ { "",      FALSE, NONE,  0,           0 },
+/*19*/ { "",      FALSE, NONE,  0,           0 },
+/*1a*/ { "",      FALSE, NONE,  0,           0 },
+/*1b*/ { "",      FALSE, NONE,  0,           0 },
+/*1c*/ { "",      FALSE, NONE,  0,           0 },
+/*1d*/ { "",      FALSE, NONE,  0,           0 },
+/*1e*/ { "",      FALSE, NONE,  0,           0 },
+/*1f*/ { "nopl",  TRUE,  SDEP,  0,           "nopw" },
+};
+
 static const struct inst db_inst_0f2x[] = {
 /*20*/ { "mov",   TRUE,  LONG,  op2(CR,El),  0 },
 /*21*/ { "mov",   TRUE,  LONG,  op2(DR,El),  0 },
@@ -356,7 +376,7 @@ static const struct inst db_inst_0fcx[] 
 
 static const struct inst * const db_inst_0f[] = {
        db_inst_0f0x,
-       0,
+       db_inst_0f1x,
        db_inst_0f2x,
        db_inst_0f3x,
        db_inst_0f4x,
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to