X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fm88k-tdep.c;h=9f1688abf0abfc63262450fcace995564355f30f;hb=55b064321eed6cccf511fd698c732890e3ba4c6b;hp=94ea409525d4663d7c5c6643f053fa88bf2a3ede;hpb=9a3c826307ae6ad4dd6fbd72431e7d9d4947f1dd;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/m88k-tdep.c b/gdb/m88k-tdep.c index 94ea409525..9f1688abf0 100644 --- a/gdb/m88k-tdep.c +++ b/gdb/m88k-tdep.c @@ -1,6 +1,6 @@ /* Target-dependent code for the Motorola 88000 series. - Copyright (C) 2004-2015 Free Software Foundation, Inc. + Copyright (C) 2004-2017 Free Software Foundation, Inc. This file is part of GDB. @@ -30,6 +30,7 @@ #include "symtab.h" #include "trad-frame.h" #include "value.h" +#include #include "m88k-tdep.h" @@ -48,7 +49,7 @@ m88k_fetch_instruction (CORE_ADDR pc, enum bfd_endian byte_order) static const char * m88k_register_name (struct gdbarch *gdbarch, int regnum) { - static char *register_names[] = + static const char *register_names[] = { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", @@ -96,16 +97,11 @@ m88k_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr) encode a breakpoint instruction, store the length of the string in *LEN and optionally adjust *PC to point to the correct memory location for inserting the breakpoint. */ - -static const gdb_byte * -m88k_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pc, int *len) -{ - /* tb 0,r0,511 */ - static gdb_byte break_insn[] = { 0xf0, 0x00, 0xd1, 0xff }; - *len = sizeof (break_insn); - return break_insn; -} +/* tb 0,r0,511 */ +constexpr gdb_byte m88k_break_insn[] = { 0xf0, 0x00, 0xd1, 0xff }; + +typedef BP_MANIPULATION (m88k_break_insn) m88k_breakpoint; static CORE_ADDR m88k_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame) @@ -165,6 +161,7 @@ m88k_integral_or_pointer_p (const struct type *type) return 1; case TYPE_CODE_PTR: case TYPE_CODE_REF: + case TYPE_CODE_RVALUE_REF: { /* Allow only 32-bit pointers. */ return (TYPE_LENGTH (type) == 4); @@ -558,7 +555,7 @@ m88k_analyze_prologue (struct gdbarch *gdbarch, prologue. */ if (cache->fp_offset != -1 && cache->saved_regs[M88K_R1_REGNUM].addr != -1) - return min (pc, end); + return std::min (pc, end); break; case M88K_PIA_NOTE_ST: @@ -566,7 +563,7 @@ m88k_analyze_prologue (struct gdbarch *gdbarch, /* If no frame has been allocated, the stores aren't part of the prologue. */ if (cache->sp_offset == 0) - return min (pc, end); + return std::min (pc, end); /* Record location of saved registers. */ { @@ -583,7 +580,7 @@ m88k_analyze_prologue (struct gdbarch *gdbarch, /* A second stack pointer adjustment isn't part of the prologue. */ if (cache->sp_offset != 0) - return min (pc, end); + return std::min (pc, end); /* Store stack pointer adjustment. */ cache->sp_offset = -SUBU_OFFSET (insn); @@ -593,7 +590,7 @@ m88k_analyze_prologue (struct gdbarch *gdbarch, /* A second frame pointer assignment isn't part of the prologue. */ if (cache->fp_offset != -1) - return min (pc, end); + return std::min (pc, end); /* Record frame pointer assignment. */ cache->fp_offset = ADDU_OFFSET (insn); @@ -604,12 +601,12 @@ m88k_analyze_prologue (struct gdbarch *gdbarch, the instruction in the delay slot might be. Limit the prologue analysis to the delay slot and record the branch instruction as the end of the prologue. */ - limit = min (limit, pc + 2 * M88K_INSN_SIZE); + limit = std::min (limit, pc + 2 * M88K_INSN_SIZE); end = pc; break; case M88K_PIA_NOTE_PROLOGUE_END: - return min (pc, end); + return std::min (pc, end); } pc += M88K_INSN_SIZE; @@ -841,8 +838,6 @@ m88k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_iterate_over_regset_sections (gdbarch, m88k_iterate_over_regset_sections); - set_gdbarch_print_insn (gdbarch, print_insn_m88k); - set_gdbarch_skip_prologue (gdbarch, m88k_skip_prologue); /* Stack grows downward. */ @@ -856,7 +851,8 @@ m88k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_return_value (gdbarch, m88k_return_value); set_gdbarch_addr_bits_remove (gdbarch, m88k_addr_bits_remove); - set_gdbarch_breakpoint_from_pc (gdbarch, m88k_breakpoint_from_pc); + set_gdbarch_breakpoint_kind_from_pc (gdbarch, m88k_breakpoint::kind_from_pc); + set_gdbarch_sw_breakpoint_from_kind (gdbarch, m88k_breakpoint::bp_from_kind); set_gdbarch_unwind_pc (gdbarch, m88k_unwind_pc); set_gdbarch_write_pc (gdbarch, m88k_write_pc); @@ -865,10 +861,6 @@ m88k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } - - -/* Provide a prototype to silence -Wmissing-prototypes. */ -void _initialize_m88k_tdep (void); void _initialize_m88k_tdep (void)