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> 2002-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* Makefile.in (gengtype-lex.c): Fix error in last change. * Makefile.in (gengtype-lex.c): Fix error in last change.
...@@ -34,7 +47,7 @@ ...@@ -34,7 +47,7 @@
[HONOR_SNANS]: New macro. [HONOR_SNANS]: New macro.
* toplev.c [flag_signaling_nans]: Initialize to false. * toplev.c [flag_signaling_nans]: Initialize to false.
(f_options): Add processing for "-fsignaling-nans". (f_options): Add processing for "-fsignaling-nans".
(set_fast_math_flags): Clear flag_signaling_nans with -ffast-math. (set_fast_math_flags): Clear flag_signaling_nans with -ffast-math.
(process_options): flag_signaling_nans implies flag_trapping_math. (process_options): flag_signaling_nans implies flag_trapping_math.
...@@ -50,8 +63,8 @@ ...@@ -50,8 +63,8 @@
* rtlanal.c: #include real.c for TARGET_FLOAT_FORMAT definitions * rtlanal.c: #include real.c for TARGET_FLOAT_FORMAT definitions
required by HONOR_SNANS. (may_trap_p): Floating point DIV, MOD, required by HONOR_SNANS. (may_trap_p): Floating point DIV, MOD,
UDIV, UMOD, GE, GT, LE, LT and COMPARE may always trap with UDIV, UMOD, GE, GT, LE, LT and COMPARE may always trap with
-fsignaling_nans. EQ and NE only trap for flag_signaling_nans -fsignaling_nans. EQ and NE only trap for flag_signaling_nans
not flag_trapping_math (i.e. HONOR_SNANS but not HONOR_NANS). not flag_trapping_math (i.e. HONOR_SNANS but not HONOR_NANS).
* doc/invoke.texi: Document new -fsignaling-nans compiler option. * doc/invoke.texi: Document new -fsignaling-nans compiler option.
...@@ -239,7 +252,7 @@ Thu Jul 25 10:23:41 2002 J"orn Rennecke <joern.rennecke@superh.com> ...@@ -239,7 +252,7 @@ Thu Jul 25 10:23:41 2002 J"orn Rennecke <joern.rennecke@superh.com>
2002-07-25 Gabriel Dos Reis <gdr@nerim.net> 2002-07-25 Gabriel Dos Reis <gdr@nerim.net>
* c-common.c (c_sizeof_or_alignof_type): Take a third argument for * c-common.c (c_sizeof_or_alignof_type): Take a third argument for
complaining. complaining.
* c-common.h (c_sizeof): Adjust definition. * c-common.h (c_sizeof): Adjust definition.
(c_alignof): Likewise. (c_alignof): Likewise.
* c-tree.h (c_sizeof_nowarn): Now macro. * c-tree.h (c_sizeof_nowarn): Now macro.
...@@ -274,7 +287,7 @@ Thu Jul 25 10:23:41 2002 J"orn Rennecke <joern.rennecke@superh.com> ...@@ -274,7 +287,7 @@ Thu Jul 25 10:23:41 2002 J"orn Rennecke <joern.rennecke@superh.com>
* config/rs6000/eabi.h: Define TARGET_SPE_ABI, TARGET_SPE, * config/rs6000/eabi.h: Define TARGET_SPE_ABI, TARGET_SPE,
TARGET_ISEL, and TARGET_FPRS. TARGET_ISEL, and TARGET_FPRS.
* doc/invoke.texi (RS/6000 and PowerPC Options): Document * doc/invoke.texi (RS/6000 and PowerPC Options): Document
-mabi=spe, -mabi=no-spe, and -misel=. -mabi=spe, -mabi=no-spe, and -misel=.
...@@ -289,7 +302,7 @@ Thu Jul 25 10:23:41 2002 J"orn Rennecke <joern.rennecke@superh.com> ...@@ -289,7 +302,7 @@ Thu Jul 25 10:23:41 2002 J"orn Rennecke <joern.rennecke@superh.com>
(*ne0): Same. (*ne0): Same.
(negsf2): Change to expand and rename old pattern to *negsf2. (negsf2): Change to expand and rename old pattern to *negsf2.
(abssf2): Change to expand and rename old pattern to *abssf2. (abssf2): Change to expand and rename old pattern to *abssf2.
New expanders: fix_truncsfsi2, floatunssisf2, floatsisf2, New expanders: fix_truncsfsi2, floatunssisf2, floatsisf2,
fixunssfsi2. fixunssfsi2.
...@@ -406,7 +419,7 @@ Thu Jul 25 10:23:41 2002 J"orn Rennecke <joern.rennecke@superh.com> ...@@ -406,7 +419,7 @@ Thu Jul 25 10:23:41 2002 J"orn Rennecke <joern.rennecke@superh.com>
(rs6000_builtins): Add SPE builtins. (rs6000_builtins): Add SPE builtins.
* testsuite/gcc.dg/ppc-spe.c: New. * testsuite/gcc.dg/ppc-spe.c: New.
* config/rs6000/eabispe.h: New. * config/rs6000/eabispe.h: New.
* config/rs6000/spe.h: New. * config/rs6000/spe.h: New.
...@@ -587,7 +600,7 @@ Tue Jul 23 21:49:24 2002 J"orn Rennecke <joern.rennecke@superh.com> ...@@ -587,7 +600,7 @@ Tue Jul 23 21:49:24 2002 J"orn Rennecke <joern.rennecke@superh.com>
(LARGEST_EXPONENT_IS_NORMAL): Ditto. (LARGEST_EXPONENT_IS_NORMAL): Ditto.
(VAX_HALFWORD_ORDER): Define (1 for DEC VAX, 0 otherwise). (VAX_HALFWORD_ORDER): Define (1 for DEC VAX, 0 otherwise).
(TARGET_G_FLOAT): Default to 0 if not defined. (TARGET_G_FLOAT): Default to 0 if not defined.
(ieeetoe): New, common routine to convert target format floats (ieeetoe): New, common routine to convert target format floats
to internal form. to internal form.
(e24toe, e53toe): Change to use ieeetoe, distinguish DEC (e24toe, e53toe): Change to use ieeetoe, distinguish DEC
vs. others. vs. others.
...@@ -787,7 +800,7 @@ Mon Jul 22 15:27:25 2002 J"orn Rennecke <joern.rennecke@superh.com> ...@@ -787,7 +800,7 @@ Mon Jul 22 15:27:25 2002 J"orn Rennecke <joern.rennecke@superh.com>
* gengenrtl.c (gencode): Don't define obstack_alloc_rtx. * gengenrtl.c (gencode): Don't define obstack_alloc_rtx.
* function.c (SYMBOL__MAIN): Remove definition. * function.c (SYMBOL__MAIN): Remove definition.
* global.c (SET_CONFLICT, REGBITP, ALLOCNO_LIVE_P): Remove. * global.c (SET_CONFLICT, REGBITP, ALLOCNO_LIVE_P): Remove.
* predict.c (PROB_NEVER, PROB_LIKELY, PROB_UNLIKELY): Remove. * predict.c (PROB_NEVER, PROB_LIKELY, PROB_UNLIKELY): Remove.
* profile.c (GCOV_INDEX_TO_BB): Remove. * profile.c (GCOV_INDEX_TO_BB): Remove.
* sched-rgn.c (ABS_VALUE, MIN_DIFF_PRIORITY, MIN_PROB_DIFF): Remove. * sched-rgn.c (ABS_VALUE, MIN_DIFF_PRIORITY, MIN_PROB_DIFF): Remove.
* simplify-rtx.c (FIXED_BASE_PLUS_P): Remove. * simplify-rtx.c (FIXED_BASE_PLUS_P): Remove.
...@@ -830,7 +843,7 @@ Sun Jul 21 21:36:41 CEST 2002 Jan Hubicka <jh@suse.cz> ...@@ -830,7 +843,7 @@ Sun Jul 21 21:36:41 CEST 2002 Jan Hubicka <jh@suse.cz>
2002-07-21 Andreas Jaeger <aj@suse.de> 2002-07-21 Andreas Jaeger <aj@suse.de>
* reload1.c (fixup_abnormal_edges): Remove unused variable. * reload1.c (fixup_abnormal_edges): Remove unused variable.
2002-07-21 Bernd Schmidt <bernds@redhat.com> 2002-07-21 Bernd Schmidt <bernds@redhat.com>
......
...@@ -79,14 +79,7 @@ Boston, MA 02111-1307, USA. */ ...@@ -79,14 +79,7 @@ Boston, MA 02111-1307, USA. */
{ \ { \
ARM_DECLARE_FUNCTION_SIZE (FILE, FNAME, DECL); \ ARM_DECLARE_FUNCTION_SIZE (FILE, FNAME, DECL); \
if (!flag_inhibit_size_directive) \ if (!flag_inhibit_size_directive) \
{ \ ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
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); \
} \
} \ } \
while (0) while (0)
......
...@@ -1969,14 +1969,7 @@ do { \ ...@@ -1969,14 +1969,7 @@ do { \
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \ #define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \ do { \
if (!flag_inhibit_size_directive) \ if (!flag_inhibit_size_directive) \
{ \ ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
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); \
} \
} while (0) } while (0)
/* A C statement (sans semicolon) to output to the stdio stream /* A C statement (sans semicolon) to output to the stdio stream
STREAM any text necessary for declaring the size of a function STREAM any text necessary for declaring the size of a function
......
...@@ -339,16 +339,7 @@ Boston, MA 02111-1307, USA. */ ...@@ -339,16 +339,7 @@ Boston, MA 02111-1307, USA. */
do \ do \
{ \ { \
if (!flag_inhibit_size_directive) \ if (!flag_inhibit_size_directive) \
{ \ ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
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); \
} \
} \ } \
while (0) while (0)
......
...@@ -354,16 +354,7 @@ Boston, MA 02111-1307, USA. */ ...@@ -354,16 +354,7 @@ Boston, MA 02111-1307, USA. */
do \ do \
{ \ { \
if (!flag_inhibit_size_directive) \ if (!flag_inhibit_size_directive) \
{ \ ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
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); \
} \
} \ } \
while (0) while (0)
#endif #endif
......
...@@ -207,14 +207,7 @@ do { \ ...@@ -207,14 +207,7 @@ do { \
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \ #define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \ do { \
if (!flag_inhibit_size_directive) \ if (!flag_inhibit_size_directive) \
{ \ ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
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); \
} \
} while (0) } while (0)
#define ASM_SPEC " %| %{fpic:-k} %{fPIC:-k}" #define ASM_SPEC " %| %{fpic:-k} %{fPIC:-k}"
......
...@@ -150,7 +150,7 @@ do { \ ...@@ -150,7 +150,7 @@ do { \
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \ #define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \ do { \
if (TARGET_ELF && !flag_inhibit_size_directive) \ if (TARGET_ELF && !flag_inhibit_size_directive) \
ASM_OUTPUT_MEASURED_SIZE (FILE, (FNAME), "."); \ ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
} while (0) } while (0)
#undef ASM_DECLARE_OBJECT_NAME #undef ASM_DECLARE_OBJECT_NAME
......
...@@ -2139,14 +2139,7 @@ do { \ ...@@ -2139,14 +2139,7 @@ do { \
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \ #define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \ do { \
if (!flag_inhibit_size_directive) \ if (!flag_inhibit_size_directive) \
{ \ ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
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); \
} \
} while (0) } while (0)
/* A C statement (sans semicolon) to output to the stdio stream /* A C statement (sans semicolon) to output to the stdio stream
STREAM any text necessary for declaring the size of a function STREAM any text necessary for declaring the size of a function
......
...@@ -1866,18 +1866,8 @@ do { \ ...@@ -1866,18 +1866,8 @@ do { \
#undef ASM_DECLARE_FUNCTION_SIZE #undef ASM_DECLARE_FUNCTION_SIZE
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \ #define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \ do { \
if (DECLARE_ASM_NAME) \ if (DECLARE_ASM_NAME && !flag_inhibit_size_directive) \
{ \ ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
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); \
} \
} \
} while (0) } while (0)
/* This is how to output the definition of a user-level label named NAME, /* This is how to output the definition of a user-level label named NAME,
......
...@@ -196,13 +196,6 @@ Boston, MA 02111-1307, USA. */ ...@@ -196,13 +196,6 @@ Boston, MA 02111-1307, USA. */
do \ do \
{ \ { \
if (!flag_inhibit_size_directive) \ if (!flag_inhibit_size_directive) \
{ \ ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
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); \
} \
} \ } \
while (0) while (0)
...@@ -212,10 +212,10 @@ Boston, MA 02111-1307, USA. */ ...@@ -212,10 +212,10 @@ Boston, MA 02111-1307, USA. */
#ifndef OBSD_HAS_DECLARE_FUNCTION_SIZE #ifndef OBSD_HAS_DECLARE_FUNCTION_SIZE
/* Declare the size of a function. */ /* Declare the size of a function. */
#undef ASM_DECLARE_FUNCTION_SIZE #undef ASM_DECLARE_FUNCTION_SIZE
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \ #define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \ do { \
if (!flag_inhibit_size_directive) \ if (!flag_inhibit_size_directive) \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME, "."); \ ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
} while (0) } while (0)
#endif #endif
......
...@@ -112,16 +112,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA ...@@ -112,16 +112,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
do \ do \
{ \ { \
if (!flag_inhibit_size_directive) \ if (!flag_inhibit_size_directive) \
{ \ ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
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); \
} \
XTENSA_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL); \ XTENSA_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL); \
} \ } \
while (0) while (0)
...@@ -68,16 +68,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA ...@@ -68,16 +68,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
do \ do \
{ \ { \
if (!flag_inhibit_size_directive) \ if (!flag_inhibit_size_directive) \
{ \ ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
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); \
} \
XTENSA_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL); \ XTENSA_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL); \
} \ } \
while (0) while (0)
...@@ -200,15 +200,13 @@ do { fputs (integer_asm_op (POINTER_SIZE / UNITS_PER_WORD, TRUE), FILE); \ ...@@ -200,15 +200,13 @@ do { fputs (integer_asm_op (POINTER_SIZE / UNITS_PER_WORD, TRUE), FILE); \
} \ } \
while (0) while (0)
#define ASM_OUTPUT_MEASURED_SIZE(STREAM, BEG, END) \ #define ASM_OUTPUT_MEASURED_SIZE(STREAM, NAME) \
do \ do \
{ \ { \
fputs (SIZE_ASM_OP, STREAM); \ fputs (SIZE_ASM_OP, STREAM); \
assemble_name (STREAM, BEG); \ assemble_name (STREAM, NAME); \
fputs (", ", STREAM); \ fputs (", .-", STREAM); \
assemble_name (STREAM, END); \ assemble_name (STREAM, NAME); \
putc ('-', STREAM); \
assemble_name (STREAM, BEG); \
putc ('\n', STREAM); \ putc ('\n', STREAM); \
} \ } \
while (0) while (0)
......
...@@ -6421,12 +6421,18 @@ If you define @code{SIZE_ASM_OP}, a default definition of this macro is ...@@ -6421,12 +6421,18 @@ If you define @code{SIZE_ASM_OP}, a default definition of this macro is
provided. provided.
@findex ASM_OUTPUT_MEASURED_SIZE @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 A C statement (sans semicolon) to output to the stdio stream
@var{stream} a directive telling the assembler to calculate the size of @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 the symbol @var{name} by subtracting its address from the current
@var{end}. If you define @code{SIZE_ASM_OP}, a default definition of address.
this macro is provided.
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 @findex TYPE_ASM_OP
@item 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