final.c (output_addr_const): Use target opening and closing parentheses.
authorNeil Booth <neil@daikokuya.demon.co.uk>
Mon, 9 Jul 2001 06:10:09 +0000 (06:10 +0000)
committerNeil Booth <neil@gcc.gnu.org>
Mon, 9 Jul 2001 06:10:09 +0000 (06:10 +0000)
* final.c (output_addr_const): Use target opening and
closing parentheses.
* target-def.h: Define TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN
defaults, add to TARGET_ASM_OUT.
* target.h (struct gcc_target): Add open_paren and close_paren.
* doc/md.texi: Update.
* doc/tm.texi: Document TARGET_ASM_FUNCTION_END_PROLOGUE,
TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, TARGET_ASM_OPEN_PAREN and
TARGET_ASM_CLOSE_PAREN.
config:
* i386/i386.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
Override.
* pdp11/pdp11.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
Override.
* 1750a/1750a.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
* a29k/a29k.h: Similarly.
* alpha/alpha.h: Similarly.
* arc/arc.h: Similarly.
* arm/aof.h: Similarly.
* arm/aout.h: Similarly.
* avr/avr.h: Similarly.
* c4x/c4x.h: Similarly.
* clipper/clipper.h: Similarly.
* convex/convex.h: Similarly.
* d30v/d30v.h: Similarly.
* dsp16xx/dsp16xx.h: Similarly.
* elxsi/elxsi.h: Similarly.
* fr30/fr30.h: Similarly.
* h8300/h8300.h: Similarly.
* i370/i370.h: Similarly.
* i386/i386.h: Similarly.
* i860/i860.h: Similarly.
* i960/i960.h: Similarly.
* ia64/ia64.h: Similarly.
* m32r/m32r.h: Similarly.
* m68hc11/m68hc11.h: Similarly.
* m68k/m68k.h: Similarly.
* m88k/m88k.h: Similarly.
* mcore/mcore.h: Similarly.
* mips/mips.h: Similarly.
* mn10200/mn10200.h: Similarly.
* mn10300/mn10300.h: Similarly.
* ns32k/ns32k.h: Similarly.
* pa/pa.h: Similarly.
* pdp11/pdp11.h: Similarly.
* pj/pj.h: Similarly.
* romp/romp.h: Similarly.
* rs6000/rs6000.h: Similarly.
* sh/sh.h: Similarly.
* sparc/sparc.h: Similarly.
* v850/v850.h: Similarly.
* vax/vax.h: Similarly.
* we32k/we32k.h: Similarly.

From-SVN: r43856

47 files changed:
gcc/ChangeLog
gcc/config/1750a/1750a.h
gcc/config/a29k/a29k.h
gcc/config/alpha/alpha.h
gcc/config/arc/arc.h
gcc/config/arm/aof.h
gcc/config/arm/aout.h
gcc/config/avr/avr.h
gcc/config/c4x/c4x.h
gcc/config/clipper/clipper.h
gcc/config/convex/convex.h
gcc/config/d30v/d30v.h
gcc/config/dsp16xx/dsp16xx.h
gcc/config/elxsi/elxsi.h
gcc/config/fr30/fr30.h
gcc/config/h8300/h8300.h
gcc/config/i370/i370.h
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/config/i860/i860.h
gcc/config/i960/i960.h
gcc/config/ia64/ia64.h
gcc/config/m32r/m32r.h
gcc/config/m68hc11/m68hc11.h
gcc/config/m68k/m68k.h
gcc/config/m88k/m88k.h
gcc/config/mcore/mcore.h
gcc/config/mips/mips.h
gcc/config/mn10200/mn10200.h
gcc/config/mn10300/mn10300.h
gcc/config/ns32k/ns32k.h
gcc/config/pa/pa.h
gcc/config/pdp11/pdp11.c
gcc/config/pdp11/pdp11.h
gcc/config/pj/pj.h
gcc/config/romp/romp.h
gcc/config/rs6000/rs6000.h
gcc/config/sh/sh.h
gcc/config/sparc/sparc.h
gcc/config/v850/v850.h
gcc/config/vax/vax.h
gcc/config/we32k/we32k.h
gcc/doc/md.texi
gcc/doc/tm.texi
gcc/final.c
gcc/target-def.h
gcc/target.h

