* ieee.c (ieee_finish_compilation_unit): Permit coalescing ranges
authorIan Lance Taylor <ian@airs.com>
Mon, 28 Oct 1996 22:01:06 +0000 (22:01 +0000)
committerIan Lance Taylor <ian@airs.com>
Mon, 28 Oct 1996 22:01:06 +0000 (22:01 +0000)
that are up to 0x1000 bytes apart, not just 64.
(ieee_add_bb11_blocks): Don't bother to emit a BB11 that is less
than 0x100 bytes.
(ieee_lineno): Only emit line numbers that are less than
info->highaddr.

binutils/ChangeLog
binutils/ieee.c

index 980afeda15fca7849d9c9704bbdad75b6d974e3b..57d3b368f72c75df369a27b27430103ccc9d17ec 100644 (file)
@@ -1,5 +1,20 @@
+Mon Oct 28 16:58:14 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * ieee.c (ieee_finish_compilation_unit): Permit coalescing ranges
+       that are up to 0x1000 bytes apart, not just 64.
+       (ieee_add_bb11_blocks): Don't bother to emit a BB11 that is less
+       than 0x100 bytes.
+       (ieee_lineno): Only emit line numbers that are less than
+       info->highaddr.
+
 Fri Oct 25 12:12:17 1996  Ian Lance Taylor  <ian@cygnus.com>
 
+       * ieee.c (struct ieee_defined_enum): Add defined field.
+       (ieee_enum_type): If the enum tag has been seen before but not
+       defined, reuse the same type index, and define it.
+       (ieee_tag_type): If this enum has not been defined, add an
+       undefined entry to the list of enums.
+
        * objdump.c (disassemble_bytes): Let the disassembler override the
        number of bytes printed on a line.
 
index ef8edc7174f7785d05af036df67d1fd7f56cb39c..f1276b3abfa5cc8890c7a76eea39d6feca2355ea 100644 (file)
@@ -5085,7 +5085,7 @@ ieee_finish_compilation_unit (info)
 
       /* Coalesce ranges if it seems reasonable.  */
       while (r->next != NULL
-            && high + 64 >= r->next->low
+            && high + 0x1000 >= r->next->low
             && (r->next->high
                 <= (bfd_get_section_vma (info->abfd, s)
                     + bfd_section_size (info->abfd, s))))
@@ -5154,7 +5154,8 @@ ieee_add_bb11_blocks (abfd, sec, data)
          return;
        }
 
-      if (low < r->low)
+      if (low < r->low
+         && r->low - low > 0x100)
        {
          if (! ieee_add_bb11 (info, sec, low, r->low))
            {
@@ -7586,9 +7587,12 @@ ieee_lineno (p, filename, lineno, addr)
        return false;
     }
 
-  info->pending_lineno_filename = filename;
-  info->pending_lineno = lineno;
-  info->pending_lineno_addr = addr;
+  if (addr < info->highaddr)
+    {
+      info->pending_lineno_filename = filename;
+      info->pending_lineno = lineno;
+      info->pending_lineno_addr = addr;
+    }
 
   return true;
 }