http://sourceware.org/ml/gdb-patches/2010-11/msg00112.html
authorAndrew Burgess <aburgess@broadcom.com>
Tue, 11 Jan 2011 14:19:34 +0000 (14:19 +0000)
committerAndrew Burgess <aburgess@broadcom.com>
Tue, 11 Jan 2011 14:19:34 +0000 (14:19 +0000)
gdb/ChangeLog
* remote-sim.c (gdbsim_store_register): Update API to
sim_store_register to check more error conditions.
include/gdb/ChangeLog
* remote-sim.h (sim_store_register): Update the API
documentation for this function.
sim/erc32/ChangeLog
sim/h8300/ChangeLog
sim/m32c/ChangeLog
sim/mn10300/ChangeLog
sim/ppc/ChangeLog
sim/rx/ChangeLog
sim/v850/ChangeLog
* ???.c (sim_store_register): Update return value to
match new API.

18 files changed:
gdb/ChangeLog
gdb/remote-sim.c
include/gdb/ChangeLog
include/gdb/remote-sim.h
sim/erc32/ChangeLog
sim/erc32/interf.c
sim/h8300/ChangeLog
sim/h8300/compile.c
sim/m32c/ChangeLog
sim/m32c/gdb-if.c
sim/mn10300/ChangeLog
sim/mn10300/interp.c
sim/ppc/ChangeLog
sim/ppc/gdb-sim.c
sim/rx/ChangeLog
sim/rx/gdb-if.c
sim/v850/ChangeLog
sim/v850/interp.c

index 2e86bb8..18f70ef 100644 (file)
@@ -1,3 +1,8 @@
+2011-01-11  Andrew Burgess  <aburgess@broadcom.com>
+
+       * remote-sim.c (gdbsim_store_register): Update API to
+       sim_store_register to check more error conditions.
+
 2011-01-10  Michael Snyder  <msnyder@vmware.com>
 
        * nto-procfs.c: Comment cleanup, mostly periods and spaces.
index f2015f0..baaf439 100644 (file)
@@ -529,9 +529,13 @@ gdbsim_store_register (struct target_ops *ops,
       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);
index 4e6b852..19509e2 100644 (file)
@@ -1,3 +1,8 @@
+2011-01-11  Andrew Burgess  <aburgess@broadcom.com>
+
+       * remote-sim.h (sim_store_register): Update the API
+       documentation for this function.
+
 2010-09-06  Pedro Alves  <pedro@codesourcery.com>
 
        * signals.def: Replace all ANY uses by SET with specific numbers.
index 9c20452..a171cfd 100644 (file)
@@ -191,13 +191,15 @@ int sim_fetch_register (SIM_DESC sd, int regno, unsigned char *buf, int length);
 
 
 /* Store register REGNO from the raw (target endian) value in BUF.
-   Return the actual size of the register or zero if REGNO is not
-   applicable.
 
-   Legacy implementations ignore LENGTH and always return -1.
+   Return the actual size of the register, any size not equal to
+   LENGTH indicates the register was not updated correctly.
 
-   If LENGTH does not match the size of REGNO no data is transfered
-   (the actual register size is still returned). */
+   Return a LENGTH of -1 to indicate the register was not updated
+   and an error has occurred.
+
+   Return a LENGTH of 0 to indicate the register was not updated
+   but no error has occurred. */
 
 int sim_store_register (SIM_DESC sd, int regno, unsigned char *buf, int length);
 
index cdfcc59..cf128ba 100644 (file)
@@ -1,3 +1,8 @@
+2011-01-11  Andrew Burgess  <aburgess@broadcom.com>
+
+       * interf.c (sim_store_register): Update return value to
+       match new API.
+
 2010-05-20  Joel Brobecker  <brobecker@adacore.com>
 
        * sis.h: Remove #include <stdint.h>.
index edba534..d81511a 100644 (file)
@@ -330,7 +330,7 @@ sim_store_register(sd, regno, value, length)
        regval = (value[3] << 24) | (value[2] << 16)
                 | (value[1] << 8) | value[0];
     set_regi(&sregs, regno, regval);
-    return -1;
+    return length;
 }
 
 
index adda60e..81d9d01 100644 (file)
@@ -1,3 +1,8 @@
+2011-01-11  Andrew Burgess  <aburgess@broadcom.com>
+
+       * compile.c (sim_store_register): Update return value to
+       match new API.
+
 2010-04-14  Mike Frysinger  <vapier@gentoo.org>
 
        * compile.c (sim_write): Add const to buffer arg.