index c84a3b254ff5ded56b6c214f2ef12fbd639bde53..bd392efa6392f6d70aaccdfb7ae37978ed276081 100644 (file)
@@ -1,3 +1,59 @@
+2001-07-09  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * final.c (output_addr_const): Use target opening and
+       closing parentheses.
+       * target-def.h: Define TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN
+       defaults, add to TARGET_ASM_OUT.
+       * target.h (struct gcc_target): Add open_paren and close_paren.
+       * doc/md.texi: Update.
+       * doc/tm.texi: Document TARGET_ASM_FUNCTION_END_PROLOGUE,
+       TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, TARGET_ASM_OPEN_PAREN and
+       TARGET_ASM_CLOSE_PAREN.
+config:
+       * i386/i386.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
+       Override.
+       * pdp11/pdp11.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
+       Override.
+       * 1750a/1750a.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
+       * a29k/a29k.h: Similarly.
+       * alpha/alpha.h: Similarly.
+       * arc/arc.h: Similarly.
+       * arm/aof.h: Similarly.
+       * arm/aout.h: Similarly.
+       * avr/avr.h: Similarly.
+       * c4x/c4x.h: Similarly.
+       * clipper/clipper.h: Similarly.
+       * convex/convex.h: Similarly.
+       * d30v/d30v.h: Similarly.
+       * dsp16xx/dsp16xx.h: Similarly.
+       * elxsi/elxsi.h: Similarly.
+       * fr30/fr30.h: Similarly.
+       * h8300/h8300.h: Similarly.
+       * i370/i370.h: Similarly.
+       * i386/i386.h: Similarly.
+       * i860/i860.h: Similarly.
+       * i960/i960.h: Similarly.
+       * ia64/ia64.h: Similarly.
+       * m32r/m32r.h: Similarly.
+       * m68hc11/m68hc11.h: Similarly.
+       * m68k/m68k.h: Similarly.
+       * m88k/m88k.h: Similarly.
+       * mcore/mcore.h: Similarly.
+       * mips/mips.h: Similarly.
+       * mn10200/mn10200.h: Similarly.
+       * mn10300/mn10300.h: Similarly.
+       * ns32k/ns32k.h: Similarly.
+       * pa/pa.h: Similarly.
+       * pdp11/pdp11.h: Similarly.
+       * pj/pj.h: Similarly.
+       * romp/romp.h: Similarly.
+       * rs6000/rs6000.h: Similarly.
+       * sh/sh.h: Similarly.
+       * sparc/sparc.h: Similarly.
+       * v850/v850.h: Similarly.
+       * vax/vax.h: Similarly.
+       * we32k/we32k.h: Similarly.
+
 2001-07-09  Joseph S. Myers  <jsm28@cam.ac.uk>
 
        * doc/c-tree.texi: Document representation of attributes.
index abaa74397135ba3bcf42c647630a4299201f51f7..72ee543a11cd60e6c50a08479b84d415442868a9 100644 (file)
@@ -1228,12 +1228,6 @@ enum reg_class { NO_REGS, R2, R0_1, INDEX_REGS, BASE_REGS, ALL_REGS, LIM_REG_CLA
        fprintf(FILE, "\tinit\n\t"); assemble_name(FILE, NAME); \
         fprintf(FILE,"  ;destructor\n"); } while (0)
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* Print operand X (an rtx) in assembler syntax to file FILE.
    CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified.
    For `%' followed by punctuation, CODE is the punctuation and X is null.
index f6bfe38277897a313d99936332b08360b59b2206..96d19ac6df402f86954bab64186ee65dd10a8695 100644 (file)
@@ -1567,12 +1567,6 @@ extern int a29k_debug_reg_map[];
 ( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10),   \
   sprintf ((OUTPUT), "%s.%d", (NAME), (LABELNO)))
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* Print operand X (an rtx) in assembler syntax to file FILE.
    CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified.
    For `%' followed by punctuation, CODE is the punctuation and X is null.  */
index 832c8951c4081b370fc2401812d923d77249f613..b04be3586b372d38cf9238f6d343f3c6e15fad79 100644 (file)
@@ -2187,12 +2187,6 @@ literal_section ()                                               \
 ( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10),   \
   sprintf ((OUTPUT), "%s.%d", (NAME), (LABELNO)))
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* Output code to add DELTA to the first argument, and then jump to FUNCTION.
    Used for C++ multiple inheritance.  */
 /* ??? This is only used with the v2 ABI, and alpha.c makes assumptions
index 9695d8ce6643d375580cbd1a5e462ad51e1b0a74..9a7b270b5c27d98f40817bd2bb295ddfdab85195 100644 (file)
@@ -1297,10 +1297,6 @@ do {                                                                     \
 #define ASM_OUTPUT_BYTE(FILE, VALUE)  \
   fprintf (FILE, "%s0x%x\n", ASM_BYTE_OP, (VALUE))
 
-/* The assembler's parentheses characters.  */
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* This is how to output the definition of a user-level label named NAME,
    such as the label on a static function or variable NAME.  */
 #define ASM_OUTPUT_LABEL(FILE, NAME) \
