diff options
Diffstat (limited to 'gdb/arc-linux-tdep.c')
-rw-r--r-- | gdb/arc-linux-tdep.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/gdb/arc-linux-tdep.c b/gdb/arc-linux-tdep.c index 13595f2..04ca38f 100644 --- a/gdb/arc-linux-tdep.c +++ b/gdb/arc-linux-tdep.c @@ -356,7 +356,7 @@ arc_linux_sw_breakpoint_from_kind (struct gdbarch *gdbarch, */ static std::vector<CORE_ADDR> -handle_atomic_sequence (arc_instruction insn, disassemble_info &di) +handle_atomic_sequence (arc_instruction insn, disassemble_info *di) { const int atomic_seq_len = 24; /* Instruction sequence length. */ std::vector<CORE_ADDR> next_pcs; @@ -374,7 +374,7 @@ handle_atomic_sequence (arc_instruction insn, disassemble_info &di) for (int insn_count = 0; insn_count < atomic_seq_len; ++insn_count) { arc_insn_decode (arc_insn_get_linear_next_pc (insn), - &di, arc_delayed_print_insn, &insn); + di, arc_delayed_print_insn, &insn); if (insn.insn_class == BRCC) { @@ -412,15 +412,15 @@ arc_linux_software_single_step (struct regcache *regcache) { struct gdbarch *gdbarch = regcache->arch (); arc_gdbarch_tdep *tdep = (arc_gdbarch_tdep *) gdbarch_tdep (gdbarch); - struct disassemble_info di = arc_disassemble_info (gdbarch); + struct gdb_non_printing_memory_disassembler dis (gdbarch); /* Read current instruction. */ struct arc_instruction curr_insn; - arc_insn_decode (regcache_read_pc (regcache), &di, arc_delayed_print_insn, - &curr_insn); + arc_insn_decode (regcache_read_pc (regcache), dis.disasm_info (), + arc_delayed_print_insn, &curr_insn); if (curr_insn.insn_class == LLOCK) - return handle_atomic_sequence (curr_insn, di); + return handle_atomic_sequence (curr_insn, dis.disasm_info ()); CORE_ADDR next_pc = arc_insn_get_linear_next_pc (curr_insn); std::vector<CORE_ADDR> next_pcs; @@ -431,7 +431,8 @@ arc_linux_software_single_step (struct regcache *regcache) if (curr_insn.has_delay_slot) { struct arc_instruction next_insn; - arc_insn_decode (next_pc, &di, arc_delayed_print_insn, &next_insn); + arc_insn_decode (next_pc, dis.disasm_info (), arc_delayed_print_insn, + &next_insn); next_pcs.push_back (arc_insn_get_linear_next_pc (next_insn)); } else |