diff options
author | Richard Henderson <rth@redhat.com> | 2003-04-11 14:15:36 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2003-04-11 14:15:36 -0700 |
commit | 52859c77e9752203d3d551275df65d4d6f223df8 (patch) | |
tree | f675f00c76e2ef9d9b6ec56014ab50bc39c69884 /gcc/optabs.c | |
parent | 68d28100a03d7a4bb0f5763f6478c2c84bf4e2ab (diff) | |
download | gcc-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.c | 11 |
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 |