/* Remote debugging interface to dBUG ROM monitor for GDB, the GNU debugger.
- Copyright (C) 1996, 1998, 1999, 2000, 2001, 2007
- Free Software Foundation, Inc.
+ Copyright (C) 1996, 1998-2001, 2007-2012 Free Software Foundation,
+ Inc.
Written by Stan Shebs of Cygnus Support.
int regnamelen, char *val, int vallen)
{
int regno;
+ struct gdbarch *gdbarch = get_regcache_arch (regcache);
if (regnamelen != 2)
return;
case 'S':
if (regname[1] != 'R')
return;
- regno = gdbarch_ps_regnum (current_gdbarch);
+ regno = gdbarch_ps_regnum (gdbarch);
break;
case 'P':
if (regname[1] != 'C')
return;
- regno = gdbarch_pc_regnum (current_gdbarch);
+ regno = gdbarch_pc_regnum (gdbarch);
break;
case 'D':
if (regname[1] < '0' || regname[1] > '7')
monitor_supply_register (regcache, regno, val);
}
-/* This array of registers needs to match the indexes used by GDB. The
- whole reason this exists is because the various ROM monitors use
- different names than GDB does, and don't support all the registers
- either. So, typing "info reg sp" becomes an "A7". */
+/* This array of registers needs to match the indexes used by GDB.
+ The whole reason this exists is because the various ROM monitors
+ use different names than GDB does, and don't support all the
+ registers either. So, typing "info reg sp" becomes an "A7". */
static const char *
dbug_regname (int index)
/* no float registers */
};
- if ((index >= (sizeof (regnames) / sizeof (regnames[0])))
- || (index < 0) || (index >= gdbarch_num_regs (current_gdbarch)))
+ if (index >= ARRAY_SIZE (regnames) || index < 0)
return NULL;
else
return regnames[index];
static void
init_dbug_cmds (void)
{
- dbug_cmds.flags = MO_CLR_BREAK_USES_ADDR | MO_GETMEM_NEEDS_RANGE | MO_FILL_USES_ADDR;
+ dbug_cmds.flags = MO_CLR_BREAK_USES_ADDR
+ | MO_GETMEM_NEEDS_RANGE | MO_FILL_USES_ADDR;
dbug_cmds.init = dbug_inits; /* Init strings */
dbug_cmds.cont = "go\r"; /* continue command */
dbug_cmds.step = "trace\r"; /* single step */
dbug_cmds.getreg.term = NULL; /* getreg.term */
dbug_cmds.getreg.term_cmd = NULL; /* getreg.term_cmd */
dbug_cmds.dump_registers = "rd\r"; /* dump_registers */
- dbug_cmds.register_pattern = "\\(\\w+\\) +:\\([0-9a-fA-F]+\\b\\)"; /* register_pattern */
+ /* register_pattern */
+ dbug_cmds.register_pattern = "\\(\\w+\\) +:\\([0-9a-fA-F]+\\b\\)";
dbug_cmds.supply_register = dbug_supply_register;
dbug_cmds.load_routine = NULL; /* load_routine (defaults to SRECs) */
dbug_cmds.load = "dl\r"; /* download command */