OSDN Git Service

* config/rs6000/rs6000.c (spe_init_builtins,
[pf3gnuchains/gcc-fork.git] / gcc / defaults.h
index b542e53..115cc01 100644 (file)
@@ -27,6 +27,9 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #define GET_ENVIRONMENT(VALUE, NAME) do { (VALUE) = getenv (NAME); } while (0)
 #endif
 
+#define obstack_chunk_alloc xmalloc
+#define obstack_chunk_free free
+
 /* Define default standard character escape sequences.  */
 #ifndef TARGET_BELL
 #  define TARGET_BELL 007
@@ -137,12 +140,33 @@ do { fputs (integer_asm_op (POINTER_SIZE / UNITS_PER_WORD, TRUE), FILE); \
 #endif
 #endif
 
+/* 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.  */
+
+#ifndef ASM_OUTPUT_LABEL
+#define ASM_OUTPUT_LABEL(FILE,NAME) \
+  do { assemble_name ((FILE), (NAME)); fputs (":\n", (FILE)); } while (0)
+#endif
+
 /* This is how to output a reference to a user-level label named NAME.  */
 
 #ifndef ASM_OUTPUT_LABELREF
 #define ASM_OUTPUT_LABELREF(FILE,NAME)  asm_fprintf ((FILE), "%U%s", (NAME))
 #endif
 
+/* A C statement (sans semicolon) to output to the stdio stream FILE
+   some commands that will make the label NAME global; that is,
+   available for reference from other files.  */
+
+#if !defined(ASM_GLOBALIZE_LABEL) && defined(GLOBAL_ASM_OP)
+#define ASM_GLOBALIZE_LABEL(FILE,NAME)         \
+  do {                                         \
+      fputs (GLOBAL_ASM_OP, (FILE));           \
+      assemble_name ((FILE), (NAME));          \
+      fputc ('\n', (FILE));                    \
+  } while (0)
+#endif
+
 /* Allow target to print debug info labels specially.  This is useful for
    VLIW targets, since debug info labels should go into the middle of
    instruction bundles instead of breaking them.  */
@@ -166,6 +190,51 @@ do { fputs (integer_asm_op (POINTER_SIZE / UNITS_PER_WORD, TRUE), FILE); \
 #endif
 #endif
 
+/* How to emit a .type directive.  */
+#ifndef ASM_OUTPUT_TYPE_DIRECTIVE
+#if defined TYPE_ASM_OP && defined TYPE_OPERAND_FMT
+#define ASM_OUTPUT_TYPE_DIRECTIVE(STREAM, NAME, TYPE)  \
+  do                                                   \
+    {                                                  \
+      fputs (TYPE_ASM_OP, STREAM);                     \
+      assemble_name (STREAM, NAME);                    \
+      fputs (", ", STREAM);                            \
+      fprintf (STREAM, TYPE_OPERAND_FMT, TYPE);                \
+      putc ('\n', STREAM);                             \
+    }                                                  \
+  while (0)
+#endif
+#endif
+
+/* How to emit a .size directive.  */
+#ifndef ASM_OUTPUT_SIZE_DIRECTIVE
+#ifdef SIZE_ASM_OP
+#define ASM_OUTPUT_SIZE_DIRECTIVE(STREAM, NAME, SIZE)  \
+  do                                                   \
+    {                                                  \
+      HOST_WIDE_INT size_ = (SIZE);                    \
+      fputs (SIZE_ASM_OP, STREAM);                     \
+      assemble_name (STREAM, NAME);                    \
+      fputs (", ", STREAM);                            \
+      fprintf (STREAM, HOST_WIDE_INT_PRINT_DEC, size_);        \
+      putc ('\n', STREAM);                             \
+    }                                                  \
+  while (0)
+
+#define ASM_OUTPUT_MEASURED_SIZE(STREAM, NAME)         \
+  do                                                   \
+    {                                                  \
+      fputs (SIZE_ASM_OP, STREAM);                     \
+      assemble_name (STREAM, NAME);                    \
+      fputs (", .-", STREAM);                          \
+      assemble_name (STREAM, NAME);                    \
+      putc ('\n', STREAM);                             \
+    }                                                  \
+  while (0)
+
+#endif
+#endif
+
 /* This determines whether or not we support weak symbols.  */
 #ifndef SUPPORTS_WEAK
 #if defined (ASM_WEAKEN_LABEL) || defined (ASM_WEAKEN_DECL)