diff -rwu clean/gdb-7.2.50.20101027/gdb/remote-sim.c working/gdb-7.2.50.20101027/gdb/remote-sim.c --- clean/gdb-7.2.50.20101027/gdb/remote-sim.c 2010-08-10 05:39:26.000000000 +0100 +++ working/gdb-7.2.50.20101027/gdb/remote-sim.c 2010-11-16 11:07:54.398861201 +0000 @@ -527,9 +527,13 @@ if (nr_bytes > 0 && nr_bytes != register_size (gdbarch, regno)) internal_error (__FILE__, __LINE__, _("Register size different to expected")); - /* FIXME: cagney/2002-05-27: Should check `nr_bytes == 0' - indicating that GDB and the SIM have different ideas about - which registers are fetchable. */ + if (nr_bytes < 0) + internal_error (__FILE__, __LINE__, + _("Register %d not updated"), regno); + if (nr_bytes == 0) + warning (_("Register %s not updated"), + gdbarch_register_name (gdbarch, regno)); + if (remote_debug) { printf_filtered ("gdbsim_store_register: %d", regno); Only in working/gdb-7.2.50.20101027/gdb: remote-sim.c~ diff -rwu clean/gdb-7.2.50.20101027/sim/erc32/interf.c working/gdb-7.2.50.20101027/sim/erc32/interf.c --- clean/gdb-7.2.50.20101027/sim/erc32/interf.c 2010-05-11 15:18:20.000000000 +0100 +++ working/gdb-7.2.50.20101027/sim/erc32/interf.c 2010-10-27 16:56:12.607262027 +0100 @@ -330,7 +330,7 @@ regval = (value[3] << 24) | (value[2] << 16) | (value[1] << 8) | value[0]; set_regi(&sregs, regno, regval); - return -1; + return length; } diff -rwu clean/gdb-7.2.50.20101027/sim/h8300/compile.c working/gdb-7.2.50.20101027/sim/h8300/compile.c --- clean/gdb-7.2.50.20101027/sim/h8300/compile.c 2010-04-14 08:38:04.000000000 +0100 +++ working/gdb-7.2.50.20101027/sim/h8300/compile.c 2010-10-27 16:56:28.193119915 +0100 @@ -4715,7 +4715,7 @@ h8_set_ticks (sd, longval); break; } - return -1; + return length; } int diff -rwu clean/gdb-7.2.50.20101027/sim/m32c/gdb-if.c working/gdb-7.2.50.20101027/sim/m32c/gdb-if.c --- clean/gdb-7.2.50.20101027/sim/m32c/gdb-if.c 2010-04-14 08:38:04.000000000 +0100 +++ working/gdb-7.2.50.20101027/sim/m32c/gdb-if.c 2010-10-27 16:57:29.622058082 +0100 @@ -502,7 +502,7 @@ default: fprintf (stderr, "m32c minisim: unrecognized register number: %d\n", regno); - return -1; + return 0; } } diff -rwu clean/gdb-7.2.50.20101027/sim/mn10300/interp.c working/gdb-7.2.50.20101027/sim/mn10300/interp.c --- clean/gdb-7.2.50.20101027/sim/mn10300/interp.c 2004-06-26 23:18:18.000000000 +0100 +++ working/gdb-7.2.50.20101027/sim/mn10300/interp.c 2010-10-27 16:59:00.810068620 +0100 @@ -410,7 +410,7 @@ int length) { State.regs[rn] = get_word (memory); - return -1; + return length; } diff -rwu clean/gdb-7.2.50.20101027/sim/ppc/gdb-sim.c working/gdb-7.2.50.20101027/sim/ppc/gdb-sim.c --- clean/gdb-7.2.50.20101027/sim/ppc/gdb-sim.c 2010-01-01 10:03:33.000000000 +0000 +++ working/gdb-7.2.50.20101027/sim/ppc/gdb-sim.c 2010-10-27 17:00:16.559040694 +0100 @@ -1289,7 +1289,7 @@ const char *regname = regnum2name (regno); if (simulator == NULL || regname == NULL) - return -1; + return 0; TRACE(trace_gdb, ("sim_store_register(regno=%d(%s), buf=0x%lx)\n", regno, regname, (long)buf)); diff -rwu clean/gdb-7.2.50.20101027/sim/rx/gdb-if.c working/gdb-7.2.50.20101027/sim/rx/gdb-if.c --- clean/gdb-7.2.50.20101027/sim/rx/gdb-if.c 2010-09-24 00:05:28.000000000 +0100 +++ working/gdb-7.2.50.20101027/sim/rx/gdb-if.c 2010-10-27 16:59:37.090066882 +0100 @@ -630,7 +630,7 @@ default: fprintf (stderr, "rx minisim: unrecognized register number: %d\n", regno); - return -1; + return 0; } return size; diff -rwu clean/gdb-7.2.50.20101027/sim/v850/interp.c working/gdb-7.2.50.20101027/sim/v850/interp.c --- clean/gdb-7.2.50.20101027/sim/v850/interp.c 2010-03-31 00:43:03.000000000 +0100 +++ working/gdb-7.2.50.20101027/sim/v850/interp.c 2010-10-27 17:00:02.016083444 +0100 @@ -327,7 +327,7 @@ int length; { State.regs[rn] = T2H_4 (*(unsigned32*)memory); - return -1; + return length; } void