/* Disassemble support for GDB.
- Copyright (C) 2002, 2007-2012 Free Software Foundation, Inc.
+ Copyright (C) 2002-2015 Free Software Foundation, Inc.
This file is part of GDB.
#ifndef DISASM_H
#define DISASM_H
-#define DISASSEMBLY_SOURCE (0x1 << 0)
+#include "dis-asm.h"
+
+#define DISASSEMBLY_SOURCE_DEPRECATED (0x1 << 0)
#define DISASSEMBLY_RAW_INSN (0x1 << 1)
#define DISASSEMBLY_OMIT_FNAME (0x1 << 2)
+#define DISASSEMBLY_FILENAME (0x1 << 3)
+#define DISASSEMBLY_OMIT_PC (0x1 << 4)
+#define DISASSEMBLY_SOURCE (0x1 << 5)
+#define DISASSEMBLY_SPECULATIVE (0x1 << 6)
+struct gdbarch;
struct ui_out;
struct ui_file;
+/* An instruction to be disassembled. */
+
+struct disasm_insn
+{
+ /* The address of the memory containing the instruction. */
+ CORE_ADDR addr;
+
+ /* An optional instruction number. If non-zero, it is printed first. */
+ unsigned int number;
+
+ /* True if the instruction was executed speculatively. */
+ unsigned int is_speculative:1;
+};
+
+/* Prints the instruction INSN into UIOUT and returns the length of the
+ printed instruction in bytes. */
+
+extern int gdb_pretty_print_insn (struct gdbarch *gdbarch, struct ui_out *uiout,
+ struct disassemble_info * di,
+ const struct disasm_insn *insn, int flags,
+ struct ui_file *stb);
+
+/* Return a filled in disassemble_info object for use by gdb. */
+
+extern struct disassemble_info gdb_disassemble_info (struct gdbarch *gdbarch,
+ struct ui_file *file);
+
extern void gdb_disassembly (struct gdbarch *gdbarch, struct ui_out *uiout,
char *file_string, int flags, int how_many,
CORE_ADDR low, CORE_ADDR high);