index f10b7c45cb274754ca97914b54631377418ff928..3b0baf57ac583bded43c358721ee894e70d0bab9 100644 (file)
@@ -282,9 +282,6 @@ do {                                                        \
 
 #define IS_ASM_LOGICAL_LINE_SEPARATOR(C) ((C) == '\n')
 
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* Output of Uninitialized Variables */
 
 #define ASM_OUTPUT_COMMON(STREAM,NAME,SIZE,ROUNDED)            \
index 2a151c9214bdc28bf6677f4f4dda5750bff7ecb7..1acb8b480d0d0033fe5b41a870fe1e99258f3e2e 100644 (file)
@@ -323,10 +323,6 @@ Boston, MA 02111-1307, USA.  */
   asm_fprintf (STREAM, "%@ - - - ident %s\n", STRING)
 #endif
      
-/* The assembler's parentheses characters.  */
-#define ASM_OPEN_PAREN                 "("
-#define ASM_CLOSE_PAREN        ")"
-
 #ifndef ASM_COMMENT_START
 #define ASM_COMMENT_START      "@"
 #endif
index 8d6764e4e0519deefc96037a8a08b92d16c54d7f..6ebb93ce70fe7d77e2d92c5b27efa9482c650154 100644 (file)
@@ -2111,16 +2111,7 @@ progmem_section (void)                                                         \
    If you do not define this macro, the default is that only the
    character `;' is treated as a logical line separator.  */
 
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-/* These macros are defined as C string constant, describing the
-   syntax in the assembler for grouping arithmetic expressions.  The
-   following definitions are correct for most assemblers:
-
-   #define ASM_OPEN_PAREN "("
-   #define ASM_CLOSE_PAREN ")"
-
-   These macros are provided by `real.h' for writing the definitions of
+/* These macros are provided by `real.h' for writing the definitions of
    `ASM_OUTPUT_DOUBLE' and the like:  */
 
 #define ASM_OUTPUT_COMMON(STREAM, NAME, SIZE, ROUNDED)                    \
index b161d6d76272d2f753683260d56b4ea8cef1ca05..c515337aa3d9df4c808bdee05f38317b3daccb88 100644 (file)
@@ -2253,10 +2253,6 @@ dtors_section ()                                                 \
 
 #define ASM_OUTPUT_ASCII(FILE, PTR, LEN) c4x_output_ascii (FILE, PTR, LEN)
 
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
-
 /* Output and Generation of Labels.  */
 
 #define NO_DOT_IN_LABEL                /* Only required for TI format.  */
index 4b43973294440ec83edd56448afc95562d3152e8..ca67ee8009aa335bded23cc336278e7af2c81298 100644 (file)
@@ -1056,12 +1056,6 @@ do                                                                             \
 ( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10),   \
   sprintf ((OUTPUT), "%s.%d", (NAME), (LABELNO)))
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* Print an instruction operand X on file FILE.
    CODE is the code from the %-spec that requested printing this operand;
    if `%z3' was used to print operand 3, then CODE is 'z'.
index 10f8cb957942e8ef670ed345cb4bc108ed751330..88bb2b115caaeb7259f4a0ea4f39e88bd2d9393a 100644 (file)
@@ -1417,12 +1417,6 @@ enum reg_class {
 #define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL)    \
   asm_declare_function_name (FILE, NAME, DECL)
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* Print an instruction operand X on file FILE.
    CODE is the code from the %-spec that requested printing this operand;
    if `%z3' was used to print operand 3, then CODE is 'z'. */
index 3565cc71a4ceef9571f0717614ba4c6a4feb72b1..6126feafb66eeec9a75cac0466eac470d7c723ed 100644 (file)
@@ -4091,15 +4091,6 @@ do {                                                                     \
    is treated as a logical line separator.  */
 /* #define IS_ASM_LOGICAL_LINE_SEPARATOR(C) */
 
-/* These macros are defined as C string constant, describing the syntax in the
-   assembler for grouping arithmetic expressions.  The following definitions
-   are correct for most assemblers:
-
-        #define ASM_OPEN_PAREN "("
-        #define ASM_CLOSE_PAREN ")"  */
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* These macros are provided by `real.h' for writing the definitions of
    `ASM_OUTPUT_DOUBLE' and the like: */
 
index 15bd722fd4c3db94ff24d350917d51a4b510add2..1910e1db6aef09331cf3f894080d19fc06e7878a 100644 (file)
@@ -1683,10 +1683,6 @@ const_section ()                                                   \
     (OUTPUT) = (char *) alloca (strlen (NAME) + 11);                   \
     ASM_GENERATE_INTERNAL_LABEL (OUTPUT, temp, LABELNO);               \
   } while (0)
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 \f
 /* OUTPUT OF UNINITIALIZED VARIABLES */
 
