summaryrefslogtreecommitdiffstats
path: root/contrib/binutils/gas/frags.h
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2001-05-28 05:21:37 +0000
committerobrien <obrien@FreeBSD.org>2001-05-28 05:21:37 +0000
commit328e45595b12375b6d16a846069507d25086abdb (patch)
treeae2a6f4f4987889b7bd2af7bdf0b86fa580df011 /contrib/binutils/gas/frags.h
parent7fbb72605a1c3bcb81f8b6bb6297ffef30f84335 (diff)
downloadFreeBSD-src-328e45595b12375b6d16a846069507d25086abdb.zip
FreeBSD-src-328e45595b12375b6d16a846069507d25086abdb.tar.gz
Import of GNU Binutils version 2.11.0.
Believe it or not, this is heavily stripped down.
Diffstat (limited to 'contrib/binutils/gas/frags.h')
-rw-r--r--contrib/binutils/gas/frags.h75
1 files changed, 35 insertions, 40 deletions
diff --git a/contrib/binutils/gas/frags.h b/contrib/binutils/gas/frags.h
index dcd9a2f..c1c652b 100644
--- a/contrib/binutils/gas/frags.h
+++ b/contrib/binutils/gas/frags.h
@@ -26,37 +26,34 @@
struct obstack;
#endif
-/*
- * A code fragment (frag) is some known number of chars, followed by some
- * unknown number of chars. Typically the unknown number of chars is an
- * instruction address whose size is yet unknown. We always know the greatest
- * possible size the unknown number of chars may become, and reserve that
- * much room at the end of the frag.
- * Once created, frags do not change address during assembly.
- * We chain the frags in (a) forward-linked list(s). The object-file address
- * of the 1st char of a frag is generally not known until after relax().
- * Many things at assembly time describe an address by {object-file-address
- * 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
- */
-
-struct frag
-{
- /* Object file address (as an octet offset). */
+/* A code fragment (frag) is some known number of chars, followed by some
+ unknown number of chars. Typically the unknown number of chars is an
+ instruction address whose size is yet unknown. We always know the greatest
+ possible size the unknown number of chars may become, and reserve that
+ much room at the end of the frag.
+ Once created, frags do not change address during assembly.
+ We chain the frags in (a) forward-linked list(s). The object-file address
+ of the 1st char of a frag is generally not known until after relax().
+ Many things at assembly time describe an address by {object-file-address
+ 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. */
+
+struct frag {
+ /* Object file address (as an octet offset). */
addressT fr_address;
- /* Chain forward; ascending address order. Rooted in frch_root. */
+ /* Chain forward; ascending address order. Rooted in frch_root. */
struct frag *fr_next;
- /* (Fixed) number of octets we know we have. May be 0. */
+ /* (Fixed) number of octets we know we have. May be 0. */
offsetT fr_fix;
/* May be used for (Variable) number of octets after above.
The generic frag handling code no longer makes any use of fr_var. */
offsetT fr_var;
- /* For variable-length tail. */
+ /* For variable-length tail. */
symbolS *fr_symbol;
- /* For variable-length tail. */
+ /* For variable-length tail. */
offsetT fr_offset;
/* Points to opcode low addr byte, for relaxation. */
char *fr_opcode;
@@ -94,8 +91,8 @@ struct frag
};
#define SIZEOF_STRUCT_FRAG \
-((char *)zero_address_frag.fr_literal-(char *)&zero_address_frag)
-/* We want to say fr_literal[0] above. */
+((char *) zero_address_frag.fr_literal - (char *) &zero_address_frag)
+/* We want to say fr_literal[0] above. */
/* Current frag we are building. This frag is incomplete. It is,
however, included in frchain_now. The fr_fix field is bogus;
@@ -104,31 +101,28 @@ COMMON fragS *frag_now;
extern addressT frag_now_fix PARAMS ((void));
extern addressT frag_now_fix_octets PARAMS ((void));
-/* For foreign-segment symbol fixups. */
+/* For foreign-segment symbol fixups. */
COMMON fragS zero_address_frag;
-/* For local common (N_BSS segment) fixups. */
+/* For local common (N_BSS segment) fixups. */
COMMON fragS bss_address_frag;
#if 0
-/*
- * A macro to speed up appending exactly 1 char
- * to current frag.
- */
-/* JF changed < 1 to <= 1 to avoid a race conditon */
-#define FRAG_APPEND_1_CHAR(datum) \
-{ \
- if (obstack_room( &frags ) <= 1) {\
- frag_wane (frag_now); \
- frag_new (0); \
- } \
- obstack_1grow( &frags, datum ); \
+/* A macro to speed up appending exactly 1 char to current frag. */
+/* JF changed < 1 to <= 1 to avoid a race conditon. */
+#define FRAG_APPEND_1_CHAR(datum) \
+{ \
+ if (obstack_room (&frags) <= 1) \
+ { \
+ frag_wane (frag_now); \
+ frag_new (0); \
+ } \
+ obstack_1grow (&frags, datum); \
}
#else
extern void frag_append_1_char PARAMS ((int));
#define FRAG_APPEND_1_CHAR(X) frag_append_1_char (X)
#endif
-
void frag_init PARAMS ((void));
fragS *frag_alloc PARAMS ((struct obstack *));
void frag_grow PARAMS ((unsigned int nchars));
@@ -138,6 +132,7 @@ void frag_align_pattern PARAMS ((int alignment,
const char *fill_pattern,
int n_fill,
int max));
+void frag_align_code PARAMS ((int alignment, int max));
void frag_new PARAMS ((int old_frags_var_max_size));
void frag_wane PARAMS ((fragS * fragP));
OpenPOWER on IntegriCloud