diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-04-11 21:15:36 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-04-11 21:15:36 +0000 |
commit | 001be062cd7cb968c6412c54b7461884a594cbc1 (patch) | |
tree | f675f00c76e2ef9d9b6ec56014ab50bc39c69884 /gcc/optabs.c | |
parent | 62f615b170aa1324147464166c5fd80c5ba52cc0 (diff) | |
download | gcc-001be062cd7cb968c6412c54b7461884a594cbc1.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65479 138bc75d-0d04-0410-961f-82ee72b054a4
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 fc00b186dee..59f714714e0 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 |