index fb2885d1165ce6504549b592c47cb5c55c253995..dacefd4c1d1e33da39aa05d4bceb76efc7e656c2 100644 (file)
@@ -855,12 +855,6 @@ enum reg_class { NO_REGS, GENERAL_REGS, ALL_REGS, LIM_REG_CLASSES };
 ( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10),   \
   sprintf ((OUTPUT), "%s.%d", (NAME), (LABELNO)))
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* Print an instruction operand X on file FILE.
    CODE is the code from the %-spec that requested printing this operand;
    if `%z3' was used to print operand 3, then CODE is 'z'.  */
index 57d3f967a86c794eb96438bb682943cac4540f21..833a2cf08d7997cb408eeed2f592025dd1af2bcb 100644 (file)
@@ -1504,15 +1504,6 @@ do                                                                               \
 #define ASM_OUTPUT_BYTE(STREAM, VALUE) \
   fprintf (STREAM, "%s0x%x\n", ASM_BYTE_OP, (VALUE))
 
-/* These macros are defined as C string constant, describing the syntax in the
-   assembler for grouping arithmetic expressions.  The following definitions
-   are correct for most assemblers:
-
-        #define ASM_OPEN_PAREN "("
-        #define ASM_CLOSE_PAREN ")"  */
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /*}}}*/ \f
 /*{{{  Output and Generation of Labels.  */ 
 
index 1df7c08a65e13fe7e6a14c9b58d36934fbfdc5a0..ec3a1cbed930a148734f0bcebbdef0a43aa42200 100644 (file)
@@ -1387,12 +1387,6 @@ readonly_data ()                                                 \
 ( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10),   \
   sprintf ((OUTPUT), "%s___%d", (NAME), (LABELNO)))
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* Print an instruction operand X on file FILE.
    Look in h8300.c for details.  */
 
index fa187f33afdcc949e58ea6b5cc5fd3cf5e6379bb..ca106331c697e0f541b81327ea079f969901d290 100644 (file)
@@ -1036,12 +1036,6 @@ enum reg_class
 /* ------------------------------------------ */
 /* Control the assembler format that we output.  */
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* Define standard character escape sequences for non-ASCII targets
    only.  */
 
index 69aab1a18fea53293c659ad7a7c46788fba34507..8f9f7be584c7fcf6729cce50c6f3e3445b65f46c 100644 (file)
@@ -631,6 +631,11 @@ static int ix86_comp_type_attributes PARAMS ((tree, tree));
 #  define TARGET_ASM_FUNCTION_PROLOGUE ix86_osf_output_function_prologue
 #endif
 
+#undef TARGET_ASM_OPEN_PAREN
+#define TARGET_ASM_OPEN_PAREN ""
+#undef TARGET_ASM_CLOSE_PAREN
+#define TARGET_ASM_CLOSE_PAREN ""
+
 struct gcc_target targetm = TARGET_INITIALIZER;
 \f
 /* Sometimes certain combinations of command options do not make
index bb77de3fdb5f5e040bbb083bdc2e7137aea7b0ff..ee5b615e59e72ec4ee3946d587e2c6707ecba738 100644 (file)
@@ -2922,12 +2922,6 @@ do { long l;                                             \
 
 #define ASM_SIMPLIFY_DWARF_ADDR(X) \
   i386_simplify_dwarf_addr(X)
-
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN ""
-#define ASM_CLOSE_PAREN ""
 \f
 /* Print operand X (an rtx) in assembler syntax to file FILE.
    CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified.
index 1f681314374a5584ff5d7a1b0b0d8b6fef03bd39..60485f807c20e3841f08a0d5ea61eb0227752611 100644 (file)
@@ -1180,12 +1180,6 @@ do { ASM_OUTPUT_ALIGN ((FILE), 2);                                       \
 ( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10),   \
   sprintf ((OUTPUT), "%s.%d", (NAME), (LABELNO)))
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* Print operand X (an rtx) in assembler syntax to file FILE.
    CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified.
    For `%' followed by punctuation, CODE is the punctuation and X is null.
index 3a11007a04e5b16b3064bddc5008be3b43bb9024..17808bf250f2ac7642f5739ac228f3605f83cddf 100644 (file)
@@ -1508,12 +1508,6 @@ extern struct rtx_def *i960_compare_op0, *i960_compare_op1;
 #define ASM_FORMAT_PRIVATE_NAME(OUTPUT, NAME, LABELNO) \
        ( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10),    \
          sprintf ((OUTPUT), "%s.%d", (NAME), (LABELNO)))
-
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
 \f
 /* Output assembler code to FILE to initialize this source file's
    basic block profiling info, if that has not already been done.  */
