/* Target-dependent code for the Renesas RX for GDB, the GNU debugger.
- Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2008-2012 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
RX_FP_REGNUM = 6,
RX_R15_REGNUM = 15,
RX_PC_REGNUM = 19,
- RX_NUM_REGS = 25
+ RX_ACC_REGNUM = 25,
+ RX_NUM_REGS = 26
};
/* Architecture specific data. */
"r13",
"r14",
"r15",
- "isp",
"usp",
- "intb",
- "pc",
+ "isp",
"psw",
- "bpc",
+ "pc",
+ "intb",
"bpsw",
- "vct",
- "fpsw"
+ "bpc",
+ "fintv",
+ "fpsw",
+ "acc"
};
return reg_names[regnr];
{
if (reg_nr == RX_PC_REGNUM)
return builtin_type (gdbarch)->builtin_func_ptr;
+ else if (reg_nr == RX_ACC_REGNUM)
+ return builtin_type (gdbarch)->builtin_unsigned_long_long;
else
return builtin_type (gdbarch)->builtin_unsigned_long;
}
if (value.kind == pvk_register
&& value.k == 0
&& pv_is_register (addr, RX_SP_REGNUM)
- && size == register_size (target_gdbarch, value.reg))
+ && size == register_size (target_gdbarch (), value.reg))
result->reg_offset[value.reg] = addr.k;
}
result->reg_offset[rn] = 1;
}
- stack = make_pv_area (RX_SP_REGNUM, gdbarch_addr_bit (target_gdbarch));
+ stack = make_pv_area (RX_SP_REGNUM, gdbarch_addr_bit (target_gdbarch ()));
back_to = make_cleanup_free_pv_area (stack);
/* The call instruction has saved the return address on the stack. */
}
else if (opc.id == RXO_branch
&& opc.op[0].type == RX_Operand_Immediate
- && opc.op[1].type == RX_Operand_Condition
&& next_pc < opc.op[0].addend)
{
/* When a loop appears as the first statement of a function
static CORE_ADDR
rx_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
{
- char *name;
+ const char *name;
CORE_ADDR func_addr, func_end;
struct rx_prologue p;
static const struct frame_unwind rx_frame_unwind = {
NORMAL_FRAME,
+ default_frame_unwind_stop_reason,
rx_frame_this_id,
rx_frame_prev_register,
NULL,
/* Implement the "return_value" gdbarch method. */
static enum return_value_convention
rx_return_value (struct gdbarch *gdbarch,
- struct type *func_type,
+ struct value *function,
struct type *valtype,
struct regcache *regcache,
gdb_byte *readbuf, const gdb_byte *writebuf)
}
/* Implement the "breakpoint_from_pc" gdbarch method. */
-const gdb_byte *
+static const gdb_byte *
rx_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
{
static gdb_byte breakpoint[] = { 0x00 };
return gdbarch;
}
+/* -Wmissing-prototypes */
+extern initialize_file_ftype _initialize_rx_tdep;
+
/* Register the above initialization routine. */
+
void
_initialize_rx_tdep (void)
{