X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Ffrv-tdep.c;h=5c09b7a628fd6a4ae8309d797f9f9755cd12722c;hb=04180708eff91ddd3a9572bd4b517ccce5850db0;hp=19ff87eeb72b4ad5a4185fb711e80bf19d956fd4;hpb=8d7493201cf01c9836403695f67f7e157341bfd5;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/frv-tdep.c b/gdb/frv-tdep.c index 19ff87eeb7..5c09b7a628 100644 --- a/gdb/frv-tdep.c +++ b/gdb/frv-tdep.c @@ -1,6 +1,6 @@ /* Target-dependent code for the Fujitsu FR-V, for GDB, the GNU Debugger. - Copyright (C) 2002-2015 Free Software Foundation, Inc. + Copyright (C) 2002-2016 Free Software Foundation, Inc. This file is part of GDB. @@ -424,13 +424,9 @@ frv_register_sim_regno (struct gdbarch *gdbarch, int reg) internal_error (__FILE__, __LINE__, _("Bad register number %d"), reg); } -static const unsigned char * -frv_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenp) -{ - static unsigned char breakpoint[] = {0xc0, 0x70, 0x00, 0x01}; - *lenp = sizeof (breakpoint); - return breakpoint; -} +constexpr gdb_byte frv_break_insn[] = {0xc0, 0x70, 0x00, 0x01}; + +typedef BP_MANIPULATION (frv_break_insn) frv_breakpoint; /* Define the maximum number of instructions which may be packed into a bundle (VLIW instruction). */ @@ -1099,7 +1095,7 @@ frv_frame_unwind_cache (struct frame_info *this_frame, struct frv_unwind_cache *info; if ((*this_prologue_cache)) - return (*this_prologue_cache); + return (struct frv_unwind_cache *) (*this_prologue_cache); info = FRAME_OBSTACK_ZALLOC (struct frv_unwind_cache); (*this_prologue_cache) = info; @@ -1481,6 +1477,7 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) { case bfd_mach_frv: case bfd_mach_frvsimple: + case bfd_mach_fr300: case bfd_mach_fr500: case bfd_mach_frvtomcat: case bfd_mach_fr550: @@ -1536,7 +1533,8 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_skip_prologue (gdbarch, frv_skip_prologue); set_gdbarch_skip_main_prologue (gdbarch, frv_skip_main_prologue); - set_gdbarch_breakpoint_from_pc (gdbarch, frv_breakpoint_from_pc); + set_gdbarch_breakpoint_kind_from_pc (gdbarch, frv_breakpoint::kind_from_pc); + set_gdbarch_sw_breakpoint_from_kind (gdbarch, frv_breakpoint::bp_from_kind); set_gdbarch_adjust_breakpoint_address (gdbarch, frv_adjust_breakpoint_address); @@ -1562,6 +1560,7 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) { case bfd_mach_frv: case bfd_mach_frvsimple: + case bfd_mach_fr300: case bfd_mach_fr500: case bfd_mach_frvtomcat: /* fr500-style hardware debugging support. */