* sh-tdep.h (sh_show_regs): Add FRAME parameter.
authorUlrich Weigand <uweigand@de.ibm.com>
Fri, 15 Jun 2007 22:31:01 +0000 (22:31 +0000)
committerUlrich Weigand <uweigand@de.ibm.com>
Fri, 15 Jun 2007 22:31:01 +0000 (22:31 +0000)
* sh-tdep.c (sh_show_regs): Likewise.
(sh_show_regs_command): Pass current frame to sh_show_regs routine.
(sh_generic_show_regs): Add FRAME parameter.  Use register
values from that frame instead of calling read_register.
(sh3_show_regs, sh2e_show_regs, sh2a_show_regs, sh2a_nofpu_show_regs,
sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh4_nofpu_show_regs,
sh_dsp_show_regs): Likewise.
* sh64-tdep.c (sh64_show_media_regs, sh64_show_compact_regs,
sh64_show_regs): Likewise.

gdb/ChangeLog
gdb/sh-tdep.c
gdb/sh-tdep.h
gdb/sh64-tdep.c

index 808c9d4..a9583a0 100644 (file)
@@ -1,5 +1,18 @@
 2007-06-15  Ulrich Weigand  <uweigand@de.ibm.com>
 
+       * sh-tdep.h (sh_show_regs): Add FRAME parameter.
+       * sh-tdep.c (sh_show_regs): Likewise.
+       (sh_show_regs_command): Pass current frame to sh_show_regs routine.
+       (sh_generic_show_regs): Add FRAME parameter.  Use register
+       values from that frame instead of calling read_register.
+       (sh3_show_regs, sh2e_show_regs, sh2a_show_regs, sh2a_nofpu_show_regs,
+       sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh4_nofpu_show_regs,
+       sh_dsp_show_regs): Likewise.
+       * sh64-tdep.c (sh64_show_media_regs, sh64_show_compact_regs,
+       sh64_show_regs): Likewise.
+
+2007-06-15  Ulrich Weigand  <uweigand@de.ibm.com>
+
        * mips-tdep.c (deprecated_mips_set_processor_regs_hack): Read from
        current regcache instead of calling read_register.
 
index 0d2b5ea..19f5a40 100644 (file)
@@ -56,7 +56,7 @@
 /* registers numbers shared with the simulator */
 #include "gdb/sim-sh.h"
 
-static void (*sh_show_regs) (void);
+static void (*sh_show_regs) (struct frame_info *);
 
 #define SH_NUM_REGS 67
 
@@ -1332,501 +1332,625 @@ sh_return_value_fpu (struct gdbarch *gdbarch, struct type *type,
 /* Print the registers in a form similar to the E7000 */
 
 static void
-sh_generic_show_regs (void)
+sh_generic_show_regs (struct frame_info *frame)
 {
-  printf_filtered ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
-                  paddr (read_register (PC_REGNUM)),
-                  (long) read_register (SR_REGNUM),
-                  (long) read_register (PR_REGNUM),
-                  (long) read_register (MACH_REGNUM));
+  printf_filtered
+    ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
+     paddr (get_frame_register_unsigned (frame, PC_REGNUM)),
+     (long) get_frame_register_unsigned (frame, SR_REGNUM),
+     (long) get_frame_register_unsigned (frame, PR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACH_REGNUM));
 
-  printf_filtered (
-       "     GBR %08lx      VBR %08lx                       MACL %08lx\n",
-                  (long) read_register (GBR_REGNUM),
-                  (long) read_register (VBR_REGNUM),
-                  (long) read_register (MACL_REGNUM));
+  printf_filtered
+    ("     GBR %08lx      VBR %08lx                       MACL %08lx\n",
+     (long) get_frame_register_unsigned (frame, GBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, VBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACL_REGNUM));
 
   printf_filtered
     ("R0-R7    %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-     (long) read_register (0), (long) read_register (1),
-     (long) read_register (2), (long) read_register (3),
-     (long) read_register (4), (long) read_register (5),
-     (long) read_register (6), (long) read_register (7));
-  printf_filtered ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (8), (long) read_register (9),
-                  (long) read_register (10), (long) read_register (11),
-                  (long) read_register (12), (long) read_register (13),
-                  (long) read_register (14), (long) read_register (15));
+     (long) get_frame_register_unsigned (frame, 0),
+     (long) get_frame_register_unsigned (frame, 1),
+     (long) get_frame_register_unsigned (frame, 2),
+     (long) get_frame_register_unsigned (frame, 3),
+     (long) get_frame_register_unsigned (frame, 4),
+     (long) get_frame_register_unsigned (frame, 5),
+     (long) get_frame_register_unsigned (frame, 6),
+     (long) get_frame_register_unsigned (frame, 7));
+  printf_filtered
+    ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, 8),
+     (long) get_frame_register_unsigned (frame, 9),
+     (long) get_frame_register_unsigned (frame, 10),
+     (long) get_frame_register_unsigned (frame, 11),
+     (long) get_frame_register_unsigned (frame, 12),
+     (long) get_frame_register_unsigned (frame, 13),
+     (long) get_frame_register_unsigned (frame, 14),
+     (long) get_frame_register_unsigned (frame, 15));
 }
 
 static void
-sh3_show_regs (void)
+sh3_show_regs (struct frame_info *frame)
 {
-  printf_filtered ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
-                  paddr (read_register (PC_REGNUM)),
-                  (long) read_register (SR_REGNUM),
-                  (long) read_register (PR_REGNUM),
-                  (long) read_register (MACH_REGNUM));
+  printf_filtered
+    ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
+     paddr (get_frame_register_unsigned (frame, PC_REGNUM)),
+     (long) get_frame_register_unsigned (frame, SR_REGNUM),
+     (long) get_frame_register_unsigned (frame, PR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACH_REGNUM));
 
-  printf_filtered (
-       "     GBR %08lx      VBR %08lx                       MACL %08lx\n",
-                  (long) read_register (GBR_REGNUM),
-                  (long) read_register (VBR_REGNUM),
-                  (long) read_register (MACL_REGNUM));
-  printf_filtered ("     SSR %08lx      SPC %08lx\n",
-                  (long) read_register (SSR_REGNUM),
-                  (long) read_register (SPC_REGNUM));
+  printf_filtered
+    ("     GBR %08lx      VBR %08lx                       MACL %08lx\n",
+     (long) get_frame_register_unsigned (frame, GBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, VBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACL_REGNUM));
+  printf_filtered
+    ("     SSR %08lx      SPC %08lx\n",
+     (long) get_frame_register_unsigned (frame, SSR_REGNUM),
+     (long) get_frame_register_unsigned (frame, SPC_REGNUM));
 
   printf_filtered
     ("R0-R7    %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-     (long) read_register (0), (long) read_register (1),
-     (long) read_register (2), (long) read_register (3),
-     (long) read_register (4), (long) read_register (5),
-     (long) read_register (6), (long) read_register (7));
-  printf_filtered ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (8), (long) read_register (9),
-                  (long) read_register (10), (long) read_register (11),
-                  (long) read_register (12), (long) read_register (13),
-                  (long) read_register (14), (long) read_register (15));
+     (long) get_frame_register_unsigned (frame, 0),
+     (long) get_frame_register_unsigned (frame, 1),
+     (long) get_frame_register_unsigned (frame, 2),
+     (long) get_frame_register_unsigned (frame, 3),
+     (long) get_frame_register_unsigned (frame, 4),
+     (long) get_frame_register_unsigned (frame, 5),
+     (long) get_frame_register_unsigned (frame, 6),
+     (long) get_frame_register_unsigned (frame, 7));
+  printf_filtered
+    ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, 8),
+     (long) get_frame_register_unsigned (frame, 9),
+     (long) get_frame_register_unsigned (frame, 10),
+     (long) get_frame_register_unsigned (frame, 11),
+     (long) get_frame_register_unsigned (frame, 12),
+     (long) get_frame_register_unsigned (frame, 13),
+     (long) get_frame_register_unsigned (frame, 14),
+     (long) get_frame_register_unsigned (frame, 15));
 }
 
