Fix PR symtab/15391
[deliverable/binutils-gdb.git] / gdb / utils.c
index 18ee9bbf98b4a88308394424cf3dbe94c01531c6..f5c133974fbb588515dc01d6fb43b84d2636db65 100644 (file)
@@ -3234,6 +3234,23 @@ align_down (ULONGEST v, int n)
   return (v & -n);
 }
 
+/* See utils.h.  */
+
+LONGEST
+gdb_sign_extend (LONGEST value, int bit)
+{
+  gdb_assert (bit >= 1 && bit <= 8 * sizeof (LONGEST));
+
+  if (((value >> (bit - 1)) & 1) != 0)
+    {
+      LONGEST signbit = ((LONGEST) 1) << (bit - 1);
+
+      value = (value ^ signbit) - signbit;
+    }
+
+  return value;
+}
+
 /* Allocation function for the libiberty hash table which uses an
    obstack.  The obstack is passed as DATA.  */
 
This page took 0.024648 seconds and 4 git commands to generate.