OSDN Git Service

* system.h (SELECT_RTX_SECTION): Poison.
[pf3gnuchains/gcc-fork.git] / gcc / config / ia64 / sysv4.h
index 86d89ac..1684db1 100644 (file)
@@ -4,12 +4,12 @@
 #undef PREFERRED_DEBUGGING_TYPE
 #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
 
+/* Stabs does not work properly for 64-bit targets.  */
+#undef DBX_DEBUGGING_INFO
+
 /* Various pseudo-ops for which the Intel assembler uses non-standard
    definitions.  */
 
-#undef ASM_BYTE_OP
-#define ASM_BYTE_OP "\tdata1\t"
-
 #undef STRING_ASM_OP
 #define STRING_ASM_OP "\tstringz\t"
 
 #undef ASCII_DATA_ASM_OP
 #define ASCII_DATA_ASM_OP "\tstring\t"
 
+/* ia64-specific options for gas
+   ??? ia64 gas doesn't accept standard svr4 assembler options?  */
+#undef ASM_SPEC
+#define ASM_SPEC "-x %{mconstant-gp} %{mauto-pic} %(asm_extra)"
+
 /* ??? Unfortunately, .lcomm doesn't work, because it puts things in either
    .bss or .sbss, and we can't control the decision of which is used.  When
    I use .lcomm, I get a cryptic "Section group has no member" error from
@@ -64,7 +69,8 @@ do {                                          \
   else                                         \
     fputs (user_label_prefix, STREAM);         \
   fputs (name_, STREAM);                       \
-  fputc ('#', STREAM);                         \
+  if (!ia64_asm_output_label)                  \
+    fputc ('#', STREAM);                       \
 } while (0)
 
 /* Intel assembler requires both flags and type if declaring a non-predefined
@@ -134,65 +140,15 @@ do {                                                                      \
   emit_safe_across_calls (STREAM);                                     \
 } while (0)
 
-/* Case label alignment is handled by ADDR_VEC_ALIGN now.  */
-
-#undef ASM_OUTPUT_BEFORE_CASE_LABEL
-#define ASM_OUTPUT_BEFORE_CASE_LABEL(FILE,PREFIX,NUM,TABLE)
-
-/* We override svr4.h so that we can support the sdata section.  */
-
-#undef SELECT_SECTION
-#define SELECT_SECTION(DECL,RELOC)                                     \
-{                                                                      \
-  if (TREE_CODE (DECL) == STRING_CST)                                  \
-    {                                                                  \
-      if (! flag_writable_strings)                                     \
-       const_section ();                                               \
-      else                                                             \
-       data_section ();                                                \
-    }                                                                  \
-  else if (TREE_CODE (DECL) == VAR_DECL)                               \
-    {                                                                  \
-      if (XSTR (XEXP (DECL_RTL (DECL), 0), 0)[0]                       \
-         == SDATA_NAME_FLAG_CHAR)                                      \
-        sdata_section ();                                              \
-      /* ??? We need the extra ! RELOC check, because the default is to \
-        only check RELOC if flag_pic is set, and we don't set flag_pic \
-        (yet?).  */                                                    \
-      else if (DECL_READONLY_SECTION (DECL, RELOC) && ! (RELOC))       \
-       const_section ();                                               \
-      else                                                             \
-       data_section ();                                                \
-    }                                                                  \
-  /* This could be a CONSTRUCTOR containing ADDR_EXPR of a VAR_DECL,   \
-     in which case we can't put it in a shared library rodata.  */     \
-  else if (flag_pic && (RELOC))                                                \
-    data_section ();                                                   \
-  else                                                                 \
-    const_section ();                                                  \
-}
-
-/* Similarly for constant pool data.  */
-
-extern unsigned int ia64_section_threshold;
-#undef SELECT_RTX_SECTION
-#define SELECT_RTX_SECTION(MODE, RTX)                                  \
-{                                                                      \
-  if (GET_MODE_SIZE (MODE) > 0                                         \
-      && GET_MODE_SIZE (MODE) <= ia64_section_threshold)               \
-    sdata_section ();                                                  \
-  else if (flag_pic && symbolic_operand ((RTX), (MODE)))               \
-    data_section ();                                                   \
-  else                                                                 \
-    const_section ();                                                  \
-}
+/* Override default elf definition.  */
+#undef TARGET_ASM_SELECT_RTX_SECTION
+#define TARGET_ASM_SELECT_RTX_SECTION  ia64_select_rtx_section
 
 #undef EXTRA_SECTIONS
-#define EXTRA_SECTIONS in_const, in_sdata, in_sbss
+#define EXTRA_SECTIONS in_sdata, in_sbss
 
 #undef EXTRA_SECTION_FUNCTIONS
 #define EXTRA_SECTION_FUNCTIONS                                                \
-  CONST_SECTION_FUNCTION                                               \
   SDATA_SECTION_FUNCTION                                               \
   SBSS_SECTION_FUNCTION