summaryrefslogtreecommitdiff
path: root/i386/i386/db_disasm.c
diff options
context:
space:
mode:
Diffstat (limited to 'i386/i386/db_disasm.c')
-rw-r--r--i386/i386/db_disasm.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/i386/i386/db_disasm.c b/i386/i386/db_disasm.c
index 4afbcf3e..303b4621 100644
--- a/i386/i386/db_disasm.c
+++ b/i386/i386/db_disasm.c
@@ -33,6 +33,7 @@
#include <machine/db_machdep.h>
#include <ddb/db_access.h>
+#include <ddb/db_examine.h>
#include <ddb/db_output.h>
#include <ddb/db_sym.h>
@@ -162,7 +163,7 @@ struct inst db_inst_0f0x[] = {
/*08*/ { "invd", FALSE, NONE, 0, 0 },
/*09*/ { "wbinvd",FALSE, NONE, 0, 0 },
/*0a*/ { "", FALSE, NONE, 0, 0 },
-/*0b*/ { "", FALSE, NONE, 0, 0 },
+/*0b*/ { "ud2", FALSE, NONE, 0, 0 },
/*0c*/ { "", FALSE, NONE, 0, 0 },
/*0d*/ { "", FALSE, NONE, 0, 0 },
/*0e*/ { "", FALSE, NONE, 0, 0 },
@@ -862,7 +863,7 @@ int db_lengths[] = {
/*
* Read address at location and return updated location.
*/
-db_addr_t
+static db_addr_t
db_read_address(
db_addr_t loc,
int short_addr,
@@ -948,7 +949,7 @@ db_read_address(
return loc;
}
-void
+static void
db_print_address(
const char * seg,
int size,
@@ -980,7 +981,7 @@ db_print_address(
* Disassemble floating-point ("escape") instruction
* and return updated location.
*/
-db_addr_t
+static db_addr_t
db_disasm_esc(
db_addr_t loc,
int inst,
@@ -1090,6 +1091,12 @@ db_disasm(
int len;
struct i_addr address;
+#ifdef __x86_64__
+ /* The instruction set decoding needs an update, avoid showing bogus output. */
+ db_printf("TODO\n");
+ return loc+1;
+#endif
+
get_value_inc(inst, loc, 1, FALSE, task);
if (db_disasm_16) {
short_addr = TRUE;