{
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:
if (TARGET_ARCHITECTURE->arch == bfd_arch_h8300)
{
wanted = want_h8300h;
+ realregs = 10;
switch (TARGET_ARCHITECTURE->mach)
{
case bfd_mach_h8300s:
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;
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 ();
{0};
static int
-e7000_insert_breakpoint (CORE_ADDR addr, char *shadow)
+e7000_insert_breakpoint (CORE_ADDR addr, bfd_byte *shadow)
{
int i;
char buf[200];
}
static int
-e7000_remove_breakpoint (CORE_ADDR addr, char *shadow)
+e7000_remove_breakpoint (CORE_ADDR addr, bfd_byte *shadow)
{
int i;
char buf[200];
int had_sleep = 0;
int loop = 1;
char *wanted_nopc = NULL;
+ int realregs = 0;
/* Then echo chars until PC= string seen */
gch (); /* Drop cr */
if (TARGET_ARCHITECTURE->arch == bfd_arch_sh)
{
wanted_nopc = want_nopc_sh;
+ realregs = 59;
switch (TARGET_ARCHITECTURE->mach)
{
case bfd_mach_sh3:
if (TARGET_ARCHITECTURE->arch == bfd_arch_h8300)
{
wanted_nopc = want_nopc_h8300h;
+ realregs = 10;
switch (TARGET_ARCHITECTURE->mach)
{
case bfd_mach_h8300s:
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);
add_com ("drain", class_obscure, e7000_drain_command,
_("Drain pending e7000 text buffers."));
- deprecated_add_show_from_set
- (add_set_cmd ("usehardbreakpoints", no_class,
- var_integer, (char *) &use_hard_breakpoints, "\
-Set use of hardware breakpoints for all breakpoints.\n", &setlist),
- &showlist);
+ add_setshow_integer_cmd ("usehardbreakpoints", no_class,
+ &use_hard_breakpoints, _("\
+Set use of hardware breakpoints for all breakpoints."), _("\
+Show use of hardware breakpoints for all breakpoints."), NULL,
+ NULL,
+ NULL, /* FIXME: i18n: */
+ &setlist, &showlist);
}