-
 static void
-sh2e_show_regs (void)
-{
-  printf_filtered ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
-                  paddr (read_register (PC_REGNUM)),
-                  (long) read_register (SR_REGNUM),
-                  (long) read_register (PR_REGNUM),
-                  (long) read_register (MACH_REGNUM));
-
-  printf_filtered (
-       "     GBR %08lx      VBR %08lx                       MACL %08lx\n",
-                  (long) read_register (GBR_REGNUM),
-                  (long) read_register (VBR_REGNUM),
-                  (long) read_register (MACL_REGNUM));
-  printf_filtered (
-       "     SSR %08lx      SPC %08lx     FPUL %08lx    FPSCR %08lx\n",
-                  (long) read_register (SSR_REGNUM),
-                  (long) read_register (SPC_REGNUM),
-                  (long) read_register (FPUL_REGNUM),
-                  (long) read_register (FPSCR_REGNUM));
+sh2e_show_regs (struct frame_info *frame)
+{
+  printf_filtered
+    ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
+     paddr (get_frame_register_unsigned (frame, PC_REGNUM)),
+     (long) get_frame_register_unsigned (frame, SR_REGNUM),
+     (long) get_frame_register_unsigned (frame, PR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACH_REGNUM));
+
+  printf_filtered
+    ("     GBR %08lx      VBR %08lx                       MACL %08lx\n",
+     (long) get_frame_register_unsigned (frame, GBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, VBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACL_REGNUM));
+  printf_filtered
+    ("     SSR %08lx      SPC %08lx     FPUL %08lx    FPSCR %08lx\n",
+     (long) get_frame_register_unsigned (frame, SSR_REGNUM),
+     (long) get_frame_register_unsigned (frame, SPC_REGNUM),
+     (long) get_frame_register_unsigned (frame, FPUL_REGNUM),
+     (long) get_frame_register_unsigned (frame, FPSCR_REGNUM));
 
   printf_filtered
     ("R0-R7    %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-     (long) read_register (0), (long) read_register (1),
-     (long) read_register (2), (long) read_register (3),
-     (long) read_register (4), (long) read_register (5),
-     (long) read_register (6), (long) read_register (7));
-  printf_filtered ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (8), (long) read_register (9),
-                  (long) read_register (10), (long) read_register (11),
-                  (long) read_register (12), (long) read_register (13),
-                  (long) read_register (14), (long) read_register (15));
-
-  printf_filtered ("FP0-FP7  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (FP0_REGNUM + 0),
-                  (long) read_register (FP0_REGNUM + 1),
-                  (long) read_register (FP0_REGNUM + 2),
-                  (long) read_register (FP0_REGNUM + 3),
-                  (long) read_register (FP0_REGNUM + 4),
-                  (long) read_register (FP0_REGNUM + 5),
-                  (long) read_register (FP0_REGNUM + 6),
-                  (long) read_register (FP0_REGNUM + 7));
-  printf_filtered ("FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (FP0_REGNUM + 8),
-                  (long) read_register (FP0_REGNUM + 9),
-                  (long) read_register (FP0_REGNUM + 10),
-                  (long) read_register (FP0_REGNUM + 11),
-                  (long) read_register (FP0_REGNUM + 12),
-                  (long) read_register (FP0_REGNUM + 13),
-                  (long) read_register (FP0_REGNUM + 14),
-                  (long) read_register (FP0_REGNUM + 15));
+     (long) get_frame_register_unsigned (frame, 0),
+     (long) get_frame_register_unsigned (frame, 1),
+     (long) get_frame_register_unsigned (frame, 2),
+     (long) get_frame_register_unsigned (frame, 3),
+     (long) get_frame_register_unsigned (frame, 4),
+     (long) get_frame_register_unsigned (frame, 5),
+     (long) get_frame_register_unsigned (frame, 6),
+     (long) get_frame_register_unsigned (frame, 7));
+  printf_filtered
+    ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, 8),
+     (long) get_frame_register_unsigned (frame, 9),
+     (long) get_frame_register_unsigned (frame, 10),
+     (long) get_frame_register_unsigned (frame, 11),
+     (long) get_frame_register_unsigned (frame, 12),
+     (long) get_frame_register_unsigned (frame, 13),
+     (long) get_frame_register_unsigned (frame, 14),
+     (long) get_frame_register_unsigned (frame, 15));
+
+  printf_filtered
+    ("FP0-FP7  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 0),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 1),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 2),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 3),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 4),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 5),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 6),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 7));
+  printf_filtered
+    ("FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 8),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 9),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 10),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 11),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 12),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 13),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 14),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 15));
 }
 
 static void
-sh2a_show_regs (void)
-{
-  int pr = read_register (FPSCR_REGNUM) & 0x80000;
-  printf_filtered ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
-                  paddr (read_register (PC_REGNUM)),
-                  (long) read_register (SR_REGNUM),
-                  (long) read_register (PR_REGNUM),
-                  (long) read_register (MACH_REGNUM));
-
-  printf_filtered (
-       "     GBR %08lx      VBR %08lx      TBR %08lx     MACL %08lx\n",
-                  (long) read_register (GBR_REGNUM),
-                  (long) read_register (VBR_REGNUM),
-                  (long) read_register (TBR_REGNUM),
-                  (long) read_register (MACL_REGNUM));
-  printf_filtered (
-       "     SSR %08lx      SPC %08lx     FPUL %08lx    FPSCR %08lx\n",
-                  (long) read_register (SSR_REGNUM),
-                  (long) read_register (SPC_REGNUM),
-                  (long) read_register (FPUL_REGNUM),
-                  (long) read_register (FPSCR_REGNUM));
-
-  printf_filtered ("R0-R7    %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (0), (long) read_register (1),
-                  (long) read_register (2), (long) read_register (3),
-                  (long) read_register (4), (long) read_register (5),
-                  (long) read_register (6), (long) read_register (7));
-  printf_filtered ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (8), (long) read_register (9),
-                  (long) read_register (10), (long) read_register (11),
-                  (long) read_register (12), (long) read_register (13),
-                  (long) read_register (14), (long) read_register (15));
-
-  printf_filtered (
-       (pr ? "DR0-DR6  %08lx%08lx  %08lx%08lx  %08lx%08lx  %08lx%08lx\n"
-           : "FP0-FP7  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"),
-                  (long) read_register (FP0_REGNUM + 0),
-                  (long) read_register (FP0_REGNUM + 1),
-                  (long) read_register (FP0_REGNUM + 2),
-                  (long) read_register (FP0_REGNUM + 3),
-                  (long) read_register (FP0_REGNUM + 4),
-                  (long) read_register (FP0_REGNUM + 5),
-                  (long) read_register (FP0_REGNUM + 6),
-                  (long) read_register (FP0_REGNUM + 7));
-  printf_filtered (
-       (pr ? "DR8-DR14 %08lx%08lx  %08lx%08lx  %08lx%08lx  %08lx%08lx\n"
-           : "FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"),
-                  (long) read_register (FP0_REGNUM + 8),
-                  (long) read_register (FP0_REGNUM + 9),
-                  (long) read_register (FP0_REGNUM + 10),
-                  (long) read_register (FP0_REGNUM + 11),
-                  (long) read_register (FP0_REGNUM + 12),
-                  (long) read_register (FP0_REGNUM + 13),
-                  (long) read_register (FP0_REGNUM + 14),
-                  (long) read_register (FP0_REGNUM + 15));
-  printf_filtered ("BANK=%-3d\n", (int) read_register (BANK_REGNUM));
-  printf_filtered (
-       "R0b-R7b  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (R0_BANK0_REGNUM + 0),
-                  (long) read_register (R0_BANK0_REGNUM + 1),
-                  (long) read_register (R0_BANK0_REGNUM + 2),
-                  (long) read_register (R0_BANK0_REGNUM + 3),
-                  (long) read_register (R0_BANK0_REGNUM + 4),
-                  (long) read_register (R0_BANK0_REGNUM + 5),
-                  (long) read_register (R0_BANK0_REGNUM + 6),
-                  (long) read_register (R0_BANK0_REGNUM + 7));
-  printf_filtered ("R8b-R14b %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (R0_BANK0_REGNUM + 8),
-                  (long) read_register (R0_BANK0_REGNUM + 9),
-                  (long) read_register (R0_BANK0_REGNUM + 10),
-                  (long) read_register (R0_BANK0_REGNUM + 11),
-                  (long) read_register (R0_BANK0_REGNUM + 12),
-                  (long) read_register (R0_BANK0_REGNUM + 13),
-                  (long) read_register (R0_BANK0_REGNUM + 14));
-  printf_filtered ("MACHb=%08lx IVNb=%08lx PRb=%08lx GBRb=%08lx MACLb=%08lx\n",
-                  (long) read_register (R0_BANK0_REGNUM + 15),
-                  (long) read_register (R0_BANK0_REGNUM + 16),
-                  (long) read_register (R0_BANK0_REGNUM + 17),
-                  (long) read_register (R0_BANK0_REGNUM + 18),
-                  (long) read_register (R0_BANK0_REGNUM + 19));
+sh2a_show_regs (struct frame_info *frame)
+{
+  int pr = get_frame_register_unsigned (frame, FPSCR_REGNUM) & 0x80000;
+
+  printf_filtered
+    ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
+     paddr (get_frame_register_unsigned (frame, PC_REGNUM)),
+     (long) get_frame_register_unsigned (frame, SR_REGNUM),
+     (long) get_frame_register_unsigned (frame, PR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACH_REGNUM));
+
+  printf_filtered
+    ("     GBR %08lx      VBR %08lx      TBR %08lx     MACL %08lx\n",
+     (long) get_frame_register_unsigned (frame, GBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, VBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, TBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACL_REGNUM));
+  printf_filtered
+    ("     SSR %08lx      SPC %08lx     FPUL %08lx    FPSCR %08lx\n",
+     (long) get_frame_register_unsigned (frame, SSR_REGNUM),
+     (long) get_frame_register_unsigned (frame, SPC_REGNUM),
+     (long) get_frame_register_unsigned (frame, FPUL_REGNUM),
+     (long) get_frame_register_unsigned (frame, FPSCR_REGNUM));
+
+  printf_filtered
+    ("R0-R7    %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, 0),
+     (long) get_frame_register_unsigned (frame, 1),
+     (long) get_frame_register_unsigned (frame, 2),
+     (long) get_frame_register_unsigned (frame, 3),
+     (long) get_frame_register_unsigned (frame, 4),
+     (long) get_frame_register_unsigned (frame, 5),
+     (long) get_frame_register_unsigned (frame, 6),
+     (long) get_frame_register_unsigned (frame, 7));
+  printf_filtered
+    ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, 8),
+     (long) get_frame_register_unsigned (frame, 9),
+     (long) get_frame_register_unsigned (frame, 10),
+     (long) get_frame_register_unsigned (frame, 11),
+     (long) get_frame_register_unsigned (frame, 12),
+     (long) get_frame_register_unsigned (frame, 13),
+     (long) get_frame_register_unsigned (frame, 14),
+     (long) get_frame_register_unsigned (frame, 15));
+
+  printf_filtered
+    (pr ? "DR0-DR6  %08lx%08lx  %08lx%08lx  %08lx%08lx  %08lx%08lx\n"
+       : "FP0-FP7  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 0),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 1),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 2),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 3),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 4),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 5),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 6),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 7));
+  printf_filtered
+    (pr ? "DR8-DR14 %08lx%08lx  %08lx%08lx  %08lx%08lx  %08lx%08lx\n"
+       : "FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 8),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 9),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 10),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 11),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 12),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 13),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 14),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 15));
+  printf_filtered
+    ("BANK=%-3d\n", (int) get_frame_register_unsigned (frame, BANK_REGNUM));
+  printf_filtered
+    ("R0b-R7b  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 0),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 1),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 2),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 3),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 4),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 5),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 6),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 7));
+  printf_filtered
+    ("R8b-R14b %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 8),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 9),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 10),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 11),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 12),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 13),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 14));
+  printf_filtered
+    ("MACHb=%08lx IVNb=%08lx PRb=%08lx GBRb=%08lx MACLb=%08lx\n",
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 15),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 16),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 17),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 18),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 19));
 }
 
 static void