index 0944daa548a0cfee05d81c094d8dd2af947635b1..e22aff3006aff99d66788dae9f766837e8315d38 100644 (file)
@@ -2122,12 +2122,6 @@ do {                                                                     \
 #define ASM_OUTPUT_BYTE(STREAM, VALUE) \
   fprintf (STREAM, "%s0x%x\n", ASM_BYTE_OP, (int)(VALUE) & 0xff)
 
-/* These macros are defined as C string constant, describing the syntax in the
-   assembler for grouping arithmetic expressions.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 \f
 /* Output of Uninitialized Variables.  */
 
index 69efdb7d50c41f9f9fab5897d85be9e54d4540b7..e72f61f9ad9ce085b410ac0d805d526c32f6e98a 100644 (file)
@@ -1779,10 +1779,6 @@ do {                                                     \
 #define ASM_OUTPUT_BYTE(FILE, VALUE)                           \
   fprintf (FILE, "%s0x%x\n", ASM_BYTE_OP, (VALUE))
 
-/* The assembler's parentheses characters.  */
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* This is how to output the definition of a user-level label named NAME,
    such as the label on a static function or variable NAME.  */
 /* On the M32R we need to ensure the next instruction starts on a 32 bit
index 140b1e0d60a3b3b5c66d221af01c7ee43811f909..3ce23b8ce56bc90fccfb28f9bcd3864dda51ac4c 100644 (file)
@@ -1646,13 +1646,6 @@ do { long l;                                             \
 #define ASM_OUTPUT_BYTE(FILE,VALUE)                    \
   fprintf ((FILE), "%s0x%x\n", ASM_BYTE_OP, (VALUE))
 
-
-/* Define the parentheses used to group arithmetic operations in assembler
- * code.  
- */
-#define ASM_OPEN_PAREN         "("
-#define ASM_CLOSE_PAREN                ")"
-
 /* This is how to output the definition of a user-level label named NAME,
    such as the label on a static function or variable NAME.  */
 
index 68017af17dedfda1c9160497a1b5c0ac785d7111..b56b7a4ba172f3503f064e96ca9ee24221544ed8 100644 (file)
@@ -2027,12 +2027,6 @@ do { long l;                                             \
 ( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10),   \
   sprintf ((OUTPUT), "%s.%d", (NAME), (LABELNO)))
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* Output a float value (represented as a C double) as an immediate operand.
    This macro is a 68k-specific macro.  */
 
index 9520aa8bd8ea92545a857638e5fd19befbc34f40..2be34328f14508a266c854c7172150ae5a2eaea6 100644 (file)
@@ -2221,11 +2221,6 @@ do {                                                                      \
 
 /* Length in instructions of the code output by ASM_OUTPUT_REG_POP.  */
 #define REG_POP_LENGTH 2
-
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
 \f
 /* Macros to deal with OCS debug information */
 
index 3440dbd6b99604e455f00c6431f9b11725950a4f..fecb9d8b4cf034c6d11d4ecefdb8b1e58b70407c 100644 (file)
@@ -1394,10 +1394,6 @@ extern long mcore_current_compilation_timestamp;
 #undef  ENCODE_SECTION_INFO
 #define ENCODE_SECTION_INFO(DECL) mcore_encode_section_info (DECL)
 
-/* The assembler's parentheses characters.  */
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* Print operand X (an rtx) in assembler syntax to file FILE.
    CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified.
    For `%' followed by punctuation, CODE is the punctuation and X is null.  */
index 134b546b7ce79c5a5b0b18a2d3b25d809737f6a8..b4a912942e555982f95c0b4b1272f5de5575f2b1 100644 (file)
@@ -4520,12 +4520,6 @@ do                                                                       \
   }                                                                    \
 while (0)
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* How to start an assembler comment.
    The leading space is important (the mips native assembler requires it).  */
 #ifndef ASM_COMMENT_START
index 20639b8ea24ccf71402879cc335fcdafa9b26a02..997f1aabcc172802d58448f0e1789d77d5877fec 100644 (file)
@@ -858,12 +858,6 @@ do { char dstr[30];                                        \
 #define ASM_OUTPUT_BYTE(FILE, VALUE)  \
   fprintf (FILE, "\t.byte 0x%x\n", (VALUE))
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* This says how to output the assembler to define a global
    uninitialized but not common symbol.
    Try to use asm_output_bss to implement this macro.  */
index 55a427ad929f2f16032b84589f7116a97d4f6ce7..143f3bf771c5cb481fe1431a653cab21251dd73a 100644 (file)
@@ -940,12 +940,6 @@ do { char dstr[30];                                        \
 #define ASM_OUTPUT_BYTE(FILE, VALUE)  \
   fprintf (FILE, "\t.byte 0x%x\n", (VALUE))
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* This says how to output the assembler to define a global
    uninitialized but not common symbol.
    Try to use asm_output_bss to implement this macro.  */
index 778644c5a4183997363d97a79087dccf301c60f5..58937d1fd917795b8b2134b123c8a75accf87e48 100644 (file)
@@ -1425,12 +1425,6 @@ do {                                                                     \
 ( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10),   \
   sprintf ((OUTPUT), "%s.%d", (NAME), (LABELNO)))
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* Print an instruction operand X on file FILE.
    CODE is the code from the %-spec that requested printing this operand;
    if `%z3' was used to print operand 3, then CODE is 'z'. */
index 380b6d2b7d40b6fbff113fd3e015fb53b3ed34bd..28b496d885a3770a1bdeb04a38b2dc906e0423be 100644 (file)
@@ -1879,12 +1879,6 @@ while (0)
 ( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 12),   \
   sprintf ((OUTPUT), "%s___%d", (NAME), (LABELNO)))
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* All HP assemblers use "!" to separate logical lines.  */
 #define IS_ASM_LOGICAL_LINE_SEPARATOR(C) ((C) == '!')
 
index 97d23fead5d725e67aac7b46911f66e5abd94be4..9bf51ceda0bd4594901fd84fcde6fe9bf23b2337 100644 (file)
@@ -61,6 +61,11 @@ static void pdp11_output_function_epilogue PARAMS ((FILE *, HOST_WIDE_INT));
 #undef TARGET_ASM_FUNCTION_EPILOGUE
 #define TARGET_ASM_FUNCTION_EPILOGUE pdp11_output_function_epilogue
 
+#undef TARGET_ASM_OPEN_PAREN
+#define TARGET_ASM_OPEN_PAREN "["
+#undef TARGET_ASM_CLOSE_PAREN
+#define TARGET_ASM_CLOSE_PAREN "]"
+
 struct gcc_target targetm = TARGET_INITIALIZER;
 \f
 /* Nonzero if OP is a valid second operand for an arithmetic insn.  */
@@ -1555,9 +1560,9 @@ output_addr_const_pdp11 (file, x)
       if (GET_CODE (XEXP (x, 1)) == CONST_INT
          && INTVAL (XEXP (x, 1)) < 0)
        {
-         fprintf (file, ASM_OPEN_PAREN);
+         fprintf (file, targetm.asm_out.open_paren);
          output_addr_const_pdp11 (file, XEXP (x, 1));
-         fprintf (file, ASM_CLOSE_PAREN);
+         fprintf (file, targetm.asm_out.close_paren);
        }
       else
        output_addr_const_pdp11 (file, XEXP (x, 1));
index f931b45da4962dda55d033a6781677b14b72f291..75e0cd6bb1ca9c2fb6bd36acc64bf1f8236d6443 100644 (file)
@@ -1183,12 +1183,6 @@ fprintf (FILE, "$help$: . = .+8 ; space for tmp moves!\n")       \
 ( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10),   \
   sprintf ((OUTPUT), "%s.%d", (NAME), (LABELNO)))
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "["
-#define ASM_CLOSE_PAREN "]"
-
 /* Print operand X (an rtx) in assembler syntax to file FILE.
    CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified.
    For `%' followed by punctuation, CODE is the punctuation and X is null.
@@ -1372,4 +1366,3 @@ JMP       FUNCTION        0x0058  0x0000 <- FUNCTION
 
 
 #define COMPARE_FLAG_MODE HImode
-
index 8bd28f1c575d7070823f6fd30384a805952d55f6..83c9b3e66d50d125f3551cacf8386d1d9986500e 100644 (file)
@@ -1239,10 +1239,6 @@ do { char dstr[30];                                     \
   assemble_name ((FILE), (NAME)),                       \
   fprintf ((FILE), ",%d\n", (SIZE)))
 
-/* The assembler's parentheses characters.  */
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* We don't want the default switch handling.  */
 #undef ASM_OUTPUT_BEFORE_CASE_LABEL
 #undef ASM_OUTPUT_CASE_LABEL
index 3c82c6545ef1bf7f36a1216281e5f14a1a789896..4f920cc574d8552e413a33624a639fc7379b755a 100644 (file)
@@ -1519,12 +1519,6 @@ struct rt_cargs {int gregs, fregs; };
 ( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10),   \
   sprintf ((OUTPUT), "%s.%d", (NAME), (LABELNO)))
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* Print operand X (an rtx) in assembler syntax to file FILE.
    CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified.
    For `%' followed by punctuation, CODE is the punctuation and X is null.  */
index eca6be15fc7740dc9073c88cadfd310008f0da04..6464aa2c36efed284e410a7eddaa5cb06efa15d8 100644 (file)
@@ -2571,12 +2571,6 @@ do {                                                                     \
 ( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10),   \
   sprintf ((OUTPUT), "%s.%d", (NAME), (LABELNO)))
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* Pick up the return address upon entry to a procedure. Used for
    dwarf2 unwind information.  This also enables the table driven
    mechanism.  */
index 3f6d3e632655e0a313038c4039380b787b04b24c..f72c07c9fbe47f0cb578604ed724012c42b913a4 100644 (file)
@@ -2161,10 +2161,6 @@ do { char dstr[30];                                      \
 ( fputs ("\t.lcomm ", (FILE)),                         \
   assemble_name ((FILE), (NAME)),                      \
   fprintf ((FILE), ",%d\n", (SIZE)))
-
-/* The assembler's parentheses characters.  */
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
 \f
 /* A C statement to be executed just prior to the output of
    assembler code for INSN, to modify the extracted operands so
index e413964e6a27aad37f186735ab644e239e89490f..b107236706b21d1f1c230ac338c02e25ddc9662d 100644 (file)
@@ -3221,12 +3221,6 @@ do {                                                                     \
   fprintf (FILE, "\t or\t%%g1, %%g0, %%o7\n");                         \
 } while (0)
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 #define PRINT_OPERAND_PUNCT_VALID_P(CHAR) \
   ((CHAR) == '#' || (CHAR) == '*' || (CHAR) == '^' || (CHAR) == '(' || (CHAR) == '_')
 
index f2a7d7c98cc80f2c2e7651c67479a15cab25e281..604a7686ce3ca333d29ac5c8a12a9a77c8fe7890 100644 (file)
@@ -1290,12 +1290,6 @@ do { char dstr[30];                                      \
 #define ASM_OUTPUT_BYTE(FILE, VALUE)  \
   fprintf (FILE, "\t.byte 0x%x\n", (VALUE))
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* This says how to output the assembler to define a global
    uninitialized but not common symbol.  */
 
index fb461a90c42b3450caa0ec3b73d46a88ba76cde3..286822eb06b514e088709d4a46ed792f28f23858 100644 (file)
@@ -1228,12 +1228,6 @@ do {                                             \
   fprintf (FILE, "+2\n");                      \
 } while (0)
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* Print an instruction operand X on file FILE.
    CODE is the code from the %-spec that requested printing this operand;
    if `%z3' was used to print operand 3, then CODE is 'z'.
