aboutsummaryrefslogtreecommitdiff
path: root/gcc/optabs.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2003-04-11 14:15:36 -0700
committerRichard Henderson <rth@gcc.gnu.org>2003-04-11 14:15:36 -0700
commit52859c77e9752203d3d551275df65d4d6f223df8 (patch)
treef675f00c76e2ef9d9b6ec56014ab50bc39c69884 /gcc/optabs.c
parent68d28100a03d7a4bb0f5763f6478c2c84bf4e2ab (diff)
downloadgcc-52859c77e9752203d3d551275df65d4d6f223df8.zip
gcc-52859c77e9752203d3d551275df65d4d6f223df8.tar.gz
gcc-52859c77e9752203d3d551275df65d4d6f223df8.tar.bz2
rtl.def (SYMBOL_REF): Add two 0 fields.
* rtl.def (SYMBOL_REF): Add two 0 fields. * gengtype.c (adjust_field_rtx_def): Handle them. * print-rtl.c (print_rtx): Print them. * rtl.h (SYMBOL_REF_DECL, SYMBOL_REF_FLAGS): New. (SYMBOL_FLAG_FUNCTION, SYMBOL_REF_FUNCTION_P): New. (SYMBOL_FLAG_LOCAL, SYMBOL_REF_LOCAL_P): New. (SYMBOL_FLAG_SMALL, SYMBOL_REF_SMALL_P): New. (SYMBOL_FLAG_TLS_SHIFT, SYMBOL_REF_TLS_MODEL): New. (SYMBOL_FLAG_EXTERNAL, SYMBOL_REF_EXTERNAL_P): New. (SYMBOL_FLAG_MACH_DEP): New. * optabs.c (init_one_libfunc): Zap fake SYMBOL_REF_DECL. * varasm.c (make_decl_rtl): Set SYMBOL_REF_DECL. (assemble_static_space): Set SYMBOL_REF_FLAGS. (assemble_trampoline_template): Likewise. (output_constant_def, force_const_mem): Likewise. (default_encode_section_info): New. * output.h: Declare it. * target-def.h (TARGET_ENCODE_SECTION_INFO): Use it. From-SVN: r65479
Diffstat (limited to 'gcc/optabs.c')
-rw-r--r--gcc/optabs.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/optabs.c b/gcc/optabs.c
index fc00b18..59f7147 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -5381,6 +5381,8 @@ rtx
init_one_libfunc (name)
const char *name;
{
+ rtx symbol;
+
/* Create a FUNCTION_DECL that can be passed to
targetm.encode_section_info. */
/* ??? We don't have any type information except for this is
@@ -5391,8 +5393,13 @@ init_one_libfunc (name)
DECL_EXTERNAL (decl) = 1;
TREE_PUBLIC (decl) = 1;
- /* Return the symbol_ref from the mem rtx. */
- return XEXP (DECL_RTL (decl), 0);
+ symbol = XEXP (DECL_RTL (decl), 0);
+
+ /* Zap the nonsensical SYMBOL_REF_DECL for this. What we're left with
+ are the flags assigned by targetm.encode_section_info. */
+ SYMBOL_REF_DECL (symbol) = 0;
+
+ return symbol;
}
/* Call this once to initialize the contents of the optabs