Commit 99086d59 by Zack Weinberg

defaults.h (ASM_OUTPUT_MEASURED_SIZE): Take only two arguments.

	* defaults.h (ASM_OUTPUT_MEASURED_SIZE): Take only two
	arguments.  Always use ".-symbol" as expression argument.
	* doc/tm.texi: Update to match.  Document requirement for
	".size symbol, .-symbol" to be acceptable to assembler.

	* config/elfos.h, config/netbsd-aout.h, config/openbsd.h,
	config/arm/elf.h, config/avr/avr.h, config/cris/aout.h,
	config/i386/freebsd-aout.h, config/i386/sco5.h,
	config/ip2k/ip2k.h, config/m88k/m88k.h, config/xtensa/elf.h,
	config/xtensa/linux.h:  Update uses of ASM_OUTPUT_MEASURED_SIZE.

From-SVN: r55820
parent 5922c46c
2002-07-28 Zack Weinberg <zack@codesourcery.com>
* defaults.h (ASM_OUTPUT_MEASURED_SIZE): Take only two
arguments. Always use ".-symbol" as expression argument.
* doc/tm.texi: Update to match. Document requirement for
".size symbol, .-symbol" to be acceptable to assembler.
* config/elfos.h, config/netbsd-aout.h, config/openbsd.h,
config/arm/elf.h, config/avr/avr.h, config/cris/aout.h,
config/i386/freebsd-aout.h, config/i386/sco5.h,
config/ip2k/ip2k.h, config/m88k/m88k.h, config/xtensa/elf.h,
config/xtensa/linux.h: Update uses of ASM_OUTPUT_MEASURED_SIZE.
2002-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* Makefile.in (gengtype-lex.c): Fix error in last change.
......
......@@ -79,14 +79,7 @@ Boston, MA 02111-1307, USA. */
{ \
ARM_DECLARE_FUNCTION_SIZE (FILE, FNAME, DECL); \
if (!flag_inhibit_size_directive) \
{ \
char label[256]; \
static int labelno; \
labelno ++; \
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
ASM_OUTPUT_MEASURED_SIZE (FILE, (FNAME), label); \
} \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
} \
while (0)
......
......@@ -1969,14 +1969,7 @@ do { \
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \
if (!flag_inhibit_size_directive) \
{ \
char label[256]; \
static int labelno; \
labelno++; \
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
ASM_OUTPUT_MEASURED_SIZE (FILE, (FNAME), label); \
} \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
} while (0)
/* A C statement (sans semicolon) to output to the stdio stream
STREAM any text necessary for declaring the size of a function
......
......@@ -339,16 +339,7 @@ Boston, MA 02111-1307, USA. */
do \
{ \
if (!flag_inhibit_size_directive) \
{ \
char label[256]; \
static int labelno; \
\
labelno++; \
\
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
ASM_OUTPUT_MEASURED_SIZE (FILE, (FNAME), label); \
} \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
} \
while (0)
......
......@@ -354,16 +354,7 @@ Boston, MA 02111-1307, USA. */
do \
{ \
if (!flag_inhibit_size_directive) \
{ \
char label[256]; \
static int labelno; \
\
labelno++; \
\
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
ASM_OUTPUT_MEASURED_SIZE (FILE, (FNAME), label); \
} \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
} \
while (0)
#endif
......
......@@ -207,14 +207,7 @@ do { \
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \
if (!flag_inhibit_size_directive) \
{ \
char label[256]; \
static int labelno; \
labelno++; \
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
ASM_OUTPUT_MEASURED_SIZE (FILE, (FNAME), label); \
} \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
} while (0)
#define ASM_SPEC " %| %{fpic:-k} %{fPIC:-k}"
......
......@@ -150,7 +150,7 @@ do { \
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \
if (TARGET_ELF && !flag_inhibit_size_directive) \
ASM_OUTPUT_MEASURED_SIZE (FILE, (FNAME), "."); \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
} while (0)
#undef ASM_DECLARE_OBJECT_NAME
......
......@@ -2139,14 +2139,7 @@ do { \
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \
if (!flag_inhibit_size_directive) \
{ \
char label[256]; \
static int labelno; \
labelno++; \
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
ASM_OUTPUT_MEASURED_SIZE (FILE, (FNAME), label); \
} \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
} while (0)
/* A C statement (sans semicolon) to output to the stdio stream
STREAM any text necessary for declaring the size of a function
......
......@@ -1866,18 +1866,8 @@ do { \
#undef ASM_DECLARE_FUNCTION_SIZE
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \
if (DECLARE_ASM_NAME) \
{ \
if (!flag_inhibit_size_directive) \
{ \
char label[256]; \
static int labelno = 0; \
labelno++; \
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
ASM_OUTPUT_MEASURED_SIZE (FILE, (FNAME), label); \
} \
} \
if (DECLARE_ASM_NAME && !flag_inhibit_size_directive) \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
} while (0)
/* This is how to output the definition of a user-level label named NAME,
......
......@@ -196,13 +196,6 @@ Boston, MA 02111-1307, USA. */
do \
{ \
if (!flag_inhibit_size_directive) \
{ \
char label[256]; \
static int labelno; \
labelno++; \
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME, label); \
} \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
} \
while (0)
......@@ -215,7 +215,7 @@ Boston, MA 02111-1307, USA. */
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \
if (!flag_inhibit_size_directive) \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME, "."); \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
} while (0)
#endif
......
......@@ -112,16 +112,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
do \
{ \
if (!flag_inhibit_size_directive) \
{ \
char label[256]; \
static int labelno; \
\
labelno++; \
\
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME, label); \
} \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
XTENSA_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL); \
} \
while (0)
......@@ -68,16 +68,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
do \
{ \
if (!flag_inhibit_size_directive) \
{ \
char label[256]; \
static int labelno; \
\
labelno++; \
\
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME, label); \
} \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
XTENSA_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL); \
} \
while (0)
......@@ -200,15 +200,13 @@ do { fputs (integer_asm_op (POINTER_SIZE / UNITS_PER_WORD, TRUE), FILE); \
} \
while (0)
#define ASM_OUTPUT_MEASURED_SIZE(STREAM, BEG, END) \
#define ASM_OUTPUT_MEASURED_SIZE(STREAM, NAME) \
do \
{ \
fputs (SIZE_ASM_OP, STREAM); \
assemble_name (STREAM, BEG); \
fputs (", ", STREAM); \
assemble_name (STREAM, END); \
putc ('-', STREAM); \
assemble_name (STREAM, BEG); \
assemble_name (STREAM, NAME); \
fputs (", .-", STREAM); \
assemble_name (STREAM, NAME); \
putc ('\n', STREAM); \
} \
while (0)
......
......@@ -6421,12 +6421,18 @@ If you define @code{SIZE_ASM_OP}, a default definition of this macro is
provided.
@findex ASM_OUTPUT_MEASURED_SIZE
@item ASM_OUTPUT_MEASURED_SIZE (@var{stream}, @var{beg}, @var{end})
@item ASM_OUTPUT_MEASURED_SIZE (@var{stream}, @var{name})
A C statement (sans semicolon) to output to the stdio stream
@var{stream} a directive telling the assembler to calculate the size of
the symbol @var{beg} by subtracting its address from that of the symbol
@var{end}. If you define @code{SIZE_ASM_OP}, a default definition of
this macro is provided.
the symbol @var{name} by subtracting its address from the current
address.
If you define @code{SIZE_ASM_OP}, a default definition of this macro is
provided. The default assumes that the assembler recognizes a special
@samp{.} symbol as referring to the current address, and can calculate
the difference between this and another symbol. If your assembler does
not recognize @samp{.} or cannot do calculations with it, you will need
to redefine @code{ASM_OUTPUT_MEASURED_SIZE} to use some other technique.
@findex TYPE_ASM_OP
@item TYPE_ASM_OP
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment