tm.texi (Label Output): Document ASM_OUTPUT_LABEL_REF.

* doc/tm.texi (Label Output): Document ASM_OUTPUT_LABEL_REF.
	* final.c (output_addr_const): Use ASM_OUTPUT_LABEL_REF.
	* config/stormy16/stormy16.c (xstormy16_print_operand): For '%C',
	don't print an @fptr for labels either.
	(xstormy16_output_addr_vec): Don't print @fptr here.
	* config/stormy16/stormy16.h (ASM_OUTPUT_LABEL_REF): New macro.

From-SVN: r46918
This commit is contained in:
Geoffrey Keating 2001-11-10 21:44:53 +00:00 committed by Geoffrey Keating
parent 2c1ed626a2
commit 2f0b7af698
5 changed files with 37 additions and 3 deletions

View File

@ -1,3 +1,12 @@
2001-11-10 Geoffrey Keating <geoffk@redhat.com>
* doc/tm.texi (Label Output): Document ASM_OUTPUT_LABEL_REF.
* final.c (output_addr_const): Use ASM_OUTPUT_LABEL_REF.
* config/stormy16/stormy16.c (xstormy16_print_operand): For '%C',
don't print an @fptr for labels either.
(xstormy16_output_addr_vec): Don't print @fptr here.
* config/stormy16/stormy16.h (ASM_OUTPUT_LABEL_REF): New macro.
Sat Nov 10 08:50:50 2001 Jeffrey A Law (law@cygnus.com)
* ssa-ccp.c (examine_flow_edges): Use old-style definition, not

View File

@ -1539,6 +1539,8 @@ xstormy16_print_operand (file, x, code)
/* Print the symbol without a surrounding @fptr(). */
if (GET_CODE (x) == SYMBOL_REF)
assemble_name (file, XSTR (x, 0));
else if (GET_CODE (x) == LABEL_REF)
output_asm_label (x);
else
xstormy16_print_operand_address (file, x);
return;
@ -1652,8 +1654,7 @@ xstormy16_output_addr_vec (file, label, table)
for (idx = 0; idx < vlen; idx++)
{
fputs ("\tjmpf ", file);
xstormy16_print_operand_address (file,
XEXP (XVECEXP (table, 0, idx), 0));
output_asm_label (XEXP (XVECEXP (table, 0, idx), 0));
fputc ('\n', file);
}
}

View File

@ -3996,6 +3996,16 @@ do { \
assemble_name (STREAM, XSTR (SYMBOL, 0)); \
} while (0)
/* A C statement to output to the stdio stream STREAM the assembler
definition of a label, the textual form is in 'BUF'. Not used
for %l. */
#define ASM_OUTPUT_LABEL_REF(STREAM, NAME) \
do { \
fputs ("@fptr(", STREAM); \
assemble_name (STREAM, NAME); \
fputc (')', STREAM); \
} while (0)
/* A C statement (sans semicolon) to output to the stdio stream STREAM any text
necessary for declaring the name NAME of a function which is being defined.
This macro is responsible for outputting the label definition (perhaps using

View File

@ -6428,11 +6428,21 @@ a reference to the label @var{label}.
@findex ASM_OUTPUT_SYMBOL_REF
@item ASM_OUTPUT_SYMBOL_REF (@var{stream}, @var{sym})
A C statement (sans semicolon) to output a reference to
@code{SYMBOL_REF} @var{sym}. If not defined, @code{assemble_output}
@code{SYMBOL_REF} @var{sym}. If not defined, @code{assemble_name}
will be used to output the name of the symbol. This macro may be used
to modify the way a symbol is referenced depending on information
encoded by @code{ENCODE_SECTION_INFO}.
@findex ASM_OUTPUT_LABEL_REF
@item ASM_OUTPUT_LABEL_REF (@var{stream}, @var{buf})
A C statement (sans semicolon) to output a reference to @var{buf}, the
result of ASM_GENERATE_INTERNAL_LABEL. If not defined,
@code{assemble_name} will be used to output the name of the symbol.
This macro is not used by @code{output_asm_label}, or the @code{%l}
specifier that calls it; the intention is that this macro should be set
when it is necessary to output a label differently when its address
is being taken.
@findex ASM_OUTPUT_INTERNAL_LABEL
@item ASM_OUTPUT_INTERNAL_LABEL (@var{stream}, @var{prefix}, @var{num})
A C statement to output to the stdio stream @var{stream} a label whose

View File

@ -3678,7 +3678,11 @@ output_addr_const (file, x)
/* Fall through. */
case CODE_LABEL:
ASM_GENERATE_INTERNAL_LABEL (buf, "L", CODE_LABEL_NUMBER (x));
#ifdef ASM_OUTPUT_LABEL_REF
ASM_OUTPUT_LABEL_REF (file, buf);
#else
assemble_name (file, buf);
#endif
break;
case CONST_INT: