aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZack Weinberg <zack@gcc.gnu.org>2002-07-28 18:44:34 +0000
committerZack Weinberg <zack@gcc.gnu.org>2002-07-28 18:44:34 +0000
commit99086d596fb56b6856a9ef28b18b1d2776cc0fba (patch)
tree4ba6979618bd68bd4f566738d9935f4ff69e6ccf
parent5922c46ce94c43b5ccedf256e27040cfa565054f (diff)
downloadgcc-99086d596fb56b6856a9ef28b18b1d2776cc0fba.zip
gcc-99086d596fb56b6856a9ef28b18b1d2776cc0fba.tar.gz
gcc-99086d596fb56b6856a9ef28b18b1d2776cc0fba.tar.bz2
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
-rw-r--r--gcc/ChangeLog33
-rw-r--r--gcc/config/arm/elf.h9
-rw-r--r--gcc/config/avr/avr.h9
-rw-r--r--gcc/config/cris/aout.h11
-rw-r--r--gcc/config/elfos.h11
-rw-r--r--gcc/config/i386/freebsd-aout.h9
-rw-r--r--gcc/config/i386/sco5.h2
-rw-r--r--gcc/config/ip2k/ip2k.h9
-rw-r--r--gcc/config/m88k/m88k.h14
-rw-r--r--gcc/config/netbsd-aout.h9
-rw-r--r--gcc/config/openbsd.h8
-rw-r--r--gcc/config/xtensa/elf.h11
-rw-r--r--gcc/config/xtensa/linux.h11
-rw-r--r--gcc/defaults.h10
-rw-r--r--gcc/doc/tm.texi14
15 files changed, 53 insertions, 117 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index adc1772..5684fa4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,16 @@
+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.
@@ -34,7 +47,7 @@
[HONOR_SNANS]: New macro.
* 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.
(process_options): flag_signaling_nans implies flag_trapping_math.
@@ -50,8 +63,8 @@
* rtlanal.c: #include real.c for TARGET_FLOAT_FORMAT definitions
required by HONOR_SNANS. (may_trap_p): Floating point DIV, MOD,
- UDIV, UMOD, GE, GT, LE, LT and COMPARE may always trap with
- -fsignaling_nans. EQ and NE only trap for flag_signaling_nans
+ UDIV, UMOD, GE, GT, LE, LT and COMPARE may always trap with
+ -fsignaling_nans. EQ and NE only trap for flag_signaling_nans
not flag_trapping_math (i.e. HONOR_SNANS but not HONOR_NANS).
* 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>
2002-07-25 Gabriel Dos Reis <gdr@nerim.net>
* c-common.c (c_sizeof_or_alignof_type): Take a third argument for
- complaining.
+ complaining.
* c-common.h (c_sizeof): Adjust definition.
(c_alignof): Likewise.
* 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>
* config/rs6000/eabi.h: Define TARGET_SPE_ABI, TARGET_SPE,
TARGET_ISEL, and TARGET_FPRS.
-
+
* doc/invoke.texi (RS/6000 and PowerPC Options): Document
-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>
(*ne0): Same.
(negsf2): Change to expand and rename old pattern to *negsf2.
(abssf2): Change to expand and rename old pattern to *abssf2.
-
+
New expanders: fix_truncsfsi2, floatunssisf2, floatsisf2,
fixunssfsi2.
@@ -406,7 +419,7 @@ Thu Jul 25 10:23:41 2002 J"orn Rennecke <joern.rennecke@superh.com>
(rs6000_builtins): Add SPE builtins.
* testsuite/gcc.dg/ppc-spe.c: New.
-
+
* config/rs6000/eabispe.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>
(LARGEST_EXPONENT_IS_NORMAL): Ditto.
(VAX_HALFWORD_ORDER): Define (1 for DEC VAX, 0 otherwise).
(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.
(e24toe, e53toe): Change to use ieeetoe, distinguish DEC
vs. others.
@@ -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.
* function.c (SYMBOL__MAIN): Remove definition.
* 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.
* sched-rgn.c (ABS_VALUE, MIN_DIFF_PRIORITY, MIN_PROB_DIFF): 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>
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>
diff --git a/gcc/config/arm/elf.h b/gcc/config/arm/elf.h
index 6b3da48..df58eed 100644
--- a/gcc/config/arm/elf.h
+++ b/gcc/config/arm/elf.h
@@ -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)
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h
index 0090dbe..fca5c3f 100644
--- a/gcc/config/avr/avr.h
+++ b/gcc/config/avr/avr.h
@@ -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
diff --git a/gcc/config/cris/aout.h b/gcc/config/cris/aout.h
index b6dda1e..9d92dbb 100644
--- a/gcc/config/cris/aout.h
+++ b/gcc/config/cris/aout.h
@@ -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)
diff --git a/gcc/config/elfos.h b/gcc/config/elfos.h
index 5b0ec6d..11b1e65 100644
--- a/gcc/config/elfos.h
+++ b/gcc/config/elfos.h
@@ -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
diff --git a/gcc/config/i386/freebsd-aout.h b/gcc/config/i386/freebsd-aout.h
index 0c8ad98..d5fab7c 100644
--- a/gcc/config/i386/freebsd-aout.h
+++ b/gcc/config/i386/freebsd-aout.h
@@ -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}"
diff --git a/gcc/config/i386/sco5.h b/gcc/config/i386/sco5.h
index 0373ff9..27db402 100644
--- a/gcc/config/i386/sco5.h
+++ b/gcc/config/i386/sco5.h
@@ -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
diff --git a/gcc/config/ip2k/ip2k.h b/gcc/config/ip2k/ip2k.h
index bf9a604..7044445 100644
--- a/gcc/config/ip2k/ip2k.h
+++ b/gcc/config/ip2k/ip2k.h
@@ -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
diff --git a/gcc/config/m88k/m88k.h b/gcc/config/m88k/m88k.h
index 4ee28e8..8db17b6 100644
--- a/gcc/config/m88k/m88k.h
+++ b/gcc/config/m88k/m88k.h
@@ -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,
diff --git a/gcc/config/netbsd-aout.h b/gcc/config/netbsd-aout.h
index 7111a70..d8ab4a4 100644
--- a/gcc/config/netbsd-aout.h
+++ b/gcc/config/netbsd-aout.h
@@ -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)
diff --git a/gcc/config/openbsd.h b/gcc/config/openbsd.h
index e9a4ea4..efe8d42 100644
--- a/gcc/config/openbsd.h
+++ b/gcc/config/openbsd.h
@@ -212,10 +212,10 @@ Boston, MA 02111-1307, USA. */
#ifndef OBSD_HAS_DECLARE_FUNCTION_SIZE
/* Declare the size of a function. */
#undef ASM_DECLARE_FUNCTION_SIZE
-#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
- do { \
- if (!flag_inhibit_size_directive) \
- ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME, "."); \
+#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
+ do { \
+ if (!flag_inhibit_size_directive) \
+ ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
} while (0)
#endif
diff --git a/gcc/config/xtensa/elf.h b/gcc/config/xtensa/elf.h
index fec8275..963bbe6 100644
--- a/gcc/config/xtensa/elf.h
+++ b/gcc/config/xtensa/elf.h
@@ -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)
diff --git a/gcc/config/xtensa/linux.h b/gcc/config/xtensa/linux.h
index c15bfd9..c49bd13 100644
--- a/gcc/config/xtensa/linux.h
+++ b/gcc/config/xtensa/linux.h
@@ -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)
diff --git a/gcc/defaults.h b/gcc/defaults.h
index ef83bdd..0bbcc21 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -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)
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 6e6c35e..100def9 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -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