index 44d60f6..b249080 100644 (file)
@@ -4715,7 +4715,7 @@ sim_store_register (SIM_DESC sd, int rn, unsigned char *value, int length)
       h8_set_ticks (sd, longval);
       break;
     }
-  return -1;
+  return length;
 }
 
 int
index 89e6643..1a34d71 100644 (file)
@@ -1,3 +1,8 @@
+2011-01-11  Andrew Burgess <aburgess@broadcom.com>
+
+       * gdb-if.c (sim_store_register): Update return value to
+       match new API.
+
 2010-12-04  Masaki Muranaka  <monaka@monami-software.com>
 
        * Makefile.in: Use CC_FOR_BUILD to build opc2c.
index 1a93ab6..7da4416 100644 (file)
@@ -406,7 +406,7 @@ sim_store_register (SIM_DESC sd, int regno, unsigned char *buf, int length)
   check_desc (sd);
 
   if (!check_regno (regno))
-    return 0;
+    return -1;
 
   size = reg_size (regno);
 
@@ -503,7 +503,7 @@ sim_store_register (SIM_DESC sd, int regno, unsigned char *buf, int length)
        default:
          fprintf (stderr, "m32c minisim: unrecognized register number: %d\n",
                   regno);
-         return -1;
+         return 0;
        }
     }
 
index 0717a71..2077186 100644 (file)
@@ -1,3 +1,8 @@
+2011-01-11  Andrew Burgess  <aburgess@broadcom.com>
+
+       * interp.c (sim_store_register): Update return value to
+       match new API.
+
 2010-04-19  Mike Frysinger  <vapier@gentoo.org>
 
        * dv-mn103ser.c (sockser_addr, USE_SOCKSER_P): Delete
index 6beac48..1230bf5 100644 (file)
@@ -410,7 +410,7 @@ sim_store_register (SIM_DESC sd,
                    int length)
 {
   State.regs[rn] = get_word (memory);
-  return -1;
+  return length;
 }
 
 
index 3a2f8ce..faeec4f 100644 (file)
@@ -1,3 +1,8 @@
+2011-01-11  Andrew Burgess  <aburgess@broadcom.com>
+
+       * gdb-sim.c (sim_store_register): Update return value to
+       match new API.
+
 2011-01-05  Joel Brobecker  <brobecker@adacore.com>
 
        * psim.texinfo: Copyright year update.
index 97567ec..9041f70 100644 (file)
@@ -1290,7 +1290,7 @@ sim_store_register (SIM_DESC sd, int regno, unsigned char *buf, int length)
   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));
index 1f9866a..f29cb93 100644 (file)
@@ -1,3 +1,8 @@
+2011-01-11  Andrew Burgess  <aburgess@broadcom.com>
+
+       * gdb-if.c (sim_store_register): Update return value to
+       match new API.
+
 2010-12-14  DJ Delorie  <dj@redhat.com>
 
        * rx.c (decode_opcode): For "MVFC PC,", use the address of the
index 8922228..ca41161 100644 (file)
@@ -534,12 +534,12 @@ sim_store_register (SIM_DESC sd, int regno, unsigned char *buf, int length)
   check_desc (sd);
 
   if (!check_regno (regno))
-    return 0;
+    return -1;
 
   size = reg_size (regno);
 
   if (length != size)
-    return 0;
+    return -1;
 
   if (rx_big_endian)
     val = get_be (buf, length);
@@ -630,7 +630,7 @@ sim_store_register (SIM_DESC sd, int regno, unsigned char *buf, int length)
     default:
       fprintf (stderr, "rx minisim: unrecognized register number: %d\n",
               regno);
-      return -1;
+      return 0;
     }
 
   return size;
index 4d43d3e..5ca0e57 100644 (file)
@@ -1,3 +1,8 @@
+2011-01-11  Andrew Burgess  <aburgess@broadcom.com>
+
+       * interp.c (sim_store_register): Update return value to
+       match new API.
+
 2010-03-30  Mike Frysinger  <vapier@gentoo.org>
 
        * interp.c (interrupt_names): Add const to pointer type.
index e8bea5f..21b587e 100644 (file)
@@ -327,7 +327,7 @@ sim_store_register (sd, rn, memory, length)
      int length;
 {
   State.regs[rn] = T2H_4 (*(unsigned32*)memory);
-  return -1;
+  return length;
 }
 
 void