-sh2a_nofpu_show_regs (void)
-{
-  int pr = read_register (FPSCR_REGNUM) & 0x80000;
-  printf_filtered ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
-                  paddr (read_register (PC_REGNUM)),
-                  (long) read_register (SR_REGNUM),
-                  (long) read_register (PR_REGNUM),
-                  (long) read_register (MACH_REGNUM));
-
-  printf_filtered (
-       "     GBR %08lx      VBR %08lx      TBR %08lx     MACL %08lx\n",
-                  (long) read_register (GBR_REGNUM),
-                  (long) read_register (VBR_REGNUM),
-                  (long) read_register (TBR_REGNUM),
-                  (long) read_register (MACL_REGNUM));
-  printf_filtered (
-       "     SSR %08lx      SPC %08lx     FPUL %08lx    FPSCR %08lx\n",
-                  (long) read_register (SSR_REGNUM),
-                  (long) read_register (SPC_REGNUM),
-                  (long) read_register (FPUL_REGNUM),
-                  (long) read_register (FPSCR_REGNUM));
-
-  printf_filtered ("R0-R7    %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (0), (long) read_register (1),
-                  (long) read_register (2), (long) read_register (3),
-                  (long) read_register (4), (long) read_register (5),
-                  (long) read_register (6), (long) read_register (7));
-  printf_filtered ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (8), (long) read_register (9),
-                  (long) read_register (10), (long) read_register (11),
-                  (long) read_register (12), (long) read_register (13),
-                  (long) read_register (14), (long) read_register (15));
-
-  printf_filtered ("BANK=%-3d\n", (int) read_register (BANK_REGNUM));
-  printf_filtered (
-       "R0b-R7b  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (R0_BANK0_REGNUM + 0),
-                  (long) read_register (R0_BANK0_REGNUM + 1),
-                  (long) read_register (R0_BANK0_REGNUM + 2),
-                  (long) read_register (R0_BANK0_REGNUM + 3),
-                  (long) read_register (R0_BANK0_REGNUM + 4),
-                  (long) read_register (R0_BANK0_REGNUM + 5),
-                  (long) read_register (R0_BANK0_REGNUM + 6),
-                  (long) read_register (R0_BANK0_REGNUM + 7));
-  printf_filtered ("R8b-R14b %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (R0_BANK0_REGNUM + 8),
-                  (long) read_register (R0_BANK0_REGNUM + 9),
-                  (long) read_register (R0_BANK0_REGNUM + 10),
-                  (long) read_register (R0_BANK0_REGNUM + 11),
-                  (long) read_register (R0_BANK0_REGNUM + 12),
-                  (long) read_register (R0_BANK0_REGNUM + 13),
-                  (long) read_register (R0_BANK0_REGNUM + 14));
-  printf_filtered ("MACHb=%08lx IVNb=%08lx PRb=%08lx GBRb=%08lx MACLb=%08lx\n",
-                  (long) read_register (R0_BANK0_REGNUM + 15),
-                  (long) read_register (R0_BANK0_REGNUM + 16),
-                  (long) read_register (R0_BANK0_REGNUM + 17),
-                  (long) read_register (R0_BANK0_REGNUM + 18),
-                  (long) read_register (R0_BANK0_REGNUM + 19));
+sh2a_nofpu_show_regs (struct frame_info *frame)
+{
+  int pr = get_frame_register_unsigned (frame, FPSCR_REGNUM) & 0x80000;
+
+  printf_filtered
+    ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
+     paddr (get_frame_register_unsigned (frame, PC_REGNUM)),
+     (long) get_frame_register_unsigned (frame, SR_REGNUM),
+     (long) get_frame_register_unsigned (frame, PR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACH_REGNUM));
+
+  printf_filtered
+    ("     GBR %08lx      VBR %08lx      TBR %08lx     MACL %08lx\n",
+     (long) get_frame_register_unsigned (frame, GBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, VBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, TBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACL_REGNUM));
+  printf_filtered
+    ("     SSR %08lx      SPC %08lx     FPUL %08lx    FPSCR %08lx\n",
+     (long) get_frame_register_unsigned (frame, SSR_REGNUM),
+     (long) get_frame_register_unsigned (frame, SPC_REGNUM),
+     (long) get_frame_register_unsigned (frame, FPUL_REGNUM),
+     (long) get_frame_register_unsigned (frame, FPSCR_REGNUM));
+
+  printf_filtered
+    ("R0-R7    %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, 0),
+     (long) get_frame_register_unsigned (frame, 1),
+     (long) get_frame_register_unsigned (frame, 2),
+     (long) get_frame_register_unsigned (frame, 3),
+     (long) get_frame_register_unsigned (frame, 4),
+     (long) get_frame_register_unsigned (frame, 5),
+     (long) get_frame_register_unsigned (frame, 6),
+     (long) get_frame_register_unsigned (frame, 7));
+  printf_filtered
+    ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, 8),
+     (long) get_frame_register_unsigned (frame, 9),
+     (long) get_frame_register_unsigned (frame, 10),
+     (long) get_frame_register_unsigned (frame, 11),
+     (long) get_frame_register_unsigned (frame, 12),
+     (long) get_frame_register_unsigned (frame, 13),
+     (long) get_frame_register_unsigned (frame, 14),
+     (long) get_frame_register_unsigned (frame, 15));
+
+  printf_filtered
+    ("BANK=%-3d\n", (int) get_frame_register_unsigned (frame, BANK_REGNUM));
+  printf_filtered
+    ("R0b-R7b  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 0),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 1),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 2),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 3),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 4),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 5),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 6),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 7));
+  printf_filtered
+    ("R8b-R14b %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 8),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 9),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 10),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 11),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 12),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 13),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 14));
+  printf_filtered
+    ("MACHb=%08lx IVNb=%08lx PRb=%08lx GBRb=%08lx MACLb=%08lx\n",
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 15),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 16),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 17),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 18),
+     (long) get_frame_register_unsigned (frame, R0_BANK0_REGNUM + 19));
 }
 
 static void
-sh3e_show_regs (void)
-{
-  printf_filtered ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
-                  paddr (read_register (PC_REGNUM)),
-                  (long) read_register (SR_REGNUM),
-                  (long) read_register (PR_REGNUM),
-                  (long) read_register (MACH_REGNUM));
-
-  printf_filtered (
-       "     GBR %08lx      VBR %08lx                       MACL %08lx\n",
-                  (long) read_register (GBR_REGNUM),
-                  (long) read_register (VBR_REGNUM),
-                  (long) read_register (MACL_REGNUM));
-  printf_filtered (
-       "     SSR %08lx      SPC %08lx     FPUL %08lx    FPSCR %08lx\n",
-                  (long) read_register (SSR_REGNUM),
-                  (long) read_register (SPC_REGNUM),
-                  (long) read_register (FPUL_REGNUM),
-                  (long) read_register (FPSCR_REGNUM));
+sh3e_show_regs (struct frame_info *frame)
+{
+  printf_filtered
+    ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
+     paddr (get_frame_register_unsigned (frame, PC_REGNUM)),
+     (long) get_frame_register_unsigned (frame, SR_REGNUM),
+     (long) get_frame_register_unsigned (frame, PR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACH_REGNUM));
+
+  printf_filtered
+    ("     GBR %08lx      VBR %08lx                       MACL %08lx\n",
+     (long) get_frame_register_unsigned (frame, GBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, VBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACL_REGNUM));
+  printf_filtered
+    ("     SSR %08lx      SPC %08lx     FPUL %08lx    FPSCR %08lx\n",
+     (long) get_frame_register_unsigned (frame, SSR_REGNUM),
+     (long) get_frame_register_unsigned (frame, SPC_REGNUM),
+     (long) get_frame_register_unsigned (frame, FPUL_REGNUM),
+     (long) get_frame_register_unsigned (frame, FPSCR_REGNUM));
 
   printf_filtered
     ("R0-R7    %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-     (long) read_register (0), (long) read_register (1),
-     (long) read_register (2), (long) read_register (3),
-     (long) read_register (4), (long) read_register (5),
-     (long) read_register (6), (long) read_register (7));
-  printf_filtered ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (8), (long) read_register (9),
-                  (long) read_register (10), (long) read_register (11),
-                  (long) read_register (12), (long) read_register (13),
-                  (long) read_register (14), (long) read_register (15));
-
-  printf_filtered ("FP0-FP7  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (FP0_REGNUM + 0),
-                  (long) read_register (FP0_REGNUM + 1),
-                  (long) read_register (FP0_REGNUM + 2),
-                  (long) read_register (FP0_REGNUM + 3),
-                  (long) read_register (FP0_REGNUM + 4),
-                  (long) read_register (FP0_REGNUM + 5),
-                  (long) read_register (FP0_REGNUM + 6),
-                  (long) read_register (FP0_REGNUM + 7));
-  printf_filtered ("FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (FP0_REGNUM + 8),
-                  (long) read_register (FP0_REGNUM + 9),
-                  (long) read_register (FP0_REGNUM + 10),
-                  (long) read_register (FP0_REGNUM + 11),
-                  (long) read_register (FP0_REGNUM + 12),
-                  (long) read_register (FP0_REGNUM + 13),
-                  (long) read_register (FP0_REGNUM + 14),
-                  (long) read_register (FP0_REGNUM + 15));
+     (long) get_frame_register_unsigned (frame, 0),
+     (long) get_frame_register_unsigned (frame, 1),
+     (long) get_frame_register_unsigned (frame, 2),
+     (long) get_frame_register_unsigned (frame, 3),
+     (long) get_frame_register_unsigned (frame, 4),
+     (long) get_frame_register_unsigned (frame, 5),
+     (long) get_frame_register_unsigned (frame, 6),
+     (long) get_frame_register_unsigned (frame, 7));
+  printf_filtered
+    ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, 8),
+     (long) get_frame_register_unsigned (frame, 9),
+     (long) get_frame_register_unsigned (frame, 10),
+     (long) get_frame_register_unsigned (frame, 11),
+     (long) get_frame_register_unsigned (frame, 12),
+     (long) get_frame_register_unsigned (frame, 13),
+     (long) get_frame_register_unsigned (frame, 14),
+     (long) get_frame_register_unsigned (frame, 15));
+
+  printf_filtered
+    ("FP0-FP7  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 0),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 1),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 2),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 3),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 4),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 5),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 6),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 7));
+  printf_filtered
+    ("FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 8),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 9),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 10),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 11),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 12),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 13),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 14),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 15));
 }
 
 static void
-sh3_dsp_show_regs (void)
+sh3_dsp_show_regs (struct frame_info *frame)
 {
-  printf_filtered ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
-                  paddr (read_register (PC_REGNUM)),
-                  (long) read_register (SR_REGNUM),
-                  (long) read_register (PR_REGNUM),
-                  (long) read_register (MACH_REGNUM));
+  printf_filtered
+    ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
+     paddr (get_frame_register_unsigned (frame, PC_REGNUM)),
+     (long) get_frame_register_unsigned (frame, SR_REGNUM),
+     (long) get_frame_register_unsigned (frame, PR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACH_REGNUM));
 
