+2003-07-27 Andrew Cagney <cagney@redhat.com>
+
+ Patch from 2003-07-22 Kei Sakamoto <sakamoto.kei@renesas.com>:
+ * m32r-tdep.c (m32r_memory_insert_breakpoint): Fix code style -
+ operator at start and not end of line.
+ (decode_prologue): Ditto.
+ (m32r_frame_unwind_cache, m32r_unwind_sp, m32r_unwind_pc): Use
+ frame_unwind_register_unsigned instead of
+ frame_unwind_unsigned_register.
+ (m32r_read_pc): Use regcache_cooked_read_unsigned instead of
+ read_register.
+ (m32r_push_dummy_call): Use register_size instead of
+ REGISTER_RAW_SIZE.
+ (m32r_frame_sniffer): Replace m32r_frame_p.
+ (m32r_gdbarch_init): Call frame_unwind_append_sniffer.
+ * m32r-rom.c (report_transfer_performance): Delete extern
+ declaration.
+ (m32r_load, m32r_upload_command): Use print_transfer_performance
+ instead of report_transfer_performance.
+ (_initialize_m32r_rom): Use add_setshow_cmd instead of add_set_cmd
+ / add_show_from_set.
+
2003-07-26 Andrew Cagney <cagney@redhat.com>
* m68hc11-tdep.c (m68hc11_gdbarch_init): Set non-deprecated
;;
ia64*-*-*) gdb_target=ia64 ;;
-# OBSOLETE m32r-*-elf*) gdb_target=m32r ;;
+m32r-*-*) gdb_target=m32r ;;
m68hc11*-*-*|m6811*-*-*) gdb_target=m68hc11 ;;
case "${gdb_target}" in
d10v) gdb_multi_arch=yes ;;
+m32r) gdb_multi_arch=yes ;;
fbsd64) gdb_multi_arch=yes ;;
m68hc11) gdb_multi_arch=yes ;;
mn10300) gdb_multi_arch=yes ;;
#include <ctype.h>
#include "regcache.h"
-extern void report_transfer_performance (unsigned long, time_t, time_t);
-
/*
* All this stuff just to get my host computer's IP address!
*/
#endif
end_time = time (NULL);
printf_filtered ("Start address 0x%lx\n", bfd_get_start_address (abfd));
- report_transfer_performance (data_count, start_time, end_time);
+ print_transfer_performance (gdb_stdout, data_count, 0,
+ end_time - start_time);
/* Finally, make the PC point at the start address */
if (exec_bfd)
if (regno == SPI_REGNUM || regno == SPU_REGNUM)
{ /* special handling for stack pointer (spu or spi) */
- unsigned long stackmode = read_register (PSW_REGNUM) & 0x80;
+ ULONGEST stackmode, psw;
+ regcache_cooked_read_unsigned (current_regcache, PSW_REGNUM, &psw);
+ stackmode = psw & 0x80;
if (regno == SPI_REGNUM && !stackmode) /* SP == SPI */
monitor_supply_register (SP_REGNUM, val);
}
/* Finally, make the PC point at the start address */
write_pc (bfd_get_start_address (abfd));
- report_transfer_performance (data_count, start_time, end_time);
printf_filtered ("Start address 0x%lx\n", bfd_get_start_address (abfd));
+ print_transfer_performance (gdb_stdout, data_count, 0,
+ end_time - start_time);
}
inferior_ptid = null_ptid; /* No process now */
mon2000_ops.to_open = mon2000_open;
add_target (&mon2000_ops);
- add_show_from_set
- (add_set_cmd ("download-path", class_obscure, var_string,
- (char *) &download_path,
- "Set the default path for downloadable SREC files.",
- &setlist), &showlist);
-
- add_show_from_set
- (add_set_cmd ("board-address", class_obscure, var_string,
- (char *) &board_addr,
- "Set IP address for M32R-EVA target board.",
- &setlist), &showlist);
-
- add_show_from_set
- (add_set_cmd ("server-address", class_obscure, var_string,
- (char *) &server_addr,
- "Set IP address for download server (GDB's host computer).",
- &setlist), &showlist);
+ add_setshow_cmd ("download-path", class_obscure,
+ var_string, &download_path,
+ "Set the default path for downloadable SREC files.",
+ "Show the default path for downloadable SREC files.",
+ NULL, NULL, &setlist, &showlist);
+
+ add_setshow_cmd ("board-address", class_obscure,
+ var_string, &board_addr,
+ "Set IP address for M32R-EVA target board.",
+ "Show IP address for M32R-EVA target board.",
+ NULL, NULL, &setlist, &showlist);
+
+ add_setshow_cmd ("server-address", class_obscure,
+ var_string, &server_addr,
+ "Set IP address for download server (GDB's host computer).",
+ "Show IP address for download server (GDB's host computer).",
+ NULL, NULL, &setlist, &showlist);
add_com ("upload", class_obscure, m32r_upload_command,
"Upload the srec file via the monitor's Ethernet upload capability.");
/* Determine appropriate breakpoint contents and size for this address. */
if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
{
- if (((addr & 3) == 0) &&
- ((contents_cache[0] & 0x80) || (contents_cache[2] & 0x80)))
+ if (((addr & 3) == 0)
+ && ((contents_cache[0] & 0x80) || (contents_cache[2] & 0x80)))
{
static unsigned char insn[] = M32R_BE_BREAKPOINT32;
bp = insn;
}
else
{ /* little-endian */
- if (((addr & 3) == 0) &&
- ((contents_cache[1] & 0x80) || (contents_cache[3] & 0x80)))
+ if (((addr & 3) == 0)
+ && ((contents_cache[1] & 0x80) || (contents_cache[3] & 0x80)))
{
static unsigned char insn[] = M32R_LE_BREAKPOINT32;
bp = insn;
/* Determine appropriate breakpoint contents and size for this address. */
if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
{
- if (((addr & 3) == 0) &&
- ((contents_cache[0] & 0x80) || (contents_cache[2] & 0x80)))
+ if (((addr & 3) == 0)
+ && ((contents_cache[0] & 0x80) || (contents_cache[2] & 0x80)))
{
static unsigned char insn[] = M32R_BE_BREAKPOINT32;
bplen = sizeof (insn);
else
{
/* little-endian */
- if (((addr & 3) == 0) &&
- ((contents_cache[1] & 0x80) || (contents_cache[3] & 0x80)))
+ if (((addr & 3) == 0)
+ && ((contents_cache[1] & 0x80) || (contents_cache[3] & 0x80)))
{
static unsigned char insn[] = M32R_BE_BREAKPOINT32;
bplen = sizeof (insn);
}
else
{
- if (((insn >> 8) == 0xe4) && /* ld24 r4, xxxxxx; sub sp, r4 */
- read_memory_unsigned_integer (current_pc + 2,
- 2) == 0x0f24)
+ if (((insn >> 8) == 0xe4) /* ld24 r4, xxxxxx; sub sp, r4 */
+ && read_memory_unsigned_integer (current_pc + 2,
+ 2) == 0x0f24)
/* subtract 24 bit sign-extended negative-offset */
{
insn = read_memory_unsigned_integer (current_pc - 2, 4);
short n = op & 0xffff;
info->sp_offset += n;
}
- else if (((op >> 8) == 0xe4) && /* ld24 r4, xxxxxx; sub sp, r4 */
- get_frame_memory_unsigned (next_frame, pc + 4,
- 2) == 0x0f24)
+ else if (((op >> 8) == 0xe4) /* ld24 r4, xxxxxx; sub sp, r4 */
+ && get_frame_memory_unsigned (next_frame, pc + 4,
+ 2) == 0x0f24)
{
unsigned long n = op & 0xffffff;
info->sp_offset += n;
/* The SP was moved to the FP. This indicates that a new frame
was created. Get THIS frame's FP value by unwinding it from
the next frame. */
- frame_unwind_unsigned_register (next_frame, M32R_FP_REGNUM, &this_base);
+ this_base = frame_unwind_register_unsigned (next_frame, M32R_FP_REGNUM);
/* The FP points at the last saved register. Adjust the FP back
to before the first saved register giving the SP. */
prev_sp = this_base + info->size;
{
/* Assume that the FP is this frame's SP but with that pushed
stack space added back. */
- frame_unwind_unsigned_register (next_frame, M32R_SP_REGNUM, &this_base);
+ this_base = frame_unwind_register_unsigned (next_frame, M32R_SP_REGNUM);
prev_sp = this_base + info->size;
}
m32r_read_pc (ptid_t ptid)
{
ptid_t save_ptid;
- CORE_ADDR pc;
+ ULONGEST pc;
save_ptid = inferior_ptid;
inferior_ptid = ptid;
- pc = (int) read_register (M32R_PC_REGNUM);
+ regcache_cooked_read_unsigned (current_regcache, M32R_PC_REGNUM, &pc);
inferior_ptid = save_ptid;
return pc;
}
static CORE_ADDR
m32r_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
{
- ULONGEST sp;
- frame_unwind_unsigned_register (next_frame, M32R_SP_REGNUM, &sp);
- return sp;
+ return frame_unwind_register_unsigned (next_frame, M32R_SP_REGNUM);
}
else if (len < 4)
{
/* value gets right-justified in the register or stack word */
- memcpy (valbuf + (REGISTER_RAW_SIZE (argreg) - len),
+ memcpy (valbuf + (register_size (gdbarch, argreg) - len),
(char *) VALUE_CONTENTS (args[argnum]), len);
val = valbuf;
}
{
/* there's room in a register */
regval =
- extract_unsigned_integer (val, REGISTER_RAW_SIZE (argreg));
+ extract_unsigned_integer (val,
+ register_size (gdbarch, argreg));
regcache_cooked_write_unsigned (regcache, argreg++, regval);
}
/* Store the value 4 bytes at a time. This means that things
larger than 4 bytes may go partly in registers and partly
on the stack. */
- len -= REGISTER_RAW_SIZE (argreg);
- val += REGISTER_RAW_SIZE (argreg);
+ len -= register_size (gdbarch, argreg);
+ val += register_size (gdbarch, argreg);
}
}
static CORE_ADDR
m32r_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
{
- ULONGEST pc;
- frame_unwind_unsigned_register (next_frame, M32R_PC_REGNUM, &pc);
- return pc;
+ return frame_unwind_register_unsigned (next_frame, M32R_PC_REGNUM);
}
/* Given a GDB frame, determine the address of the calling function's
};
static const struct frame_unwind *
-m32r_frame_p (CORE_ADDR pc)
+m32r_frame_sniffer (struct frame_info *next_frame)
{
return &m32r_frame_unwind;
}
set_gdbarch_frame_align (gdbarch, m32r_frame_align);
- frame_unwind_append_predicate (gdbarch, m32r_frame_p);
+ frame_unwind_append_sniffer (gdbarch, m32r_frame_sniffer);
frame_base_set_default (gdbarch, &m32r_frame_base);
/* Methods for saving / extracting a dummy frame's ID. The ID's