diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2009-07-02 17:17:42 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2009-07-02 17:17:42 +0000 |
commit | 13274fc342aae3c94dbb38f01ba7d8f2e3821ddf (patch) | |
tree | e72b727f8733ee6062bf1fdb1eaf3d604af79b59 /gdb/disasm.c | |
parent | a6d9a66e2318b2002461996aeb5d4f18a0a9d3d6 (diff) | |
download | gdb-13274fc342aae3c94dbb38f01ba7d8f2e3821ddf.zip gdb-13274fc342aae3c94dbb38f01ba7d8f2e3821ddf.tar.gz gdb-13274fc342aae3c94dbb38f01ba7d8f2e3821ddf.tar.bz2 |
* disasm.h (gdb_disassembly): Add GDBARCH parameter.
(gdb_print_insn): Likewise.
* disasm.c (dump_insns): Add GDBARCH parameter. Use it instead
of current_gdbarch.
(do_mixed_source_and_assembly): Add GDBARCH parameter. Pass to
dump_insns.
(do_assembly_only): Likewise.
(gdb_disassembly): Add GDBARCH parameter. Use it instead of
current_gdbarch. Pass to subroutines.
(gdb_print_insn): Add GDBARCH parameter. Use it instead of
current_gdbarch.
* stack.c (struct gdb_disassembly_stub_args): Add GDBARCH member.
(gdb_disassembly_stub): Pass architecture to gdb_disassembly.
(do_gdb_disassembly): Add GDBARCH argument. Store into args.
(print_frame_info): Pass architecture to do_gdb_disassembly.
* printcmd.c (print_formatted): Pass architecture to gdb_print_insn.
* mi/mi-cmd-disas.c: Include "arch-utils.h"
(mi_cmd_disassemble): Pass architecture to gdb_disassembly.
* cli/cli-cmds.c: Include "arch-utils.h".
(print_disassembly): Add GDBARCH parameter. Pass to gdb_disassembly
and tui_show_assembly.
(disassemble_current_function): Pass architecture to
tui_get_low_disassembly_address and print_disassembly.
(disassemble_command): Pass architecture to
tui_get_low_disassembly_address and print_disassembly.
* tui/tui.c (tui_show_assembly): Add GDBARCH parameter. Pass to
tui_update_source_windows_with_addr.
* tui/tui-data.h (struct tui_locator_element): Add GDBARCH member.
(struct tui_source_info): Likewise.
* tui/tui-data.c (tui_clear_win_detail): Clear source_info.gdbarch.
* tui/tui-disasm.c (tui_disassemble): Add GDBARCH parameter.
Pass to gdb_print_insn.
(tui_find_disassembly_address): Add GDBARCH parameter. Pass to
tui_disassemble.
(tui_set_disassem_content): Add GDBARCH parameter. Install into
source_info.gdbarch. Pass to tui_disassemble.
(tui_show_disassem): Add GDBARCH parameter. Pass to
tui_update_source_window.
(tui_show_disassem_and_update_source): Add GDBARCH parameter. Pass to
tui_show_disassem and tui_update_source_window.
(tui_get_begin_asm_address): Return locator architecture in addition
to locator PC value.
(tui_get_low_disassembly_address): Add GDBARCH parameter. Pass to
tui_get_low_disassembly_address.
(tui_vertical_disassem_scroll): Pass architecture to subroutines.
* tui/tui-disasm.h (tui_set_disassem_content): Add GDBARCH parameter.
(tui_show_disassem): Likewise.
(tui_show_disassem_and_update_source): Likewise.
(tui_get_begin_asm_address): Return architecture and PC value.
* tui/tui.h (tui_get_low_disassembly_address): Add GDBARCH parameter.
(tui_show_assembly): Add GDBARCH parameter.
* tui/tui-layout.c (extract_display_start_addr): Return current window
architecture in addition to current PC value.
(tui_set_layout): Update calls to tui_get_low_disassembly_address and
extract_display_start_addr. Pass architecture to
tui_update_source_windows_with_addr.
* tui/tui-source.c: Include "objfiles.h".
(tui_set_source_content): Initialize window architecture.
(tui_show_symtab_source): Add GDBARCH parameter. Pass to
tui_update_source_window_as_is
* tui/tui-source.h (tui_show_symtab_source): Add GDBARCH parameter.
* tui/tui-stack.c (tui_set_locator_info): Add GDBARCH parameter.
Install locator architecture.
(tui_set_locator_filename): Update call.
(tui_show_frame_info): Pass architecture to tui_set_locator_info
and subroutines.
* tui/tui-win.c (make_visible_with_new_height): Pass architecture
to tui_update_source_window.
* tui/tui-winsource.c: Include "objfiles.h".
(tui_display_main): Update call to tui_get_begin_asm_address.
Pass architecture to tui_update_source_windows_with_addr.
(tui_update_source_window): Add GDBARCH parameter. Pass to
tui_update_source_window_as_is.
(tui_update_source_window_as_is): Add GDBARCH parameter.
Pass to tui_set_disassem_content.
(tui_update_source_windows_with_addr): Add GDBARCH parameter.
Pass to subroutines.
(tui_update_source_windows_with_line): Pass objfile architecture
to subroutines.
(tui_horizontal_source_scroll): Pass architecture to
tui_update_source_window_as_is.
* tui/tui-winsource.h (tui_update_source_window): Add GDBARCH
parameter.
(tui_update_source_window_as_is): Likewise.
(tui_update_source_windows_with_addr): Likewise.
Diffstat (limited to 'gdb/disasm.c')
-rw-r--r-- | gdb/disasm.c | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/gdb/disasm.c b/gdb/disasm.c index 4ea5137..8812b1c 100644 --- a/gdb/disasm.c +++ b/gdb/disasm.c @@ -84,7 +84,8 @@ compare_lines (const void *mle1p, const void *mle2p) } static int -dump_insns (struct ui_out *uiout, struct disassemble_info * di, +dump_insns (struct gdbarch *gdbarch, struct ui_out *uiout, + struct disassemble_info * di, CORE_ADDR low, CORE_ADDR high, int how_many, struct ui_stream *stb) { @@ -133,7 +134,7 @@ dump_insns (struct ui_out *uiout, struct disassemble_info * di, xfree (name); ui_file_rewind (stb->stream); - pc += gdbarch_print_insn (current_gdbarch, pc, di); + pc += gdbarch_print_insn (gdbarch, pc, di); ui_out_field_stream (uiout, "inst", stb); ui_file_rewind (stb->stream); do_cleanups (ui_out_chain); @@ -147,7 +148,7 @@ dump_insns (struct ui_out *uiout, struct disassemble_info * di, in source order, with (possibly) out of order assembly immediately following. */ static void -do_mixed_source_and_assembly (struct ui_out *uiout, +do_mixed_source_and_assembly (struct gdbarch *gdbarch, struct ui_out *uiout, struct disassemble_info *di, int nlines, struct linetable_entry *le, CORE_ADDR low, CORE_ADDR high, @@ -274,7 +275,8 @@ do_mixed_source_and_assembly (struct ui_out *uiout, = make_cleanup_ui_out_list_begin_end (uiout, "line_asm_insn"); } - num_displayed += dump_insns (uiout, di, mle[i].start_pc, mle[i].end_pc, + num_displayed += dump_insns (gdbarch, uiout, di, + mle[i].start_pc, mle[i].end_pc, how_many, stb); /* When we've reached the end of the mle array, or we've seen the last @@ -295,7 +297,8 @@ do_mixed_source_and_assembly (struct ui_out *uiout, static void -do_assembly_only (struct ui_out *uiout, struct disassemble_info * di, +do_assembly_only (struct gdbarch *gdbarch, struct ui_out *uiout, + struct disassemble_info * di, CORE_ADDR low, CORE_ADDR high, int how_many, struct ui_stream *stb) { @@ -304,7 +307,7 @@ do_assembly_only (struct ui_out *uiout, struct disassemble_info * di, ui_out_chain = make_cleanup_ui_out_list_begin_end (uiout, "asm_insns"); - num_displayed = dump_insns (uiout, di, low, high, how_many, stb); + num_displayed = dump_insns (gdbarch, uiout, di, low, high, how_many, stb); do_cleanups (ui_out_chain); } @@ -349,14 +352,14 @@ gdb_disassemble_info (struct gdbarch *gdbarch, struct ui_file *file) } void -gdb_disassembly (struct ui_out *uiout, +gdb_disassembly (struct gdbarch *gdbarch, struct ui_out *uiout, char *file_string, int mixed_source_and_assembly, int how_many, CORE_ADDR low, CORE_ADDR high) { struct ui_stream *stb = ui_out_stream_new (uiout); struct cleanup *cleanups = make_cleanup_ui_out_stream_delete (stb); - struct disassemble_info di = gdb_disassemble_info (current_gdbarch, stb->stream); + struct disassemble_info di = gdb_disassemble_info (gdbarch, stb->stream); /* To collect the instruction outputted from opcodes. */ struct symtab *symtab = NULL; struct linetable_entry *le = NULL; @@ -374,10 +377,10 @@ gdb_disassembly (struct ui_out *uiout, if (!mixed_source_and_assembly || nlines <= 0 || symtab == NULL || symtab->linetable == NULL) - do_assembly_only (uiout, &di, low, high, how_many, stb); + do_assembly_only (gdbarch, uiout, &di, low, high, how_many, stb); else if (mixed_source_and_assembly) - do_mixed_source_and_assembly (uiout, &di, nlines, le, low, + do_mixed_source_and_assembly (gdbarch, uiout, &di, nlines, le, low, high, symtab, how_many, stb); do_cleanups (cleanups); @@ -389,14 +392,14 @@ gdb_disassembly (struct ui_out *uiout, and, if requested, the number of branch delay slot instructions. */ int -gdb_print_insn (CORE_ADDR memaddr, struct ui_file *stream, - int *branch_delay_insns) +gdb_print_insn (struct gdbarch *gdbarch, CORE_ADDR memaddr, + struct ui_file *stream, int *branch_delay_insns) { struct disassemble_info di; int length; - di = gdb_disassemble_info (current_gdbarch, stream); - length = gdbarch_print_insn (current_gdbarch, memaddr, &di); + di = gdb_disassemble_info (gdbarch, stream); + length = gdbarch_print_insn (gdbarch, memaddr, &di); if (branch_delay_insns) { if (di.insn_info_valid) |