-  printf_filtered (
-       "     GBR %08lx      VBR %08lx                       MACL %08lx\n",
-                  (long) read_register (GBR_REGNUM),
-                  (long) read_register (VBR_REGNUM),
-                  (long) read_register (MACL_REGNUM));
+  printf_filtered
+    ("     GBR %08lx      VBR %08lx                       MACL %08lx\n",
+     (long) get_frame_register_unsigned (frame, GBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, VBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACL_REGNUM));
 
-  printf_filtered ("     SSR %08lx      SPC %08lx      DSR %08lx\n",
-                  (long) read_register (SSR_REGNUM),
-                  (long) read_register (SPC_REGNUM),
-                  (long) read_register (DSR_REGNUM));
+  printf_filtered
+    ("     SSR %08lx      SPC %08lx      DSR %08lx\n",
+     (long) get_frame_register_unsigned (frame, SSR_REGNUM),
+     (long) get_frame_register_unsigned (frame, SPC_REGNUM),
+     (long) get_frame_register_unsigned (frame, DSR_REGNUM));
 
   printf_filtered
     ("R0-R7    %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-     (long) read_register (0), (long) read_register (1),
-     (long) read_register (2), (long) read_register (3),
-     (long) read_register (4), (long) read_register (5),
-     (long) read_register (6), (long) read_register (7));
-  printf_filtered ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (8), (long) read_register (9),
-                  (long) read_register (10), (long) read_register (11),
-                  (long) read_register (12), (long) read_register (13),
-                  (long) read_register (14), (long) read_register (15));
+     (long) get_frame_register_unsigned (frame, 0),
+     (long) get_frame_register_unsigned (frame, 1),
+     (long) get_frame_register_unsigned (frame, 2),
+     (long) get_frame_register_unsigned (frame, 3),
+     (long) get_frame_register_unsigned (frame, 4),
+     (long) get_frame_register_unsigned (frame, 5),
+     (long) get_frame_register_unsigned (frame, 6),
+     (long) get_frame_register_unsigned (frame, 7));
+  printf_filtered
+    ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, 8),
+     (long) get_frame_register_unsigned (frame, 9),
+     (long) get_frame_register_unsigned (frame, 10),
+     (long) get_frame_register_unsigned (frame, 11),
+     (long) get_frame_register_unsigned (frame, 12),
+     (long) get_frame_register_unsigned (frame, 13),
+     (long) get_frame_register_unsigned (frame, 14),
+     (long) get_frame_register_unsigned (frame, 15));
 
   printf_filtered
     ("A0G=%02lx A0=%08lx M0=%08lx X0=%08lx Y0=%08lx RS=%08lx MOD=%08lx\n",
-     (long) read_register (A0G_REGNUM) & 0xff,
-     (long) read_register (A0_REGNUM), (long) read_register (M0_REGNUM),
-     (long) read_register (X0_REGNUM), (long) read_register (Y0_REGNUM),
-     (long) read_register (RS_REGNUM), (long) read_register (MOD_REGNUM));
-  printf_filtered ("A1G=%02lx A1=%08lx M1=%08lx X1=%08lx Y1=%08lx RE=%08lx\n",
-                  (long) read_register (A1G_REGNUM) & 0xff,
-                  (long) read_register (A1_REGNUM),
-                  (long) read_register (M1_REGNUM),
-                  (long) read_register (X1_REGNUM),
-                  (long) read_register (Y1_REGNUM),
-                  (long) read_register (RE_REGNUM));
+     (long) get_frame_register_unsigned (frame, A0G_REGNUM) & 0xff,
+     (long) get_frame_register_unsigned (frame, A0_REGNUM),
+     (long) get_frame_register_unsigned (frame, M0_REGNUM),
+     (long) get_frame_register_unsigned (frame, X0_REGNUM),
+     (long) get_frame_register_unsigned (frame, Y0_REGNUM),
+     (long) get_frame_register_unsigned (frame, RS_REGNUM),
+     (long) get_frame_register_unsigned (frame, MOD_REGNUM));
+  printf_filtered
+    ("A1G=%02lx A1=%08lx M1=%08lx X1=%08lx Y1=%08lx RE=%08lx\n",
+     (long) get_frame_register_unsigned (frame, A1G_REGNUM) & 0xff,
+     (long) get_frame_register_unsigned (frame, A1_REGNUM),
+     (long) get_frame_register_unsigned (frame, M1_REGNUM),
+     (long) get_frame_register_unsigned (frame, X1_REGNUM),
+     (long) get_frame_register_unsigned (frame, Y1_REGNUM),
+     (long) get_frame_register_unsigned (frame, RE_REGNUM));
 }
 
 static void
