OSDN Git Service

(AIX4): More robust release numbering discovery.
[pf3gnuchains/gcc-fork.git] / gcc / defaults.h
index 6f7a405..27d4f3f 100644 (file)
@@ -2,7 +2,7 @@
    (most of which are designed to be appropriate for GAS or for
    some BSD assembler).
 
-   Written by Ron Guilmette (rfg@ncd.com)
+   Written by Ron Guilmette (rfg@netcom.com)
 
 Copyright (C) 1992 Free Software Foundation, Inc.
 
@@ -20,7 +20,54 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+/* Store in OUTPUT a string (made with alloca) containing
+   an assembler-name for a local static variable or function named NAME.
+   LABELNO is an integer which is different for each call.  */
+
+#ifndef ASM_FORMAT_PRIVATE_NAME
+#define ASM_FORMAT_PRIVATE_NAME(OUTPUT, NAME, LABELNO)                 \
+  do {                                                                 \
+    int len = strlen (NAME);                                           \
+    char *temp = (char *) alloca (len + 3);                            \
+    temp[0] = 'L';                                                     \
+    strcpy (&temp[1], (NAME));                                         \
+    temp[len + 1] = '.';                                               \
+    temp[len + 2] = 0;                                                 \
+    (OUTPUT) = (char *) alloca (strlen (NAME) + 11);                   \
+    ASM_GENERATE_INTERNAL_LABEL (OUTPUT, temp, LABELNO);               \
+  } while (0)
+#endif
+
+#ifndef ASM_STABD_OP
+#define ASM_STABD_OP ".stabd"
+#endif
+
+/* This is how to output an element of a case-vector that is absolute.
+   Some targets don't use this, but we have to define it anyway.  */
+
+#ifndef ASM_OUTPUT_ADDR_VEC_ELT
+#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE)  \
+do { fprintf (FILE, "\t%s\t", ASM_LONG);                               \
+     ASM_OUTPUT_INTERNAL_LABEL (FILE, "L", (VALUE));                   \
+     fputc ('\n', FILE);                                               \
+   } while (0)
+#endif
+
+/* This is how to output an element of a case-vector that is relative.
+   Some targets don't use this, but we have to define it anyway.  */
+
+#ifndef ASM_OUTPUT_ADDR_DIFF_ELT
+#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, VALUE, REL) \
+do { fprintf (FILE, "\t%s\t", ASM_SHORT);                              \
+     ASM_OUTPUT_INTERNAL_LABEL (FILE, "L", (VALUE));                   \
+     fputc ('-', FILE);                                                        \
+     ASM_OUTPUT_INTERNAL_LABEL (FILE, "L", (REL));                     \
+     fputc ('\n', FILE);                                               \
+   } while (0)
+#endif
 
 /* choose a reasonable default for ASM_OUTPUT_ASCII.  */
 
@@ -62,3 +109,35 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
   }                                                                          \
   while (0)
 #endif
+
+#ifndef ASM_IDENTIFY_GCC
+  /* Default the definition, only if ASM_IDENTIFY_GCC is not set,
+     because if it is set, we might not want ASM_IDENTIFY_LANGUAGE
+     outputting labels, if we do want it to, then it must be defined
+     in the tm.h file.  */
+#ifndef ASM_IDENTIFY_LANGUAGE
+#define ASM_IDENTIFY_LANGUAGE(FILE) output_lang_identify (FILE);
+#endif
+#endif
+
+/* This is how we tell the assembler to equate two values.  */
+#ifdef SET_ASM_OP
+#ifndef ASM_OUTPUT_DEF
+#define ASM_OUTPUT_DEF(FILE,LABEL1,LABEL2)                             \
+ do {  fprintf ((FILE), "\t%s\t", SET_ASM_OP);                         \
+       assemble_name (FILE, LABEL1);                                   \
+       fprintf (FILE, ",");                                            \
+       assemble_name (FILE, LABEL2);                                   \
+       fprintf (FILE, "\n");                                           \
+  } while (0)
+#endif
+#endif
+
+/* This determines whether or not we support weak symbols.  */
+#ifndef SUPPORTS_WEAK
+#ifdef ASM_WEAKEN_LABEL
+#define SUPPORTS_WEAK 1
+#else
+#define SUPPORTS_WEAK 0
+#endif
+#endif