diff options
author | Andrew Stubbs <andrew.stubbs@st.com> | 2005-11-23 16:30:36 +0000 |
---|---|---|
committer | Andrew Stubbs <andrew.stubbs@st.com> | 2005-11-23 16:30:36 +0000 |
commit | 7db8399e738e407654f0f07fcf5002e6e5c73e6e (patch) | |
tree | 58979737238738f6fe7ea840e46684d298eb9c72 /gdb/sh-tdep.c | |
parent | bad36eacdad37042c4efb1c5fbf48476b47de82b (diff) | |
download | gdb-7db8399e738e407654f0f07fcf5002e6e5c73e6e.zip gdb-7db8399e738e407654f0f07fcf5002e6e5c73e6e.tar.gz gdb-7db8399e738e407654f0f07fcf5002e6e5c73e6e.tar.bz2 |
2005-11-23 Andrew Stubbs <andrew.stubbs@st.com>
* sh-tdep.c (do_fv_register_info, do_dr_register_info): Delete function.
(do_bank_register_info, do_bank_register_info): Likewise.
(sh_print_pseudo_register, sh_do_fp_register): Likewise.
(sh_do_register, sh_print_register, sh_print_registers_info): Likewise.
(sh_gdbarch_init): Remove call to set_gdbarch_print_registers_info().
Diffstat (limited to 'gdb/sh-tdep.c')
-rw-r--r-- | gdb/sh-tdep.c | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c index 30fcf2f..23bd3f0 100644 --- a/gdb/sh-tdep.c +++ b/gdb/sh-tdep.c @@ -1974,184 +1974,6 @@ sh_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, } } -/* Floating point vector of 4 float registers. */ -static void -do_fv_register_info (struct gdbarch *gdbarch, struct ui_file *file, - int fv_regnum) -{ - int first_fp_reg_num = fv_reg_base_num (fv_regnum); - fprintf_filtered (file, "fv%d\t0x%08x\t0x%08x\t0x%08x\t0x%08x\n", - fv_regnum - FV0_REGNUM, - (int) read_register (first_fp_reg_num), - (int) read_register (first_fp_reg_num + 1), - (int) read_register (first_fp_reg_num + 2), - (int) read_register (first_fp_reg_num + 3)); -} - -/* Double precision registers. */ -static void -do_dr_register_info (struct gdbarch *gdbarch, struct ui_file *file, - int dr_regnum) -{ - int first_fp_reg_num = dr_reg_base_num (dr_regnum); - - fprintf_filtered (file, "dr%d\t0x%08x%08x\n", - dr_regnum - DR0_REGNUM, - (int) read_register (first_fp_reg_num), - (int) read_register (first_fp_reg_num + 1)); -} -static void -do_bank_register_info (struct gdbarch *gdbarch, struct ui_file *file) -{ - fprintf_filtered (file, "bank %d\n", - (int) read_register (BANK_REGNUM)); -} - -static void -sh_print_pseudo_register (struct gdbarch *gdbarch, struct ui_file *file, - int regnum) -{ - if (regnum < NUM_REGS || regnum >= NUM_REGS + NUM_PSEUDO_REGS) - internal_error (__FILE__, __LINE__, - _("Invalid pseudo register number %d\n"), regnum); - else if (regnum == PSEUDO_BANK_REGNUM) - do_bank_register_info (gdbarch, file); - else if (regnum >= DR0_REGNUM && regnum <= DR_LAST_REGNUM) - do_dr_register_info (gdbarch, file, regnum); - else if (regnum >= FV0_REGNUM && regnum <= FV_LAST_REGNUM) - do_fv_register_info (gdbarch, file, regnum); -} - -static void -sh_do_fp_register (struct gdbarch *gdbarch, struct ui_file *file, int regnum) -{ /* do values for FP (float) regs */ - char *raw_buffer; - double flt; /* double extracted from raw hex data */ - int inv; - int j; - - /* Allocate space for the float. */ - raw_buffer = (char *) alloca (register_size (gdbarch, FP0_REGNUM)); - - /* Get the data in raw format. */ - if (!frame_register_read (get_selected_frame (NULL), regnum, raw_buffer)) - error (_("can't read register %d (%s)"), regnum, REGISTER_NAME (regnum)); - - /* Get the register as a number */ - flt = unpack_double (builtin_type_float, raw_buffer, &inv); - - /* Print the name and some spaces. */ - fputs_filtered (REGISTER_NAME (regnum), file); - print_spaces_filtered (15 - strlen (REGISTER_NAME (regnum)), file); - - /* Print the value. */ - if (inv) - fprintf_filtered (file, "<invalid float>"); - else - fprintf_filtered (file, "%-10.9g", flt); - - /* Print the fp register as hex. */ - fprintf_filtered (file, "\t(raw 0x"); - for (j = 0; j < register_size (gdbarch, regnum); j++) - { - int idx = (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG - ? j - : register_size (gdbarch, regnum) - 1 - j); - fprintf_filtered (file, "%02x", (unsigned char) raw_buffer[idx]); - } - fprintf_filtered (file, ")"); - fprintf_filtered (file, "\n"); -} - -static void -sh_do_register (struct gdbarch *gdbarch, struct ui_file *file, int regnum) -{ - char raw_buffer[MAX_REGISTER_SIZE]; - - fputs_filtered (REGISTER_NAME (regnum), file); - print_spaces_filtered (15 - strlen (REGISTER_NAME (regnum)), file); - - /* Get the data in raw format. */ - if (!frame_register_read (get_selected_frame (NULL), regnum, raw_buffer)) - fprintf_filtered (file, "*value not available*\n"); - - val_print (gdbarch_register_type (gdbarch, regnum), raw_buffer, 0, 0, - file, 'x', 1, 0, Val_pretty_default); - fprintf_filtered (file, "\t"); - val_print (gdbarch_register_type (gdbarch, regnum), raw_buffer, 0, 0, - file, 0, 1, 0, Val_pretty_default); - fprintf_filtered (file, "\n"); -} - -static void -sh_print_register (struct gdbarch *gdbarch, struct ui_file *file, int regnum) -{ - if (regnum < 0 || regnum >= NUM_REGS + NUM_PSEUDO_REGS) - internal_error (__FILE__, __LINE__, - _("Invalid register number %d\n"), regnum); - - else if (regnum >= 0 && regnum < NUM_REGS) - { - if (TYPE_CODE (gdbarch_register_type (gdbarch, regnum)) == - TYPE_CODE_FLT) - sh_do_fp_register (gdbarch, file, regnum); /* FP regs */ - else - sh_do_register (gdbarch, file, regnum); /* All other regs */ - } - - else if (regnum < NUM_REGS + NUM_PSEUDO_REGS) - { - sh_print_pseudo_register (gdbarch, file, regnum); - } -} - -static void -sh_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, - struct frame_info *frame, int regnum, int fpregs) -{ - if (regnum != -1) /* do one specified register */ - { - if (*(REGISTER_NAME (regnum)) == '\0') - error (_("Not a valid register for the current processor type")); - - sh_print_register (gdbarch, file, regnum); - } - else - /* do all (or most) registers */ - { - for (regnum = 0; regnum < NUM_REGS; ++regnum) - { - /* If the register name is empty, it is undefined for this - processor, so don't display anything. */ - if (REGISTER_NAME (regnum) == NULL - || *(REGISTER_NAME (regnum)) == '\0') - continue; - - if (TYPE_CODE (gdbarch_register_type (gdbarch, regnum)) == - TYPE_CODE_FLT) - { - /* true for "INFO ALL-REGISTERS" command */ - if (fpregs) - sh_do_fp_register (gdbarch, file, regnum); /* FP regs */ - } - else - sh_do_register (gdbarch, file, regnum); /* All other regs */ - } - - if (regnum == PSEUDO_BANK_REGNUM - && REGISTER_NAME (regnum) - && *REGISTER_NAME (regnum)) - sh_print_pseudo_register (gdbarch, file, regnum++); - - if (fpregs) - while (regnum < NUM_REGS + NUM_PSEUDO_REGS) - { - sh_print_pseudo_register (gdbarch, file, regnum); - regnum++; - } - } -} - static int sh_dsp_register_sim_regno (int nr) { @@ -2550,8 +2372,6 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_register_type (gdbarch, sh_default_register_type); - set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info); - set_gdbarch_breakpoint_from_pc (gdbarch, sh_breakpoint_from_pc); set_gdbarch_print_insn (gdbarch, gdb_print_insn_sh); |