-sh4_show_regs (void)
-{
-  int pr = read_register (FPSCR_REGNUM) & 0x80000;
-  printf_filtered ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
-                  paddr (read_register (PC_REGNUM)),
-                  (long) read_register (SR_REGNUM),
-                  (long) read_register (PR_REGNUM),
-                  (long) read_register (MACH_REGNUM));
-
-  printf_filtered (
-       "     GBR %08lx      VBR %08lx                       MACL %08lx\n",
-                  (long) read_register (GBR_REGNUM),
-                  (long) read_register (VBR_REGNUM),
-                  (long) read_register (MACL_REGNUM));
-  printf_filtered (
-       "     SSR %08lx      SPC %08lx     FPUL %08lx    FPSCR %08lx\n",
-                  (long) read_register (SSR_REGNUM),
-                  (long) read_register (SPC_REGNUM),
-                  (long) read_register (FPUL_REGNUM),
-                  (long) read_register (FPSCR_REGNUM));
-
-  printf_filtered ("R0-R7    %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (0), (long) read_register (1),
-                  (long) read_register (2), (long) read_register (3),
-                  (long) read_register (4), (long) read_register (5),
-                  (long) read_register (6), (long) read_register (7));
-  printf_filtered ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (8), (long) read_register (9),
-                  (long) read_register (10), (long) read_register (11),
-                  (long) read_register (12), (long) read_register (13),
-                  (long) read_register (14), (long) read_register (15));
-
-  printf_filtered (
-       (pr ? "DR0-DR6  %08lx%08lx  %08lx%08lx  %08lx%08lx  %08lx%08lx\n"
-           : "FP0-FP7  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"),
-                  (long) read_register (FP0_REGNUM + 0),
-                  (long) read_register (FP0_REGNUM + 1),
-                  (long) read_register (FP0_REGNUM + 2),
-                  (long) read_register (FP0_REGNUM + 3),
-                  (long) read_register (FP0_REGNUM + 4),
-                  (long) read_register (FP0_REGNUM + 5),
-                  (long) read_register (FP0_REGNUM + 6),
-                  (long) read_register (FP0_REGNUM + 7));
-  printf_filtered (
-       (pr ? "DR8-DR14 %08lx%08lx  %08lx%08lx  %08lx%08lx  %08lx%08lx\n"
-           : "FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"),
-                  (long) read_register (FP0_REGNUM + 8),
-                  (long) read_register (FP0_REGNUM + 9),
-                  (long) read_register (FP0_REGNUM + 10),
-                  (long) read_register (FP0_REGNUM + 11),
-                  (long) read_register (FP0_REGNUM + 12),
-                  (long) read_register (FP0_REGNUM + 13),
-                  (long) read_register (FP0_REGNUM + 14),
-                  (long) read_register (FP0_REGNUM + 15));
+sh4_show_regs (struct frame_info *frame)
+{
+  int pr = get_frame_register_unsigned (frame, FPSCR_REGNUM) & 0x80000;
+
+  printf_filtered
+    ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
+     paddr (get_frame_register_unsigned (frame, PC_REGNUM)),
+     (long) get_frame_register_unsigned (frame, SR_REGNUM),
+     (long) get_frame_register_unsigned (frame, PR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACH_REGNUM));
+
+  printf_filtered
+    ("     GBR %08lx      VBR %08lx                       MACL %08lx\n",
+     (long) get_frame_register_unsigned (frame, GBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, VBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACL_REGNUM));
+  printf_filtered
+    ("     SSR %08lx      SPC %08lx     FPUL %08lx    FPSCR %08lx\n",
+     (long) get_frame_register_unsigned (frame, SSR_REGNUM),
+     (long) get_frame_register_unsigned (frame, SPC_REGNUM),
+     (long) get_frame_register_unsigned (frame, FPUL_REGNUM),
+     (long) get_frame_register_unsigned (frame, FPSCR_REGNUM));
+
+  printf_filtered
+    ("R0-R7    %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, 0),
+     (long) get_frame_register_unsigned (frame, 1),
+     (long) get_frame_register_unsigned (frame, 2),
+     (long) get_frame_register_unsigned (frame, 3),
+     (long) get_frame_register_unsigned (frame, 4),
+     (long) get_frame_register_unsigned (frame, 5),
+     (long) get_frame_register_unsigned (frame, 6),
+     (long) get_frame_register_unsigned (frame, 7));
+  printf_filtered
+    ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, 8),
+     (long) get_frame_register_unsigned (frame, 9),
+     (long) get_frame_register_unsigned (frame, 10),
+     (long) get_frame_register_unsigned (frame, 11),
+     (long) get_frame_register_unsigned (frame, 12),
+     (long) get_frame_register_unsigned (frame, 13),
+     (long) get_frame_register_unsigned (frame, 14),
+     (long) get_frame_register_unsigned (frame, 15));
+
+  printf_filtered
+    (pr ? "DR0-DR6  %08lx%08lx  %08lx%08lx  %08lx%08lx  %08lx%08lx\n"
+       : "FP0-FP7  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 0),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 1),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 2),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 3),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 4),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 5),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 6),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 7));
+  printf_filtered
+    (pr ? "DR8-DR14 %08lx%08lx  %08lx%08lx  %08lx%08lx  %08lx%08lx\n"
+       : "FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 8),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 9),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 10),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 11),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 12),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 13),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 14),
+     (long) get_frame_register_unsigned (frame, FP0_REGNUM + 15));
 }
 
 static void
