aboutsummaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
authorZack Weinberg <zack@gcc.gnu.org>2003-04-20 18:20:39 +0000
committerZack Weinberg <zack@gcc.gnu.org>2003-04-20 18:20:39 +0000
commitc6a2438aaf2ceeb137d21d67b00edf27a92104c0 (patch)
tree6af2bc9bef24c55c4233dbdc955842df62042749 /gcc/varasm.c
parent8c7d377fa2a94ea39f7eb38df8aeb776452f49f0 (diff)
downloadgcc-c6a2438aaf2ceeb137d21d67b00edf27a92104c0.zip
gcc-c6a2438aaf2ceeb137d21d67b00edf27a92104c0.tar.gz
gcc-c6a2438aaf2ceeb137d21d67b00edf27a92104c0.tar.bz2
target.h (encode_section_info): Add new argument carrying the RTL to be modified by the hook.
* target.h (encode_section_info): Add new argument carrying the RTL to be modified by the hook. * varasm.c (make_decl_rtl, output_constant_def): Update calls to encode_section_info. (default_encode_section_info): Take and use RTL argument, don't use TREE_CST_RTL or DECL_RTL. * output.h: Update prototype of default_encode_section_info. * config/darwin.h (ASM_DECLARE_OBJECT_NAME) (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Update calls to encode_section_info. * config/darwin.c, config/arm/arm.c, config/arm/pe.c * config/h8300/h8300.c, config/i386/winnt.c, config/m32r/m32r.c * config/m68hc11/m68hc11.c, config/m88k/m88k.c, config/mcore/mcore.c * config/mips/mips.c, config/mmix/mmix.c, config/pa/pa.c * config/romp/romp.c, config/rs6000/rs6000.c, config/s390/s390.c * config/v850/v850.c (TARGET_ENCODE_SECTION_INFO definitions): Take and use RTL argument, don't use TREE_CST_RTL or DECL_RTL, except for PE dllimport/dllexport. Update calls to default_encode_section_info. * config/darwin-protos.h, config/arm/arm-protos.h, config/i386-protos.h: Update prototypes. * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update. From-SVN: r65859
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r--gcc/varasm.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c
index a517450..72141f16 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -809,7 +809,7 @@ make_decl_rtl (decl, asmspec)
/* Let the target reassign the RTL if it wants.
This is necessary, for example, when one machine specific
decl attribute overrides another. */
- (* targetm.encode_section_info) (decl, false);
+ (* targetm.encode_section_info) (decl, DECL_RTL (decl), false);
return;
}
@@ -932,7 +932,7 @@ make_decl_rtl (decl, asmspec)
such as that it is a function name.
If the name is changed, the macro ASM_OUTPUT_LABELREF
will have to know how to strip this information. */
- (* targetm.encode_section_info) (decl, true);
+ (* targetm.encode_section_info) (decl, DECL_RTL (decl), true);
}
/* Make the rtl for variable VAR be volatile.
@@ -2674,10 +2674,7 @@ output_constant_def (exp, defer)
encoded in it. */
if (! found)
{
- /* Take care not to invoke targetm.encode_section_info for
- constants which don't have a TREE_CST_RTL. */
- if (TREE_CODE (exp) != INTEGER_CST)
- (*targetm.encode_section_info) (exp, true);
+ (*targetm.encode_section_info) (exp, rtl, true);
desc->rtl = rtl;
desc->label = XSTR (XEXP (desc->rtl, 0), 0);
@@ -5346,15 +5343,14 @@ default_elf_select_rtx_section (mode, x, align)
/* Set the generally applicable flags on the SYMBOL_REF for EXP. */
void
-default_encode_section_info (decl, first)
+default_encode_section_info (decl, rtl, first)
tree decl;
+ rtx rtl;
int first ATTRIBUTE_UNUSED;
{
- rtx rtl, symbol;
+ rtx symbol;
int flags;
- rtl = DECL_P (decl) ? DECL_RTL (decl) : TREE_CST_RTL (decl);
-
/* Careful not to prod global register variables. */
if (GET_CODE (rtl) != MEM)
return;