index 8a94790cccad706f3e4e8b61474b7304a05b68fd..66f01f9b9b75077413824aada4252a9c00756e24 100644 (file)
@@ -919,12 +919,6 @@ do {                                                       \
 
 #define ASM_OUTPUT_IDENT(FILE, NAME) fprintf (FILE, "\t.ident \"%s\"\n", NAME)
 
-/* Define the parentheses used to group arithmetic operations
-   in assembler code.  */
-
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-
 /* Print operand X (an rtx) in assembler syntax to file FILE.
    CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified.
    For `%' followed by punctuation, CODE is the punctuation and X is null. */
index 06c8e3fd738f91e964c16c40e8144d0201f1e48f..f1073aa5db384eba8a8a955eaac3aa2645216ce8 100644 (file)
@@ -2900,25 +2900,27 @@ is to be used, and simple moves to @code{EH_RETURN_STACKADJ_RTX} and
 @code{EH_RETURN_HANDLER_RTX} are not sufficient.
 
 @cindex @code{prologue} instruction pattern
+@anchor{prologue instruction pattern}
 @item @samp{prologue}
 This pattern, if defined, emits RTL for entry to a function.  The function
 entry is responsible for setting up the stack frame, initializing the frame
 pointer register, saving callee saved registers, etc.
 
 Using a prologue pattern is generally preferred over defining
-@code{FUNCTION_PROLOGUE} to emit assembly code for the prologue.
+@code{TARGET_ASM_FUNCTION_PROLOGUE} to emit assembly code for the prologue.
 
 The @code{prologue} pattern is particularly useful for targets which perform
 instruction scheduling.
 
 @cindex @code{epilogue} instruction pattern
+@anchor{epilogue instruction pattern}
 @item @samp{epilogue}
 This pattern, if defined, emits RTL for exit from a function.  The function
 exit is responsible for deallocating the stack frame, restoring callee saved
 registers and emitting the return instruction.
 
 Using an epilogue pattern is generally preferred over defining
-@code{FUNCTION_EPILOGUE} to emit assembly code for the prologue.
+@code{TARGET_ASM_FUNCTION_EPILOGUE} to emit assembly code for the epilogue.
 
 The @code{epilogue} pattern is particularly useful for targets which perform
 instruction scheduling or which have delay slots for their return instruction.
index 37b84d77c5e2ed35ad5ff95a9cdd4be654027470..1677ffd7b985a6d429a184a3f93b42f1f34c0fd0 100644 (file)
@@ -3766,6 +3766,20 @@ or by a debugger, there is no reason why the stack layout used by GCC
 need agree with that used by other compilers for a machine.
 @end deftypefn
 
+@deftypefn {Target Hook} void TARGET_ASM_FUNCTION_END_PROLOGUE (FILE *@var{file})
+If defined, a function that outputs assembler code at the end of a
+prologue.  This should be used when the function prologue is being
+emitted as RTL, and you have some extra assembler that needs to be
+emitted.  @xref{prologue instruction pattern}.
+@end deftypefn
+
+@deftypefn {Target Hook} void TARGET_ASM_FUNCTION_BEGIN_EPILOGUE (FILE *@var{file})
+If defined, a function that outputs assembler code at the start of an
+epilogue.  This should be used when the function epilogue is being
+emitted as RTL, and you have some extra assembler that needs to be
+emitted.  @xref{epilogue instruction pattern}.
+@end deftypefn
+
 @deftypefn {Target Hook} void TARGET_ASM_FUNCTION_EPILOGUE (FILE *@var{file}, HOST_WIDE_INT @var{size})
 If defined, a function that outputs the assembler code for exit from a
 function.  The epilogue is responsible for restoring the saved
@@ -5965,22 +5979,14 @@ used as a logical line separator by the assembler.
 
 If you do not define this macro, the default is that only
 the character @samp{;} is treated as a logical line separator.
-
-
-@findex ASM_OPEN_PAREN
-@findex ASM_CLOSE_PAREN
-@item ASM_OPEN_PAREN
-@itemx ASM_CLOSE_PAREN
-These macros are defined as C string constants, describing the syntax
-in the assembler for grouping arithmetic expressions.  The following
-definitions are correct for most assemblers:
-
-@example
-#define ASM_OPEN_PAREN "("
-#define ASM_CLOSE_PAREN ")"
-@end example
 @end table
 
+@deftypevar {Target Hook} {const char *} TARGET_ASM_OPEN_PAREN
+@deftypevar {Target Hook} {const char *} TARGET_ASM_CLOSE_PAREN
+These target hooks are C string constants, describing the syntax in the
+assembler for grouping arithmetic expressions.  If not overridden, they
+default to normal parentheses, which is correct for most assemblers.
+
   These macros are provided by @file{real.h} for writing the definitions
 of @code{ASM_OUTPUT_DOUBLE} and the like:
 
index 35fda053ae17b3072b4902964a0744eb9f4cb95b..4efbfcbef23f55672b98314e052b6aef57f7bedd 100644 (file)
@@ -3664,9 +3664,9 @@ output_addr_const (file, x)
           && INTVAL (XEXP (x, 1)) < 0)
          || GET_CODE (XEXP (x, 1)) != CONST_INT)
        {
-         fprintf (file, "%s", ASM_OPEN_PAREN);
+         fputs (targetm.asm_out.open_paren, file);
          output_addr_const (file, XEXP (x, 1));
-         fprintf (file, "%s", ASM_CLOSE_PAREN);
+         fputs (targetm.asm_out.close_paren, file);
        }
       else
        output_addr_const (file, XEXP (x, 1));
