use the libiberty crc code
authorTom Tromey <tromey@redhat.com>
Wed, 14 Aug 2013 17:57:09 +0000 (17:57 +0000)
committerTom Tromey <tromey@redhat.com>
Wed, 14 Aug 2013 17:57:09 +0000 (17:57 +0000)
gdb has a copy of some CRC code that also appears in libiberty.
This patch just removes the local copy.

You may notice that "crc32" returns unsigned long but "xcrc32" returns
unsigned int.  However, this does not matter, because crc32 actually
does all its operations in unsigned int type, and only the return
result is widened.  So, the difference does not matter.

* remote.c (crc32_table, crc32): Remove.
(remote_verify_memory): Use xcrc32.

gdb/ChangeLog
gdb/remote.c

index 35d6bcc9f5227e5683181906cb07a65be0fe26d1..bde9c2d3769255c53b18b373a74994086c03a35f 100644 (file)
@@ -1,3 +1,8 @@
+2013-08-14  Tom Tromey  <tromey@redhat.com>
+
+       * remote.c (crc32_table, crc32): Remove.
+       (remote_verify_memory): Use xcrc32.
+
 2013-08-13  Sergio Durigan Junior  <sergiodj@redhat.com>
 
        * value.h (create_internalvar_type_lazy): Adjust prototype
index 96a62ea90669f211f4f0a39247efa76f37a797a7..47012fef8885dec6d68be946dfdee2febe07b510 100644 (file)
@@ -8521,36 +8521,6 @@ remote_remove_hw_breakpoint (struct gdbarch *gdbarch,
                  _("remote_remove_hw_breakpoint: reached end of function"));
 }
 
-/* Table used by the crc32 function to calcuate the checksum.  */
-
-static unsigned long crc32_table[256] =
-{0, 0};
-
-static unsigned long
-crc32 (const unsigned char *buf, int len, unsigned int crc)
-{
-  if (!crc32_table[1])
-    {
-      /* Initialize the CRC table and the decoding table.  */
-      int i, j;
-      unsigned int c;
-
-      for (i = 0; i < 256; i++)
-       {
-         for (c = i << 24, j = 8; j > 0; --j)
-           c = c & 0x80000000 ? (c << 1) ^ 0x04c11db7 : (c << 1);
-         crc32_table[i] = c;
-       }
-    }
-
-  while (len--)
-    {
-      crc = (crc << 8) ^ crc32_table[((crc >> 24) ^ *buf) & 255];
-      buf++;
-    }
-  return crc;
-}
-
 /* Verify memory using the "qCRC:" request.  */
 
 static int
@@ -8571,7 +8541,7 @@ remote_verify_memory (struct target_ops *ops,
 
   /* Be clever; compute the host_crc before waiting for target
      reply.  */
-  host_crc = crc32 (data, size, 0xffffffff);
+  host_crc = xcrc32 (data, size, 0xffffffff);
 
   getpkt (&rs->buf, &rs->buf_size, 0);
   if (rs->buf[0] == 'E')