aboutsummaryrefslogtreecommitdiff
path: root/gdb/remote-e7000.c
diff options
context:
space:
mode:
authorYoshinori Sato <ysato@users.sourceforge.jp>2005-02-16 03:21:03 +0000
committerYoshinori Sato <ysato@users.sourceforge.jp>2005-02-16 03:21:03 +0000
commit7124f6fbb462b50a4b17c2bd4e0e08df1efd3ad8 (patch)
treef8dae3a5729896af667d06e3ce4674726a3c4756 /gdb/remote-e7000.c
parent5ff625e9757a8839b58ee06e09844dc97b6c23d4 (diff)
downloadgdb-7124f6fbb462b50a4b17c2bd4e0e08df1efd3ad8.zip
gdb-7124f6fbb462b50a4b17c2bd4e0e08df1efd3ad8.tar.gz
gdb-7124f6fbb462b50a4b17c2bd4e0e08df1efd3ad8.tar.bz2
* remote-e7000.c: unuse TM_FILE defined macro.
(e7000_fetch_registers) (e7000_store_registers) (e7000_wait): delete NUM_REALREGS. * remote-hms.c: move TM_FILE macro. (CCR_REGNO): move define from tm-h8300.h.
Diffstat (limited to 'gdb/remote-e7000.c')
-rw-r--r--gdb/remote-e7000.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/gdb/remote-e7000.c b/gdb/remote-e7000.c
index 0848c8c..d3b42f4 100644
--- a/gdb/remote-e7000.c
+++ b/gdb/remote-e7000.c
@@ -893,12 +893,14 @@ e7000_fetch_registers (void)
{
int regno;
char *wanted = NULL;
+ int realregs = 0;
puts_e7000debug ("R\r");
if (TARGET_ARCHITECTURE->arch == bfd_arch_sh)
{
wanted = want_sh;
+ realregs = 59;
switch (TARGET_ARCHITECTURE->mach)
{
case bfd_mach_sh3:
@@ -910,6 +912,7 @@ e7000_fetch_registers (void)
if (TARGET_ARCHITECTURE->arch == bfd_arch_h8300)
{
wanted = want_h8300h;
+ realregs = 10;
switch (TARGET_ARCHITECTURE->mach)
{
case bfd_mach_h8300s:
@@ -917,13 +920,14 @@ e7000_fetch_registers (void)
case bfd_mach_h8300sx:
case bfd_mach_h8300sxn:
wanted = want_h8300s;
+ realregs = 11;
}
}
fetch_regs_from_dump (gch, wanted);
/* And supply the extra ones the simulator uses */
- for (regno = NUM_REALREGS; regno < NUM_REGS; regno++)
+ for (regno = realregs; regno < NUM_REGS; regno++)
{
int buf = 0;
@@ -946,8 +950,18 @@ static void
e7000_store_registers (void)
{
int regno;
+ int realregs = 0;
- for (regno = 0; regno < NUM_REALREGS; regno++)
+ if (TARGET_ARCHITECTURE->arch == bfd_arch_sh)
+ realregs = 59;
+ if (TARGET_ARCHITECTURE->arch == bfd_arch_h8300) {
+ realregs = ((TARGET_ARCHITECTURE->mach == bfd_mach_h8300s ||
+ TARGET_ARCHITECTURE->mach == bfd_mach_h8300sn ||
+ TARGET_ARCHITECTURE->mach == bfd_mach_h8300sx ||
+ TARGET_ARCHITECTURE->mach == bfd_mach_h8300sxn) ? 11 : 10);
+ }
+
+ for (regno = 0; regno < realregs; regno++)
e7000_store_register (regno);
registers_changed ();
@@ -1998,6 +2012,7 @@ e7000_wait (ptid_t ptid, struct target_waitstatus *status)
int had_sleep = 0;
int loop = 1;
char *wanted_nopc = NULL;
+ int realregs = 0;
/* Then echo chars until PC= string seen */
gch (); /* Drop cr */
@@ -2039,6 +2054,7 @@ e7000_wait (ptid_t ptid, struct target_waitstatus *status)
if (TARGET_ARCHITECTURE->arch == bfd_arch_sh)
{
wanted_nopc = want_nopc_sh;
+ realregs = 59;
switch (TARGET_ARCHITECTURE->mach)
{
case bfd_mach_sh3:
@@ -2050,6 +2066,7 @@ e7000_wait (ptid_t ptid, struct target_waitstatus *status)
if (TARGET_ARCHITECTURE->arch == bfd_arch_h8300)
{
wanted_nopc = want_nopc_h8300h;
+ realregs = 10;
switch (TARGET_ARCHITECTURE->mach)
{
case bfd_mach_h8300s:
@@ -2057,12 +2074,13 @@ e7000_wait (ptid_t ptid, struct target_waitstatus *status)
case bfd_mach_h8300sx:
case bfd_mach_h8300sxn:
wanted_nopc = want_nopc_h8300s;
+ realregs = 11;
}
}
fetch_regs_from_dump (gch, wanted_nopc);
/* And supply the extra ones the simulator uses */
- for (regno = NUM_REALREGS; regno < NUM_REGS; regno++)
+ for (regno = realregs; regno < NUM_REGS; regno++)
{
int buf = 0;
regcache_raw_supply (current_regcache, regno, (char *) &buf);