diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-03-03 09:11:58 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-03-03 09:11:58 +0000 |
commit | 6617cbc1eb60bc02c4fcf25ceaf07ccad481528e (patch) | |
tree | 735d1313d25f4094319b64fffac6f6b86aaed7f1 /gcc | |
parent | cb21f4069f1cc5a093610a24859e93889574f99e (diff) | |
download | gcc-6617cbc1eb60bc02c4fcf25ceaf07ccad481528e.tar.gz |
* doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
SYMBOL_REF_IN_BLOCK_P.
* doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
of SYMBOL_FLAG_IN_BLOCK.
* gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
instead of SYMBOL_REF_IN_BLOCK_P.
* explow.c (use_anchored_address): Likewise.
* rtl.c (rtx_size): Likewise.
* varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
instead of SYMBOL_FLAG_IN_BLOCK.
(make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
SYMBOL_REF_IN_BLOCK_P.
(assemble_variable): Likewise.
(output_constant_def_contents): Likewise.
(output_constant_pool): Likewise.
(default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
instead of SYMBOL_FLAG_IN_BLOCK.
* rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
SYMBOL_REF_IN_BLOCK_P.
(SYMBOL_REF_BLOCK): Likewise.
(SYMBOL_REF_OFFSET): Likewise.
(BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
SYMBOL_REF_IN_BLOCK_P.
(SYMBOL_FLAG_IN_BLOCK): Replace with...
(SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
(SYMBOL_REF_IN_BLOCK_P): Replace with...
(SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111675 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 30 | ||||
-rw-r--r-- | gcc/doc/rtl.texi | 23 | ||||
-rw-r--r-- | gcc/doc/tm.texi | 2 | ||||
-rw-r--r-- | gcc/explow.c | 2 | ||||
-rw-r--r-- | gcc/gengtype.c | 7 | ||||
-rw-r--r-- | gcc/rtl.c | 2 | ||||
-rw-r--r-- | gcc/rtl.h | 28 | ||||
-rw-r--r-- | gcc/varasm.c | 17 |
8 files changed, 73 insertions, 38 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4f1f040941d..11527685c54 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,33 @@ +2006-03-03 Richard Sandiford <richard@codesourcery.com> + + * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of + SYMBOL_REF_IN_BLOCK_P. + * doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead + of SYMBOL_FLAG_IN_BLOCK. + * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P + instead of SYMBOL_REF_IN_BLOCK_P. + * explow.c (use_anchored_address): Likewise. + * rtl.c (rtx_size): Likewise. + * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO + instead of SYMBOL_FLAG_IN_BLOCK. + (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of + SYMBOL_REF_IN_BLOCK_P. + (assemble_variable): Likewise. + (output_constant_def_contents): Likewise. + (output_constant_pool): Likewise. + (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO + instead of SYMBOL_FLAG_IN_BLOCK. + * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of + SYMBOL_REF_IN_BLOCK_P. + (SYMBOL_REF_BLOCK): Likewise. + (SYMBOL_REF_OFFSET): Likewise. + (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of + SYMBOL_REF_IN_BLOCK_P. + (SYMBOL_FLAG_IN_BLOCK): Replace with... + (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this. + (SYMBOL_REF_IN_BLOCK_P): Replace with... + (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this. + 2006-03-03 Jakub Jelinek <jakub@redhat.com> * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto. diff --git a/gcc/doc/rtl.texi b/gcc/doc/rtl.texi index 76b3a3cff67..71e6df73e89 100644 --- a/gcc/doc/rtl.texi +++ b/gcc/doc/rtl.texi @@ -502,12 +502,11 @@ This is a multi-bit field accessor that returns the @code{tls_model} to be used for a thread-local storage symbol. It returns zero for non-thread-local symbols. -@findex SYMBOL_REF_IN_BLOCK_P -@findex SYMBOL_FLAG_IN_BLOCK -@item SYMBOL_FLAG_IN_BLOCK -Set if the symbol has been assigned to an @code{object_block} structure. -@code{SYMBOL_REF_BLOCK} and @code{SYMBOL_REF_BLOCK_OFFSET} provide more -information about such symbols. +@findex SYMBOL_REF_HAS_BLOCK_INFO_P +@findex SYMBOL_FLAG_HAS_BLOCK_INFO +@item SYMBOL_FLAG_HAS_BLOCK_INFO +Set if the symbol has @code{SYMBOL_REF_BLOCK} and +@code{SYMBOL_REF_BLOCK_OFFSET} fields. @findex SYMBOL_REF_ANCHOR_P @findex SYMBOL_FLAG_ANCHOR @@ -518,7 +517,7 @@ are symbols that have a known position within an @code{object_block} and that can be used to access nearby members of that block. They are used to implement @option{-fsection-anchors}. -If this flag is set, then @code{SYMBOL_FLAG_IN_BLOCK} will be too. +If this flag is set, then @code{SYMBOL_FLAG_HAS_BLOCK_INFO} will be too. @end table Bits beginning with @code{SYMBOL_FLAG_MACH_DEP} are available for @@ -527,14 +526,16 @@ the target's use. @findex SYMBOL_REF_BLOCK @item SYMBOL_REF_BLOCK (@var{x}) -If @samp{SYMBOL_REF_IN_BLOCK_P (@var{x})}, this is the @samp{object_block} -structure to which the symbol belongs, or @code{NULL} if none. +If @samp{SYMBOL_REF_HAS_BLOCK_INFO_P (@var{x})}, this is the +@samp{object_block} structure to which the symbol belongs, +or @code{NULL} if it has not been assigned a block. @findex SYMBOL_REF_BLOCK_OFFSET @item SYMBOL_REF_BLOCK_OFFSET (@var{x}) -If @samp{SYMBOL_REF_IN_BLOCK_P (@var{x})}, this is the offset of @var{x} +If @samp{SYMBOL_REF_HAS_BLOCK_INFO_P (@var{x})}, this is the offset of @var{x} from the first object in @samp{SYMBOL_REF_BLOCK (@var{x})}. The value is -negative if @var{x} has not yet been assigned an offset. +negative if @var{x} has not yet been assigned to a block, or it has not +been given an offset within that block. @end table @node Flags diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index e99989fbde5..674cd95c694 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -5329,7 +5329,7 @@ is @code{NULL}, which disables the use of section anchors altogether. @deftypefn {Target Hook} bool TARGET_USE_ANCHORS_FOR_SYMBOL_P (rtx @var{x}) Return true if GCC should attempt to use anchors to access @code{SYMBOL_REF} -@var{x}. You can assume @samp{SYMBOL_REF_IN_BLOCK_P (@var{x})} and +@var{x}. You can assume @samp{SYMBOL_REF_HAS_BLOCK_INFO_P (@var{x})} and @samp{!SYMBOL_REF_ANCHOR_P (@var{x})}. The default version is correct for most targets, but you might need to diff --git a/gcc/explow.c b/gcc/explow.c index 361c717252d..2cc34899197 100644 --- a/gcc/explow.c +++ b/gcc/explow.c @@ -566,7 +566,7 @@ use_anchored_address (rtx x) /* Check whether BASE is suitable for anchors. */ if (GET_CODE (base) != SYMBOL_REF - || !SYMBOL_REF_IN_BLOCK_P (base) + || !SYMBOL_REF_HAS_BLOCK_INFO_P (base) || SYMBOL_REF_ANCHOR_P (base) || SYMBOL_REF_BLOCK (base) == NULL || !targetm.use_anchors_for_symbol_p (base)) diff --git a/gcc/gengtype.c b/gcc/gengtype.c index a30e2946e18..2ca4ac7af36 100644 --- a/gcc/gengtype.c +++ b/gcc/gengtype.c @@ -675,10 +675,11 @@ adjust_field_rtx_def (type_p t, options_p ARG_UNUSED (opt)) if (i == SYMBOL_REF) { - /* Add the "block_sym" field if SYMBOL_REF_IN_BLOCK_P holds. */ + /* Add the "block_sym" field if SYMBOL_REF_HAS_BLOCK_INFO_P holds. */ type_p field_tp = find_structure ("block_symbol", 0); - subfields = create_optional_field (subfields, field_tp, "block_sym", - "SYMBOL_REF_IN_BLOCK_P (&%0)"); + subfields + = create_optional_field (subfields, field_tp, "block_sym", + "SYMBOL_REF_HAS_BLOCK_INFO_P (&%0)"); } sname = xasprintf ("rtx_def_%s", rtx_name[i]); diff --git a/gcc/rtl.c b/gcc/rtl.c index fca8ffa6cfc..b1c1ac14471 100644 --- a/gcc/rtl.c +++ b/gcc/rtl.c @@ -175,7 +175,7 @@ rtvec_alloc (int n) unsigned int rtx_size (rtx x) { - if (GET_CODE (x) == SYMBOL_REF && SYMBOL_REF_IN_BLOCK_P (x)) + if (GET_CODE (x) == SYMBOL_REF && SYMBOL_REF_HAS_BLOCK_INFO_P (x)) return RTX_HDR_SIZE + sizeof (struct block_symbol); return RTX_CODE_SIZE (GET_CODE (x)); } diff --git a/gcc/rtl.h b/gcc/rtl.h index 236c8a13640..409734d4b88 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -178,7 +178,7 @@ typedef union rtunion_def rtunion; /* This structure remembers the position of a SYMBOL_REF within an object_block structure. A SYMBOL_REF only provides this information - if SYMBOL_REF_IN_BLOCK_P is true. */ + if SYMBOL_REF_HAS_BLOCK_INFO_P is true. */ struct block_symbol GTY(()) { /* The usual SYMBOL_REF fields. */ rtunion GTY ((skip)) fld[3]; @@ -212,7 +212,7 @@ struct object_block GTY(()) order of increasing offset and the following conditions will hold for each element X: - SYMBOL_REF_IN_BLOCK_P (X) + SYMBOL_REF_HAS_BLOCK_INFO_P (X) !SYMBOL_REF_ANCHOR_P (X) SYMBOL_REF_BLOCK (X) == [address of this structure] SYMBOL_REF_BLOCK_OFFSET (X) >= 0. */ @@ -222,7 +222,7 @@ struct object_block GTY(()) in order of increasing offset, and then increasing TLS model. The following conditions will hold for each element X in this vector: - SYMBOL_REF_IN_BLOCK_P (X) + SYMBOL_REF_HAS_BLOCK_INFO_P (X) SYMBOL_REF_ANCHOR_P (X) SYMBOL_REF_BLOCK (X) == [address of this structure] SYMBOL_REF_BLOCK_OFFSET (X) >= 0. */ @@ -529,7 +529,7 @@ struct rtvec_def GTY(()) { #define BLOCK_SYMBOL_CHECK(RTX) __extension__ \ ({ rtx const _symbol = (RTX); \ unsigned int flags = RTL_CHECKC1 (_symbol, 1, SYMBOL_REF).rt_int; \ - if ((flags & SYMBOL_FLAG_IN_BLOCK) == 0) \ + if ((flags & SYMBOL_FLAG_HAS_BLOCK_INFO) == 0) \ rtl_check_failed_block_symbol (__FILE__, __LINE__, \ __FUNCTION__); \ &_symbol->u.block_sym; }) @@ -1318,11 +1318,11 @@ do { \ #define SYMBOL_REF_EXTERNAL_P(RTX) \ ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_EXTERNAL) != 0) /* Set if this symbol has a block_symbol structure associated with it. */ -#define SYMBOL_FLAG_IN_BLOCK (1 << 7) -#define SYMBOL_REF_IN_BLOCK_P(RTX) \ - ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_IN_BLOCK) != 0) +#define SYMBOL_FLAG_HAS_BLOCK_INFO (1 << 7) +#define SYMBOL_REF_HAS_BLOCK_INFO_P(RTX) \ + ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_HAS_BLOCK_INFO) != 0) /* Set if this symbol is a section anchor. SYMBOL_REF_ANCHOR_P implies - SYMBOL_REF_IN_BLOCK_P. */ + SYMBOL_REF_HAS_BLOCK_INFO_P. */ #define SYMBOL_FLAG_ANCHOR (1 << 8) #define SYMBOL_REF_ANCHOR_P(RTX) \ ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_ANCHOR) != 0) @@ -1331,13 +1331,15 @@ do { \ #define SYMBOL_FLAG_MACH_DEP_SHIFT 9 #define SYMBOL_FLAG_MACH_DEP (1 << SYMBOL_FLAG_MACH_DEP_SHIFT) -/* The block to which the given SYMBOL_REF belongs, or NULL if none. - Only valid if SYMBOL_REF_IN_BLOCK_P (RTX). */ +/* If SYMBOL_REF_HAS_BLOCK_INFO_P (RTX), this is the object_block + structure to which the symbol belongs, or NULL if it has not been + assigned a block. */ #define SYMBOL_REF_BLOCK(RTX) (BLOCK_SYMBOL_CHECK (RTX)->block) -/* The byte offset of the given SYMBOL_REF from the start of its block, - or a negative value if the symbol has not yet been assigned a position. - Only valid if SYMBOL_REF_IN_BLOCK_P (RTX). */ +/* If SYMBOL_REF_HAS_BLOCK_INFO_P (RTX), this is the offset of RTX from + the first object in SYMBOL_REF_BLOCK (RTX). The value is negative if + RTX has not yet been assigned to a block, or it has not been given an + offset within that block. */ #define SYMBOL_REF_BLOCK_OFFSET(RTX) (BLOCK_SYMBOL_CHECK (RTX)->offset) /* Define a macro to look for REG_INC notes, diff --git a/gcc/varasm.c b/gcc/varasm.c index 801d11e41d8..4835c309d5a 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -365,7 +365,7 @@ create_block_symbol (const char *label, struct object_block *block, PUT_CODE (symbol, SYMBOL_REF); PUT_MODE (symbol, Pmode); XSTR (symbol, 0) = label; - SYMBOL_REF_FLAGS (symbol) = SYMBOL_FLAG_IN_BLOCK; + SYMBOL_REF_FLAGS (symbol) = SYMBOL_FLAG_HAS_BLOCK_INFO; /* Initialize the block_symbol stuff. */ SYMBOL_REF_BLOCK (symbol) = block; @@ -986,11 +986,11 @@ make_decl_rtl (tree decl) decl attribute overrides another. */ targetm.encode_section_info (decl, DECL_RTL (decl), false); - /* If the old address was assigned to an object block, see whether - that block is still in the right section. */ + /* If the symbol has a SYMBOL_REF_BLOCK field, update it based + on the new decl information. */ if (MEM_P (x) && GET_CODE (XEXP (x, 0)) == SYMBOL_REF - && SYMBOL_REF_IN_BLOCK_P (XEXP (x, 0))) + && SYMBOL_REF_HAS_BLOCK_INFO_P (XEXP (x, 0))) change_symbol_block (XEXP (x, 0), get_block_for_decl (decl)); /* Make this function static known to the mudflap runtime. */ @@ -1819,7 +1819,7 @@ assemble_variable (tree decl, int top_level ATTRIBUTE_UNUSED, /* If the decl is part of an object_block, make sure that the decl has been positioned within its block, but do not write out its definition yet. output_object_blocks will do that later. */ - if (SYMBOL_REF_IN_BLOCK_P (symbol) && SYMBOL_REF_BLOCK (symbol)) + if (SYMBOL_REF_HAS_BLOCK_INFO_P (symbol) && SYMBOL_REF_BLOCK (symbol)) { gcc_assert (!dont_output_data); place_block_symbol (symbol); @@ -2947,7 +2947,7 @@ output_constant_def_contents (rtx symbol) /* If the constant is part of an object block, make sure that the decl has been positioned within its block, but do not write out its definition yet. output_object_blocks will do that later. */ - if (SYMBOL_REF_IN_BLOCK_P (symbol) && SYMBOL_REF_BLOCK (symbol)) + if (SYMBOL_REF_HAS_BLOCK_INFO_P (symbol) && SYMBOL_REF_BLOCK (symbol)) place_block_symbol (symbol); else { @@ -3508,7 +3508,8 @@ output_constant_pool (const char *fnname ATTRIBUTE_UNUSED, the constant has been positioned within its block, but do not write out its definition yet. output_object_blocks will do that later. */ - if (SYMBOL_REF_IN_BLOCK_P (desc->sym) && SYMBOL_REF_BLOCK (desc->sym)) + if (SYMBOL_REF_HAS_BLOCK_INFO_P (desc->sym) + && SYMBOL_REF_BLOCK (desc->sym)) place_block_symbol (desc->sym); else { @@ -5683,7 +5684,7 @@ default_encode_section_info (tree decl, rtx rtl, int first ATTRIBUTE_UNUSED) if (GET_CODE (symbol) != SYMBOL_REF) return; - flags = SYMBOL_REF_FLAGS (symbol) & SYMBOL_FLAG_IN_BLOCK; + flags = SYMBOL_REF_FLAGS (symbol) & SYMBOL_FLAG_HAS_BLOCK_INFO; if (TREE_CODE (decl) == FUNCTION_DECL) flags |= SYMBOL_FLAG_FUNCTION; if (targetm.binds_local_p (decl)) |