* remote.c (init_remote_state): Compute sizeof_g_packet by
authorTheodore A. Roth <troth@openavr.org>
Wed, 4 Jun 2003 04:31:37 +0000 (04:31 +0000)
committerTheodore A. Roth <troth@openavr.org>
Wed, 4 Jun 2003 04:31:37 +0000 (04:31 +0000)
accumulation of the size of all registers instead of blindly using
DEPRECATED_REGISTER_BYTES.

gdb/ChangeLog
gdb/remote.c

index 7b72701..0202a1e 100644 (file)
@@ -1,3 +1,9 @@
+2003-06-03  Theodore A. Roth  <troth@openavr.org>
+
+       * remote.c (init_remote_state): Compute sizeof_g_packet by 
+       accumulation of the size of all registers instead of blindly using
+       DEPRECATED_REGISTER_BYTES.
+
 2003-06-03  Michael Snyder  <msnyder@redhat.com>
 
        * config/h8300/tm-h8300.h (h8300sxmode): Declare.
index 40be8e6..e55e141 100644 (file)
@@ -261,9 +261,10 @@ init_remote_state (struct gdbarch *gdbarch)
   int regnum;
   struct remote_state *rs = xmalloc (sizeof (struct remote_state));
 
-  /* Start out by having the remote protocol mimic the existing
-     behavour - just copy in the description of the register cache.  */
-  rs->sizeof_g_packet = DEPRECATED_REGISTER_BYTES; /* OK */
+  if (DEPRECATED_REGISTER_BYTES != 0)
+    rs->sizeof_g_packet = DEPRECATED_REGISTER_BYTES;
+  else
+    rs->sizeof_g_packet = 0;
 
   /* Assume a 1:1 regnum<->pnum table.  */
   rs->regs = xcalloc (NUM_REGS + NUM_PSEUDO_REGS, sizeof (struct packet_reg));
@@ -274,8 +275,11 @@ init_remote_state (struct gdbarch *gdbarch)
       r->regnum = regnum;
       r->offset = REGISTER_BYTE (regnum);
       r->in_g_packet = (regnum < NUM_REGS);
-      /* ...size = REGISTER_RAW_SIZE (regnum); */
       /* ...name = REGISTER_NAME (regnum); */
+
+      /* Compute packet size by accumulating the size of all registers. */
+      if (DEPRECATED_REGISTER_BYTES == 0)
+        rs->sizeof_g_packet += register_size (current_gdbarch, regnum);
     }
 
   /* Default maximum number of characters in a packet body. Many