index dbcaecf59cd9d47e91f9bbc1fc316038286b51d8..ca24c5f8753c58c8265fd60deff7f4f8037f3d8f 100644 (file)
@@ -26,12 +26,16 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
    even if they do nothing.  */
 
 /* Assembler output.  */
+#define TARGET_ASM_OPEN_PAREN "("
+#define TARGET_ASM_CLOSE_PAREN ")"
 #define TARGET_ASM_FUNCTION_PROLOGUE default_function_pro_epilogue
 #define TARGET_ASM_FUNCTION_EPILOGUE default_function_pro_epilogue
 #define TARGET_ASM_FUNCTION_END_PROLOGUE no_asm_to_stream
 #define TARGET_ASM_FUNCTION_BEGIN_EPILOGUE no_asm_to_stream
 
-#define TARGET_ASM_OUT {TARGET_ASM_FUNCTION_PROLOGUE,          \
+#define TARGET_ASM_OUT {TARGET_ASM_OPEN_PAREN,                 \
+                       TARGET_ASM_CLOSE_PAREN,                 \
+                       TARGET_ASM_FUNCTION_PROLOGUE,           \
                        TARGET_ASM_FUNCTION_END_PROLOGUE,       \
                        TARGET_ASM_FUNCTION_BEGIN_EPILOGUE,     \
                        TARGET_ASM_FUNCTION_EPILOGUE}
