From: zack Date: Sun, 28 Jul 2002 18:44:34 +0000 (+0000) Subject: * defaults.h (ASM_OUTPUT_MEASURED_SIZE): Take only two X-Git-Tag: upstream/4.9.2~85207 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a74248888df151d609dbcb998358c44f03014d6b;p=platform%2Fupstream%2Flinaro-gcc.git * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55820 138bc75d-0d04-0410-961f-82ee72b054a4 --- 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 + + * 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 * 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 2002-07-25 Gabriel Dos Reis * 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 * 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 (*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 (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 (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 * 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 2002-07-21 Andreas Jaeger - * reload1.c (fixup_abnormal_edges): Remove unused variable. + * reload1.c (fixup_abnormal_edges): Remove unused variable. 2002-07-21 Bernd Schmidt 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