X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fdbug-rom.c;h=135d06e42fd2e2cd4b32fd3a697b8dbeac486a12;hb=3a8356ffac809056cb3650c50a00f4adb30cc147;hp=c4f0ef043d5d75f84fa9cea3181f24ded1d1ddd6;hpb=c410a84ca9f4c590dcc494a77d421f5b7019b973;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/dbug-rom.c b/gdb/dbug-rom.c index c4f0ef043d..135d06e42f 100644 --- a/gdb/dbug-rom.c +++ b/gdb/dbug-rom.c @@ -1,6 +1,5 @@ /* 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-2013 Free Software Foundation, Inc. Written by Stan Shebs of Cygnus Support. @@ -8,7 +7,7 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -17,9 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* dBUG is a monitor supplied on various Motorola boards, including m68k, ColdFire, and PowerPC-based designs. The code here assumes @@ -42,6 +39,7 @@ dbug_supply_register (struct regcache *regcache, char *regname, int regnamelen, char *val, int vallen) { int regno; + struct gdbarch *gdbarch = get_regcache_arch (regcache); if (regnamelen != 2) return; @@ -51,12 +49,12 @@ dbug_supply_register (struct regcache *regcache, char *regname, case 'S': if (regname[1] != 'R') return; - regno = PS_REGNUM; + regno = gdbarch_ps_regnum (gdbarch); break; case 'P': if (regname[1] != 'C') return; - regno = PC_REGNUM; + regno = gdbarch_pc_regnum (gdbarch); break; case 'D': if (regname[1] < '0' || regname[1] > '7') @@ -75,10 +73,10 @@ dbug_supply_register (struct regcache *regcache, char *regname, 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) @@ -91,8 +89,7 @@ dbug_regname (int index) /* no float registers */ }; - if ((index >= (sizeof (regnames) / sizeof (regnames[0]))) - || (index < 0) || (index >= NUM_REGS)) + if (index >= ARRAY_SIZE (regnames) || index < 0) return NULL; else return regnames[index]; @@ -109,7 +106,8 @@ static char *dbug_inits[] = 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 */ @@ -141,9 +139,9 @@ init_dbug_cmds (void) 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 */ dbug_cmds.loadresp = "\n"; /* load response */ dbug_cmds.prompt = "dBUG>"; /* monitor command prompt */