aboutsummaryrefslogtreecommitdiff
path: root/gdb/arc-linux-tdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/arc-linux-tdep.c')
-rw-r--r--gdb/arc-linux-tdep.c15
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