-sh4_nofpu_show_regs (void)
-{
-  printf_filtered ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
-                  paddr (read_register (PC_REGNUM)),
-                  (long) read_register (SR_REGNUM),
-                  (long) read_register (PR_REGNUM),
-                  (long) read_register (MACH_REGNUM));
-
-  printf_filtered (
-       "     GBR %08lx      VBR %08lx                       MACL %08lx\n",
-                  (long) read_register (GBR_REGNUM),
-                  (long) read_register (VBR_REGNUM),
-                  (long) read_register (MACL_REGNUM));
-  printf_filtered (
-       "     SSR %08lx      SPC %08lx     FPUL %08lx    FPSCR %08lx\n",
-                  (long) read_register (SSR_REGNUM),
-                  (long) read_register (SPC_REGNUM),
-                  (long) read_register (FPUL_REGNUM),
-                  (long) read_register (FPSCR_REGNUM));
-
-  printf_filtered ("R0-R7    %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (0), (long) read_register (1),
-                  (long) read_register (2), (long) read_register (3),
-                  (long) read_register (4), (long) read_register (5),
-                  (long) read_register (6), (long) read_register (7));
-  printf_filtered ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (8), (long) read_register (9),
-                  (long) read_register (10), (long) read_register (11),
-                  (long) read_register (12), (long) read_register (13),
-                  (long) read_register (14), (long) read_register (15));
+sh4_nofpu_show_regs (struct frame_info *frame)
+{
+  printf_filtered
+    ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
+     paddr (get_frame_register_unsigned (frame, PC_REGNUM)),
+     (long) get_frame_register_unsigned (frame, SR_REGNUM),
+     (long) get_frame_register_unsigned (frame, PR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACH_REGNUM));
+
+  printf_filtered
+    ("     GBR %08lx      VBR %08lx                       MACL %08lx\n",
+     (long) get_frame_register_unsigned (frame, GBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, VBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACL_REGNUM));
+  printf_filtered
+    ("     SSR %08lx      SPC %08lx     FPUL %08lx    FPSCR %08lx\n",
+     (long) get_frame_register_unsigned (frame, SSR_REGNUM),
+     (long) get_frame_register_unsigned (frame, SPC_REGNUM),
+     (long) get_frame_register_unsigned (frame, FPUL_REGNUM),
+     (long) get_frame_register_unsigned (frame, FPSCR_REGNUM));
+
+  printf_filtered
+    ("R0-R7    %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, 0),
+     (long) get_frame_register_unsigned (frame, 1),
+     (long) get_frame_register_unsigned (frame, 2),
+     (long) get_frame_register_unsigned (frame, 3),
+     (long) get_frame_register_unsigned (frame, 4),
+     (long) get_frame_register_unsigned (frame, 5),
+     (long) get_frame_register_unsigned (frame, 6),
+     (long) get_frame_register_unsigned (frame, 7));
+  printf_filtered
+    ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, 8),
+     (long) get_frame_register_unsigned (frame, 9),
+     (long) get_frame_register_unsigned (frame, 10),
+     (long) get_frame_register_unsigned (frame, 11),
+     (long) get_frame_register_unsigned (frame, 12),
+     (long) get_frame_register_unsigned (frame, 13),
+     (long) get_frame_register_unsigned (frame, 14),
+     (long) get_frame_register_unsigned (frame, 15));
 }
 
 static void
-sh_dsp_show_regs (void)
+sh_dsp_show_regs (struct frame_info *frame)
 {
+  printf_filtered
+    ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
+     paddr (get_frame_register_unsigned (frame, PC_REGNUM)),
+     (long) get_frame_register_unsigned (frame, SR_REGNUM),
+     (long) get_frame_register_unsigned (frame, PR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACH_REGNUM));
 
-  printf_filtered ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
-                  paddr (read_register (PC_REGNUM)),
-                  (long) read_register (SR_REGNUM),
-                  (long) read_register (PR_REGNUM),
-                  (long) read_register (MACH_REGNUM));
-
-  printf_filtered (
-       "     GBR %08lx      VBR %08lx      DSR %08lx     MACL %08lx\n",
-                  (long) read_register (GBR_REGNUM),
-                  (long) read_register (VBR_REGNUM),
-                  (long) read_register (DSR_REGNUM),
-                  (long) read_register (MACL_REGNUM));
+  printf_filtered
+    ("     GBR %08lx      VBR %08lx      DSR %08lx     MACL %08lx\n",
+     (long) get_frame_register_unsigned (frame, GBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, VBR_REGNUM),
+     (long) get_frame_register_unsigned (frame, DSR_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACL_REGNUM));
 
   printf_filtered
     ("R0-R7    %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-     (long) read_register (0), (long) read_register (1),
-     (long) read_register (2), (long) read_register (3),
-     (long) read_register (4), (long) read_register (5),
-     (long) read_register (6), (long) read_register (7));
-  printf_filtered ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                  (long) read_register (8), (long) read_register (9),
-                  (long) read_register (10), (long) read_register (11),
-                  (long) read_register (12), (long) read_register (13),
-                  (long) read_register (14), (long) read_register (15));
+     (long) get_frame_register_unsigned (frame, 0),
+     (long) get_frame_register_unsigned (frame, 1),
+     (long) get_frame_register_unsigned (frame, 2),
+     (long) get_frame_register_unsigned (frame, 3),
+     (long) get_frame_register_unsigned (frame, 4),
+     (long) get_frame_register_unsigned (frame, 5),
+     (long) get_frame_register_unsigned (frame, 6),
+     (long) get_frame_register_unsigned (frame, 7));
+  printf_filtered
+    ("R8-R15   %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+     (long) get_frame_register_unsigned (frame, 8),
+     (long) get_frame_register_unsigned (frame, 9),
+     (long) get_frame_register_unsigned (frame, 10),
+     (long) get_frame_register_unsigned (frame, 11),
+     (long) get_frame_register_unsigned (frame, 12),
+     (long) get_frame_register_unsigned (frame, 13),
+     (long) get_frame_register_unsigned (frame, 14),
+     (long) get_frame_register_unsigned (frame, 15));
 
   printf_filtered
     ("A0G=%02lx A0=%08lx M0=%08lx X0=%08lx Y0=%08lx RS=%08lx MOD=%08lx\n",
-     (long) read_register (A0G_REGNUM) & 0xff,
-     (long) read_register (A0_REGNUM), (long) read_register (M0_REGNUM),
-     (long) read_register (X0_REGNUM), (long) read_register (Y0_REGNUM),
-     (long) read_register (RS_REGNUM), (long) read_register (MOD_REGNUM));
+     (long) get_frame_register_unsigned (frame, A0G_REGNUM) & 0xff,
+     (long) get_frame_register_unsigned (frame, A0_REGNUM),
+     (long) get_frame_register_unsigned (frame, M0_REGNUM),
+     (long) get_frame_register_unsigned (frame, X0_REGNUM),
+     (long) get_frame_register_unsigned (frame, Y0_REGNUM),
+     (long) get_frame_register_unsigned (frame, RS_REGNUM),
+     (long) get_frame_register_unsigned (frame, MOD_REGNUM));
   printf_filtered ("A1G=%02lx A1=%08lx M1=%08lx X1=%08lx Y1=%08lx RE=%08lx\n",
-                  (long) read_register (A1G_REGNUM) & 0xff,
-                  (long) read_register (A1_REGNUM),
-                  (long) read_register (M1_REGNUM),
-                  (long) read_register (X1_REGNUM),
-                  (long) read_register (Y1_REGNUM),
-                  (long) read_register (RE_REGNUM));
+     (long) get_frame_register_unsigned (frame, A1G_REGNUM) & 0xff,
+     (long) get_frame_register_unsigned (frame, A1_REGNUM),
+     (long) get_frame_register_unsigned (frame, M1_REGNUM),
+     (long) get_frame_register_unsigned (frame, X1_REGNUM),
+     (long) get_frame_register_unsigned (frame, Y1_REGNUM),
+     (long) get_frame_register_unsigned (frame, RE_REGNUM));
 }
 
 static void
 sh_show_regs_command (char *args, int from_tty)
 {
   if (sh_show_regs)
-    (*sh_show_regs) ();
+    (*sh_show_regs) (get_current_frame ());
 }
 
 static struct type *
index 6d88a0e..bf4d934 100644 (file)
@@ -85,6 +85,6 @@ enum
   };
 
 extern gdbarch_init_ftype sh64_gdbarch_init;
-extern void sh64_show_regs (void);
+extern void sh64_show_regs (struct frame_info *);
 
 #endif /* SH_TDEP_H */
