From 7e3dd49eac3a7ecbb7ed9653a56e9f93275456f3 Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Sun, 27 Jul 2003 15:38:16 +0000 Subject: [PATCH] 2003-07-27 Andrew Cagney Patch from 2003-07-22 Kei Sakamoto : * 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. --- gdb/ChangeLog | 22 ++++++++++++++++++ gdb/configure.tgt | 3 ++- gdb/m32r-rom.c | 46 ++++++++++++++++++++------------------ gdb/m32r-tdep.c | 57 ++++++++++++++++++++++------------------------- 4 files changed, 75 insertions(+), 53 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7e8a1ccff75..37ce3f60198 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,25 @@ +2003-07-27 Andrew Cagney + + Patch from 2003-07-22 Kei Sakamoto : + * 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 * m68hc11-tdep.c (m68hc11_gdbarch_init): Set non-deprecated diff --git a/gdb/configure.tgt b/gdb/configure.tgt index 14dedbeefe2..39c2cae9e70 100644 --- a/gdb/configure.tgt +++ b/gdb/configure.tgt @@ -114,7 +114,7 @@ ia64-*-linux*) gdb_target=linux ;; ia64*-*-*) gdb_target=ia64 ;; -# OBSOLETE m32r-*-elf*) gdb_target=m32r ;; +m32r-*-*) gdb_target=m32r ;; m68hc11*-*-*|m6811*-*-*) gdb_target=m68hc11 ;; @@ -265,6 +265,7 @@ esac 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 ;; diff --git a/gdb/m32r-rom.c b/gdb/m32r-rom.c index 54e2cd9e39b..444a6cd09fd 100644 --- a/gdb/m32r-rom.c +++ b/gdb/m32r-rom.c @@ -40,8 +40,6 @@ #include #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! */ @@ -165,7 +163,8 @@ m32r_load (char *filename, int from_tty) #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) @@ -264,7 +263,9 @@ m32r_supply_register (char *regname, int regnamelen, char *val, int vallen) 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); @@ -568,8 +569,9 @@ m32r_upload_command (char *args, int from_tty) } /* 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 */ @@ -610,23 +612,23 @@ Specify the serial device it is connected to (e.g. /dev/ttya)."; 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."); diff --git a/gdb/m32r-tdep.c b/gdb/m32r-tdep.c index a40f67d17d5..9de8bdd412c 100644 --- a/gdb/m32r-tdep.c +++ b/gdb/m32r-tdep.c @@ -111,8 +111,8 @@ m32r_memory_insert_breakpoint (CORE_ADDR addr, char *contents_cache) /* 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; @@ -127,8 +127,8 @@ m32r_memory_insert_breakpoint (CORE_ADDR addr, char *contents_cache) } 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; @@ -156,8 +156,8 @@ m32r_memory_remove_breakpoint (CORE_ADDR addr, char *contents_cache) /* 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); @@ -171,8 +171,8 @@ m32r_memory_remove_breakpoint (CORE_ADDR addr, char *contents_cache) 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); @@ -362,9 +362,9 @@ decode_prologue (CORE_ADDR start_pc, CORE_ADDR scan_limit, } 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); @@ -564,9 +564,9 @@ m32r_frame_unwind_cache (struct frame_info *next_frame, 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; @@ -617,7 +617,7 @@ m32r_frame_unwind_cache (struct frame_info *next_frame, /* 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; @@ -626,7 +626,7 @@ m32r_frame_unwind_cache (struct frame_info *next_frame, { /* 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; } @@ -657,11 +657,11 @@ static CORE_ADDR 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; } @@ -680,9 +680,7 @@ m32r_write_pc (CORE_ADDR val, ptid_t ptid) 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); } @@ -744,7 +742,7 @@ m32r_push_dummy_call (struct gdbarch *gdbarch, CORE_ADDR func_addr, 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; } @@ -763,15 +761,16 @@ m32r_push_dummy_call (struct gdbarch *gdbarch, CORE_ADDR func_addr, { /* 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); } } @@ -811,9 +810,7 @@ m32r_extract_return_value (struct type *type, struct regcache *regcache, 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 @@ -884,7 +881,7 @@ static const struct frame_unwind m32r_frame_unwind = { }; static const struct frame_unwind * -m32r_frame_p (CORE_ADDR pc) +m32r_frame_sniffer (struct frame_info *next_frame) { return &m32r_frame_unwind; } @@ -966,7 +963,7 @@ m32r_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) 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 -- 2.30.2