index 20714c9e0d8b00b37ff6b05a41190f2e762099f7..126147d46b1448f68f2815e5fb97ecbbda45d2fd 100644 (file)
@@ -20,7 +20,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  what you give them.   Help stamp out software-hoarding!  */
 
 /* This file contains a data structure that describes a GCC target.
-   At present, it is incomplete, but in future it should grow to
+   At present it is incomplete, but in future it should grow to
    contain most or all target machine and target O/S specific
    information.
 
@@ -38,17 +38,20 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
    struct gcc_target targetm = TARGET_INITIALIZER;
 
    Doing things this way allows us to bring together everything that
-   defines a target to GCC.  By supplying a default that is
-   appropriate to most targets, we can easily add new items without
-   needing to edit dozens of target configuration files.  It should
-   also allow us to gradually reduce the amount of conditional
-   compilation that is scattered throughout GCC.  */
+   defines a GCC target.  By supplying a default that is appropriate
+   to most targets, we can easily add new items without needing to
+   edit dozens of target configuration files.  It should also allow us
+   to gradually reduce the amount of conditional compilation that is
+   scattered throughout GCC.  */
 
 struct gcc_target
 {
   /* Functions that output assembler for the target.  */
   struct asm_out
   {
+    /* Opening and closing parentheses for asm expression grouping.  */
+    const char *open_paren, *close_paren;
+
     /* Output the assembler code for entry to a function.  */
     void (* function_prologue) PARAMS ((FILE *, HOST_WIDE_INT));