index 7061f32..5674adf 100644 (file)
@@ -1324,93 +1324,103 @@ sh64_return_value (struct gdbarch *gdbarch, struct type *type,
 }
 
 static void
-sh64_show_media_regs (void)
+sh64_show_media_regs (struct frame_info *frame)
 {
   int i;
 
-  printf_filtered ("PC=%s SR=%016llx \n",
-                  paddr (read_register (PC_REGNUM)),
-                  (long long) read_register (SR_REGNUM));
+  printf_filtered
+    ("PC=%s SR=%016llx \n",
+     paddr (get_frame_register_unsigned (frame, PC_REGNUM)),
+     (long long) get_frame_register_unsigned (frame, SR_REGNUM));
 
-  printf_filtered ("SSR=%016llx SPC=%016llx \n",
-                  (long long) read_register (SSR_REGNUM),
-                  (long long) read_register (SPC_REGNUM));
-  printf_filtered ("FPSCR=%016lx\n ",
-                  (long) read_register (FPSCR_REGNUM));
+  printf_filtered
+    ("SSR=%016llx SPC=%016llx \n",
+     (long long) get_frame_register_unsigned (frame, SSR_REGNUM),
+     (long long) get_frame_register_unsigned (frame, SPC_REGNUM));
+  printf_filtered
+    ("FPSCR=%016lx\n ",
+     (long) get_frame_register_unsigned (frame, FPSCR_REGNUM));
 
   for (i = 0; i < 64; i = i + 4)
-    printf_filtered ("\nR%d-R%d  %016llx %016llx %016llx %016llx\n",
-                    i, i + 3,
-                    (long long) read_register (i + 0),
-                    (long long) read_register (i + 1),
-                    (long long) read_register (i + 2),
-                    (long long) read_register (i + 3));
+    printf_filtered
+      ("\nR%d-R%d  %016llx %016llx %016llx %016llx\n",
+       i, i + 3,
+      (long long) get_frame_register_unsigned (frame, i + 0),
+      (long long) get_frame_register_unsigned (frame, i + 1),
+      (long long) get_frame_register_unsigned (frame, i + 2),
+      (long long) get_frame_register_unsigned (frame, i + 3));
 
   printf_filtered ("\n");
   
   for (i = 0; i < 64; i = i + 8)
-    printf_filtered ("FR%d-FR%d  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                    i, i + 7,
-                    (long) read_register (FP0_REGNUM + i + 0),
-                    (long) read_register (FP0_REGNUM + i + 1),
-                    (long) read_register (FP0_REGNUM + i + 2),
-                    (long) read_register (FP0_REGNUM + i + 3),
-                    (long) read_register (FP0_REGNUM + i + 4),
-                    (long) read_register (FP0_REGNUM + i + 5),
-                    (long) read_register (FP0_REGNUM + i + 6),
-                    (long) read_register (FP0_REGNUM + i + 7));
+    printf_filtered
+      ("FR%d-FR%d  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+       i, i + 7,
+       (long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 0),
+       (long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 1),
+       (long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 2),
+       (long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 3),
+       (long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 4),
+       (long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 5),
+       (long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 6),
+       (long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 7));
 }
 
 static void
-sh64_show_compact_regs (void)
+sh64_show_compact_regs (struct frame_info *frame)
 {
   int i;
 
-  printf_filtered ("PC=%s \n",
-                  paddr (read_register (PC_C_REGNUM)));
-
-  printf_filtered ("GBR=%08lx MACH=%08lx MACL=%08lx PR=%08lx T=%08lx\n",
-                  (long) read_register (GBR_C_REGNUM),
-                  (long) read_register (MACH_C_REGNUM),
-                  (long) read_register (MACL_C_REGNUM),
-                  (long) read_register (PR_C_REGNUM),
-                  (long) read_register (T_C_REGNUM));
-  printf_filtered ("FPSCR=%08lx FPUL=%08lx\n",
-                  (long) read_register (FPSCR_C_REGNUM),
-                  (long) read_register (FPUL_C_REGNUM));
+  printf_filtered
+    ("PC=%s \n",
+     paddr (get_frame_register_unsigned (frame, PC_C_REGNUM)));
+
+  printf_filtered
+    ("GBR=%08lx MACH=%08lx MACL=%08lx PR=%08lx T=%08lx\n",
+     (long) get_frame_register_unsigned (frame, GBR_C_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACH_C_REGNUM),
+     (long) get_frame_register_unsigned (frame, MACL_C_REGNUM),
+     (long) get_frame_register_unsigned (frame, PR_C_REGNUM),
+     (long) get_frame_register_unsigned (frame, T_C_REGNUM));
+  printf_filtered
+    ("FPSCR=%08lx FPUL=%08lx\n",
+     (long) get_frame_register_unsigned (frame, FPSCR_C_REGNUM),
+     (long) get_frame_register_unsigned (frame, FPUL_C_REGNUM));
 
   for (i = 0; i < 16; i = i + 4)
-    printf_filtered ("\nR%d-R%d  %08lx %08lx %08lx %08lx\n",
-                    i, i + 3,
-                    (long) read_register (i + 0),
-                    (long) read_register (i + 1),
-                    (long) read_register (i + 2),
-                    (long) read_register (i + 3));
+    printf_filtered
+      ("\nR%d-R%d  %08lx %08lx %08lx %08lx\n",
+       i, i + 3,
+       (long) get_frame_register_unsigned (frame, i + 0),
+       (long) get_frame_register_unsigned (frame, i + 1),
+       (long) get_frame_register_unsigned (frame, i + 2),
+       (long) get_frame_register_unsigned (frame, i + 3));
 
   printf_filtered ("\n");
   
   for (i = 0; i < 16; i = i + 8)
-    printf_filtered ("FR%d-FR%d  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-                    i, i + 7,
-                    (long) read_register (FP0_REGNUM + i + 0),
-                    (long) read_register (FP0_REGNUM + i + 1),
-                    (long) read_register (FP0_REGNUM + i + 2),
-                    (long) read_register (FP0_REGNUM + i + 3),
-                    (long) read_register (FP0_REGNUM + i + 4),
-                    (long) read_register (FP0_REGNUM + i + 5),
-                    (long) read_register (FP0_REGNUM + i + 6),
-                    (long) read_register (FP0_REGNUM + i + 7));
+    printf_filtered
+      ("FR%d-FR%d  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
+       i, i + 7,
+       (long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 0),
+       (long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 1),
+       (long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 2),
+       (long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 3),
+       (long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 4),
+       (long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 5),
+       (long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 6),
+       (long) get_frame_register_unsigned (frame, FP0_REGNUM + i + 7));
 }
 
 /* FIXME!!! This only shows the registers for shmedia, excluding the
    pseudo registers.  */
 void
-sh64_show_regs (void)
+sh64_show_regs (struct frame_info *frame)
 {
-  if (pc_is_isa32 (get_frame_pc (get_selected_frame (NULL))))
-    sh64_show_media_regs ();
+  if (pc_is_isa32 (get_frame_pc (frame)))
+    sh64_show_media_regs (frame);
   else
-    sh64_show_compact_regs ();
+    sh64_show_compact_regs (frame);
 }
 
 /* *INDENT-OFF* */