NULL);
}
+/* Implement the breakpoint_kind_from_pc gdbarch method. */
+
static int
tic6x_breakpoint_kind_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr)
{
return 4;
}
+/* Implement the sw_breakpoint_from_kind gdbarch method. */
+
static const gdb_byte *
tic6x_sw_breakpoint_from_kind (struct gdbarch *gdbarch, int kind, int *size)
{
return tdep->breakpoint;
}
-/* This is the implementation of gdbarch method breakpiont_from_pc. */
-
-GDBARCH_BREAKPOINT_FROM_PC (tic6x)
-
/* This is the implementation of gdbarch method print_insn. */
static int
/* This is the implementation of gdbarch method software_single_step. */
-static int
+static VEC (CORE_ADDR) *
tic6x_software_single_step (struct frame_info *frame)
{
- struct gdbarch *gdbarch = get_frame_arch (frame);
- struct address_space *aspace = get_frame_address_space (frame);
CORE_ADDR next_pc = tic6x_get_next_pc (frame, get_frame_pc (frame));
+ VEC (CORE_ADDR) *next_pcs = NULL;
- insert_single_step_breakpoint (gdbarch, aspace, next_pc);
+ VEC_safe_push (CORE_ADDR, next_pcs, next_pc);
- return 1;
+ return next_pcs;
}
/* This is the implementation of gdbarch method frame_align. */
set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
set_gdbarch_skip_prologue (gdbarch, tic6x_skip_prologue);
- SET_GDBARCH_BREAKPOINT_MANIPULATION (tic6x);
+ set_gdbarch_breakpoint_kind_from_pc (gdbarch,
+ tic6x_breakpoint_kind_from_pc);
+ set_gdbarch_sw_breakpoint_from_kind (gdbarch,
+ tic6x_sw_breakpoint_from_kind);
set_gdbarch_unwind_pc (gdbarch, tic6x_unwind_pc);
set_gdbarch_unwind_sp (gdbarch, tic6x_unwind_sp);