som.h (ASM_OUTPUT_EXTERNAL): Improve formatting.

* som.h (ASM_OUTPUT_EXTERNAL): Improve formatting.
	(ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for
	the libcall if there isn't a referenced identifier for the symbol.

From-SVN: r45777
This commit is contained in:
John David Anglin 2001-09-24 16:30:28 +00:00 committed by John David Anglin
parent 8e1494b72c
commit f3403757ec
2 changed files with 23 additions and 6 deletions

View File

@ -1,3 +1,9 @@
2001-09-24 John David Anglin <dave@hiauly1.hia.nrc.ca>
* som.h (ASM_OUTPUT_EXTERNAL): Improve formatting.
(ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for
the libcall if there isn't a referenced identifier for the symbol.
2001-09-24 John David Anglin <dave@hiauly1.hia.nrc.ca>
* pa.h (TRAMPOLINE_TEMPLATE): Add two words to the template for

View File

@ -312,8 +312,8 @@ readonly_data () \
#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
do { int save_referenced; \
save_referenced = TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (DECL)); \
fputs ("\t.IMPORT ", FILE); \
assemble_name (FILE, NAME); \
fputs ("\t.IMPORT ", FILE); \
assemble_name (FILE, NAME); \
if (FUNCTION_NAME_P (NAME)) \
fputs (",CODE\n", FILE); \
else \
@ -327,14 +327,25 @@ readonly_data () \
Also note not all libcall names are passed to ENCODE_SECTION_INFO
(__main for example). To make sure all libcall names have section
info recorded in them, we do it here. */
info recorded in them, we do it here. We must also ensure that
we don't import a libcall that has been previously exported since
the HP assembler may change an ENTRY symbol to a CODE symbol. */
#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, RTL) \
do { fputs ("\t.IMPORT ", FILE); \
do { const char *name; \
tree id; \
\
if (!function_label_operand (RTL, VOIDmode)) \
hppa_encode_label (RTL); \
assemble_name (FILE, XSTR ((RTL), 0)); \
fputs (",CODE\n", FILE); \
\
STRIP_NAME_ENCODING (name, XSTR ((RTL), 0)); \
id = maybe_get_identifier (name); \
if (! id || ! TREE_SYMBOL_REFERENCED (id)) \
{ \
fputs ("\t.IMPORT ", FILE); \
assemble_name (FILE, XSTR ((RTL), 0)); \
fputs (",CODE\n", FILE); \
} \
} while (0)
#define ASM_FILE_END(FILE) output_deferred_plabels (FILE)