ia64.h (ASM_OUTPUT_XDATA_CHAR): Remove.
authorSteve Ellcey <sje@cup.hp.com>
Wed, 12 Mar 2003 23:05:40 +0000 (23:05 +0000)
committerSteve Ellcey <sje@gcc.gnu.org>
Wed, 12 Mar 2003 23:05:40 +0000 (23:05 +0000)
* config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR): Remove.
(ASM_OUTPUT_XDATA_SHORT): Remove.
(ASM_OUTPUT_XDATA_INT): Remove.
(ASM_OUTPUT_XDATA_DOUBLE_INT): Remove.
(ASM_OUTPUT_ADDR_DIFF_ELT): Handled 32 bit address diffs.
(ASM_PREFERRED_EH_DATA_FORMAT): Handle 32 bit EH pointers.
(CASE_VECTOR_MODE): Handle 32 bit pointers in case statement.

From-SVN: r64271

gcc/ChangeLog
gcc/config/ia64/ia64.h

index 30dbe70a6d3be338d069b238c958334b3fafd61c..9c9d2573384bf8ce1caf2655cde7202b24002ba3 100644 (file)
@@ -1,3 +1,13 @@
+2003-03-12  Steve Ellcey  <sje@cup.hp.com>
+
+       * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR): Remove.
+       (ASM_OUTPUT_XDATA_SHORT): Remove.
+       (ASM_OUTPUT_XDATA_INT): Remove.
+       (ASM_OUTPUT_XDATA_DOUBLE_INT): Remove.
+       (ASM_OUTPUT_ADDR_DIFF_ELT): Handled 32 bit address diffs.
+       (ASM_PREFERRED_EH_DATA_FORMAT): Handle 32 bit EH pointers.
+       (CASE_VECTOR_MODE): Handle 32 bit pointers in case statement.
+
 2003-03-12  Andrew Lewycky  <andrew@mxc.ca>
 
        PR c++/7050
index 116aec4dd163a2cae711bc3832573eabdc4667a5..e813ab1e6d9f56b281ef6aaefcaa91346fd43a8b 100644 (file)
@@ -1770,61 +1770,6 @@ do {                                                                     \
 
 #define ASM_APP_OFF "#NO_APP\n"
 
-\f
-/* Output of Data.  */
-
-/* This is how to output an assembler line defining a `char' constant
-   to an xdata segment.  */
-
-#define ASM_OUTPUT_XDATA_CHAR(FILE, SECTION, VALUE)                    \
-do {                                                                   \
-  fprintf (FILE, "\t.xdata1\t\"%s\", ", SECTION);                      \
-  output_addr_const (FILE, (VALUE));                                   \
-  fprintf (FILE, "\n");                                                        \
-} while (0)
-
-/* This is how to output an assembler line defining a `short' constant
-   to an xdata segment.  */
-
-#define ASM_OUTPUT_XDATA_SHORT(FILE, SECTION, VALUE)                   \
-do {                                                                   \
-  fprintf (FILE, "\t.xdata2\t\"%s\", ", SECTION);                      \
-  output_addr_const (FILE, (VALUE));                                   \
-  fprintf (FILE, "\n");                                                        \
-} while (0)
-
-/* This is how to output an assembler line defining an `int' constant
-   to an xdata segment.  We also handle symbol output here.  */
-
-/* ??? For ILP32, also need to handle function addresses here.  */
-
-#define ASM_OUTPUT_XDATA_INT(FILE, SECTION, VALUE)                     \
-do {                                                                   \
-  fprintf (FILE, "\t.xdata4\t\"%s\", ", SECTION);                      \
-  output_addr_const (FILE, (VALUE));                                   \
-  fprintf (FILE, "\n");                                                        \
-} while (0)
-
-/* This is how to output an assembler line defining a `long' constant
-   to an xdata segment.  We also handle symbol output here.  */
-
-#define ASM_OUTPUT_XDATA_DOUBLE_INT(FILE, SECTION, VALUE)              \
-do {                                                                   \
-  int need_closing_paren = 0;                                          \
-  fprintf (FILE, "\t.xdata8\t\"%s\", ", SECTION);                      \
-  if (!(TARGET_NO_PIC || TARGET_AUTO_PIC)                              \
-      && GET_CODE (VALUE) == SYMBOL_REF)                               \
-    {                                                                  \
-      fprintf (FILE, SYMBOL_REF_FLAG (VALUE) ? "@fptr(" : "@segrel("); \
-      need_closing_paren = 1;                                          \
-    }                                                                  \
-  output_addr_const (FILE, VALUE);                                     \
-  if (need_closing_paren)                                              \
-    fprintf (FILE, ")");                                               \
-  fprintf (FILE, "\n");                                                        \
-} while (0)
-
-
 \f
 /* Output of Uninitialized Variables.  */
 
@@ -2086,8 +2031,13 @@ do {                                                                     \
 
 /* ??? Depends on the pointer size.  */
 
-#define ASM_OUTPUT_ADDR_DIFF_ELT(STREAM, BODY, VALUE, REL) \
-  fprintf (STREAM, "\tdata8 @pcrel(.L%d)\n", VALUE)
+#define ASM_OUTPUT_ADDR_DIFF_ELT(STREAM, BODY, VALUE, REL)     \
+  do {                                                         \
+  if (TARGET_ILP32)                                            \
+    fprintf (STREAM, "\tdata4 @pcrel(.L%d)\n", VALUE);         \
+  else                                                         \
+    fprintf (STREAM, "\tdata8 @pcrel(.L%d)\n", VALUE);         \
+  } while (0)
 
 /* This is how to output an element of a case-vector that is absolute.
    (Ia64 does not use such vectors, but we must define this macro anyway.)  */
@@ -2106,7 +2056,8 @@ do {                                                                      \
    true if the symbol may be affected by dynamic relocations.  */
 #define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL)      \
   (((CODE) == 1 ? DW_EH_PE_textrel : DW_EH_PE_datarel) \
-   | ((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_udata8)
+   | ((GLOBAL) ? DW_EH_PE_indirect : 0)                        \
+   | (TARGET_ILP32 ? DW_EH_PE_udata4 : DW_EH_PE_udata8))
 
 /* Handle special EH pointer encodings.  Absolute, pc-relative, and
    indirect are handled automatically.  */
@@ -2276,7 +2227,7 @@ do {                                                                      \
 /* An alias for a machine mode name.  This is the machine mode that elements of
    a jump-table should have.  */
 
-#define CASE_VECTOR_MODE Pmode
+#define CASE_VECTOR_MODE ptr_mode
 
 /* Define as C expression which evaluates to nonzero if the tablejump
    instruction expects the table to contain offsets from the address of the