*** empty log message ***
[deliverable/binutils-gdb.git] / gas / frags.h
index 7c2962109bc57e30d97a4ae0b952294ed277c319..9d52ae8357958c96193eef1d17a15f32a0502a51 100644 (file)
@@ -1,5 +1,5 @@
 /* frags.h - Header file for the frag concept.
-   Copyright 1987, 1992, 1993, 1994, 1995, 1997, 1998, 1999, 2000
+   Copyright 1987, 1992, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001
    Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
@@ -38,13 +38,14 @@ struct obstack;
    of a particular frag}+offset.
 
    BUG: it may be smarter to have a single pointer off to various different
-   notes for different frag kinds.  See how code pans.   */
+   notes for different frag kinds.  See how code pans.  */
 
 struct frag {
   /* Object file address (as an octet offset).  */
   addressT fr_address;
-  /* Chain forward; ascending address order.  Rooted in frch_root.  */
-  struct frag *fr_next;
+  /* When relaxing multiple times, remember the address the frag had
+     in the last relax pass.  */
+  addressT last_fr_address;
 
   /* (Fixed) number of octets we know we have.  May be 0.  */
   offsetT fr_fix;
@@ -52,16 +53,27 @@ struct frag {
      The generic frag handling code no longer makes any use of fr_var.  */
   offsetT fr_var;
   /* For variable-length tail.  */
-  symbolS *fr_symbol;
-  /* For variable-length tail.  */
   offsetT fr_offset;
+  /* For variable-length tail.  */
+  symbolS *fr_symbol;
   /* Points to opcode low addr byte, for relaxation.  */
   char *fr_opcode;
 
+  /* Chain forward; ascending address order.  Rooted in frch_root.  */
+  struct frag *fr_next;
+
+  /* Where the frag was created, or where it became a variant frag.  */
+  char *fr_file;
+  unsigned int fr_line;
+
 #ifndef NO_LISTING
   struct list_info_struct *line;
 #endif
 
+  /* Flipped each relax pass so we can easily determine whether
+     fr_address has been adjusted.  */
+  unsigned int relax_marker:1;
+
   /* What state is my tail in? */
   relax_stateT fr_type;
   relax_substateT fr_subtype;
@@ -82,10 +94,6 @@ struct frag {
   TC_FRAG_TYPE tc_frag_data;
 #endif
 
-  /* Where the frag was created, or where it became a variant frag.  */
-  char *fr_file;
-  unsigned int fr_line;
-
   /* Data begins here.  */
   char fr_literal[1];
 };
This page took 0.025486 seconds and 4 git commands to generate.