OSDN Git Service

* a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
[pf3gnuchains/gcc-fork.git] / gcc / config / convex / convex.h
index 50d5baf..d662b2c 100644 (file)
@@ -1,5 +1,6 @@
 /* Definitions of target machine for GNU compiler.  Convex version.
-   Copyright (C) 1988, 1994, 1995, 1996, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1988, 1994, 1995, 1996, 2000, 2001, 2002
+   Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -125,9 +126,8 @@ extern int target_flags;
  -D__NO_INLINE_MATH -D__NO_INLINE_STDLIB                               \
  -D_IEEE_FLOAT_                                                                \
  %{.S:-P}                                                              \
- %{!traditional:-D__stdc__}                                            \
- %{!traditional:-D_LONGLONG}                                           \
- %{!traditional:-Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long}    \
+ -D__stdc__ -D_LONGLONG                                                        \
+ -Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long                    \
  %{!ansi:-D_POSIX_SOURCE}                                              \
  %{!ansi:-D_CONVEX_SOURCE}"
 
@@ -143,21 +143,20 @@ extern int target_flags;
  -D__NO_INLINE_MATH -D__NO_INLINE_STDLIB                               \
  -D_CONVEX_FLOAT_                                                      \
  %{.S:-P}                                                              \
- %{!traditional:-D__stdc__}                                            \
- %{!traditional:-D_LONGLONG}                                           \
- %{!traditional:-Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long}    \
+ -D__stdc__ -D_LONGLONG                                                        \
+ -Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long                    \
  %{!ansi:-D_POSIX_SOURCE}                                              \
  %{!ansi:-D_CONVEX_SOURCE}"
 
 #endif
 
 #define LIB_SPEC                                                       \
-"%{!mc2:%{!mc32:%{!mc34:%{!mc38:-lC1%{traditional:_old}%{p:_p}%{pg:_p}}}}} \
- %{mc2:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}                         \
- %{mc32:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}                                \
- %{mc34:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}                                \
- %{mc38:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}                                \
- -lc%{traditional:_old}%{p:_p}%{pg:_p}"
+"%{!mc2:%{!mc32:%{!mc34:%{!mc38:-lC1%{p:_p}%{pg:_p}}}}} \
+ %{mc2:-lC2%{p:_p}%{pg:_p}}                            \
+ %{mc32:-lC2%{p:_p}%{pg:_p}}                           \
+ %{mc34:-lC2%{p:_p}%{pg:_p}}                           \
+ %{mc38:-lC2%{p:_p}%{pg:_p}}                           \
+ -lc%{p:_p}%{pg:_p}"
 
 #endif
 
@@ -177,9 +176,8 @@ extern int target_flags;
  -D__NO_INLINE_MATH -D__NO_INLINE_STDLIB                               \
  -D_IEEE_FLOAT_                                                                \
  %{.S:-P}                                                              \
- %{!traditional:-D__stdc__}                                            \
- %{!traditional:-D_LONGLONG}                                           \
- %{!traditional:-Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long}    \
+ -D__stdc__ -D_LONGLONG                                                        \
+ -Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long                    \
  %{!ansi:-D_POSIX_SOURCE}                                              \
  %{!ansi:-D_CONVEX_SOURCE}"
 
@@ -195,21 +193,20 @@ extern int target_flags;
  -D__NO_INLINE_MATH -D__NO_INLINE_STDLIB                               \
  -D_CONVEX_FLOAT_                                                      \
  %{.S:-P}                                                              \
- %{!traditional:-D__stdc__}                                            \
- %{!traditional:-D_LONGLONG}                                           \
- %{!traditional:-Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long}    \
+ -D__stdc__ -D_LONGLONG                                                        \
+ -Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long                    \
  %{!ansi:-D_POSIX_SOURCE}                                              \
  %{!ansi:-D_CONVEX_SOURCE}"
 
 #endif
 
 #define LIB_SPEC                                                       \
-"%{mc1:-lC1%{traditional:_old}%{p:_p}%{pg:_p}}                         \
- %{!mc1:%{!mc32:%{!mc34:%{!mc38:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}}}} \
- %{mc32:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}                                \
- %{mc34:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}                                \
- %{mc38:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}                                \
- -lc%{traditional:_old}%{p:_p}%{pg:_p}"
+"%{mc1:-lC1%{p:_p}%{pg:_p}}                            \
+ %{!mc1:%{!mc32:%{!mc34:%{!mc38:-lC2%{p:_p}%{pg:_p}}}}} \
+ %{mc32:-lC2%{p:_p}%{pg:_p}}                           \
+ %{mc34:-lC2%{p:_p}%{pg:_p}}                           \
+ %{mc38:-lC2%{p:_p}%{pg:_p}}                           \
+ -lc%{p:_p}%{pg:_p}"
 
 #endif
 
@@ -229,9 +226,8 @@ extern int target_flags;
  -D__NO_INLINE_MATH -D__NO_INLINE_STDLIB                               \
  -D_IEEE_FLOAT_                                                                \
  %{.S:-P}                                                              \
- %{!traditional:-D__stdc__}                                            \
- %{!traditional:-D_LONGLONG}                                           \
- %{!traditional:-Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long}    \
+ -D__stdc__ -D_LONGLONG                                                        \
+ -Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long                    \
  %{!ansi:-D_POSIX_SOURCE}                                              \
  %{!ansi:-D_CONVEX_SOURCE}"
 
@@ -247,21 +243,20 @@ extern int target_flags;
  -D__NO_INLINE_MATH -D__NO_INLINE_STDLIB                               \
  -D_CONVEX_FLOAT_                                                      \
  %{.S:-P}                                                              \
- %{!traditional:-D__stdc__}                                            \
- %{!traditional:-D_LONGLONG}                                           \
- %{!traditional:-Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long}    \
+ -D__stdc__ -D_LONGLONG                                                        \
+ -Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long                    \
  %{!ansi:-D_POSIX_SOURCE}                                              \
  %{!ansi:-D_CONVEX_SOURCE}"
 
 #endif
 
 #define LIB_SPEC                                                       \
-"%{mc1:-lC1%{traditional:_old}%{p:_p}%{pg:_p}}                         \
- %{mc2:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}                         \
- %{!mc1:%{!mc2:%{!mc34:%{!mc38:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}}}} \
- %{mc34:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}                                \
- %{mc38:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}                                \
- -lc%{traditional:_old}%{p:_p}%{pg:_p}"
+"%{mc1:-lC1%{p:_p}%{pg:_p}}                            \
+ %{mc2:-lC2%{p:_p}%{pg:_p}}                            \
+ %{!mc1:%{!mc2:%{!mc34:%{!mc38:-lC2%{p:_p}%{pg:_p}}}}} \
+ %{mc34:-lC2%{p:_p}%{pg:_p}}                           \
+ %{mc38:-lC2%{p:_p}%{pg:_p}}                           \
+ -lc%{p:_p}%{pg:_p}"
 
 #endif
 
@@ -281,9 +276,8 @@ extern int target_flags;
  -D__NO_INLINE_MATH -D__NO_INLINE_STDLIB                               \
  -D_IEEE_FLOAT_                                                                \
  %{.S:-P}                                                              \
- %{!traditional:-D__stdc__}                                            \
- %{!traditional:-D_LONGLONG}                                           \
- %{!traditional:-Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long}    \
+ -D__stdc__ -D_LONGLONG                                                        \
+ -Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long                    \
  %{!ansi:-D_POSIX_SOURCE}                                              \
  %{!ansi:-D_CONVEX_SOURCE}"
 
@@ -299,21 +293,20 @@ extern int target_flags;
  -D__NO_INLINE_MATH -D__NO_INLINE_STDLIB                               \
  -D_CONVEX_FLOAT_                                                      \
  %{.S:-P}                                                              \
- %{!traditional:-D__stdc__}                                            \
- %{!traditional:-D_LONGLONG}                                           \
- %{!traditional:-Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long}    \
+ -D__stdc__ -D_LONGLONG                                                        \
+ -Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long                    \
  %{!ansi:-D_POSIX_SOURCE}                                              \
  %{!ansi:-D_CONVEX_SOURCE}"
 
 #endif
 
 #define LIB_SPEC                                                       \
-"%{mc1:-lC1%{traditional:_old}%{p:_p}%{pg:_p}}                         \
- %{mc2:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}                         \
- %{mc32:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}                                \
- %{!mc1:%{!mc2:%{!mc32:%{!mc38:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}}}} \
- %{mc38:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}                                \
- -lc%{traditional:_old}%{p:_p}%{pg:_p}"
+"%{mc1:-lC1%{p:_p}%{pg:_p}}                            \
+ %{mc2:-lC2%{p:_p}%{pg:_p}}                            \
+ %{mc32:-lC2%{p:_p}%{pg:_p}}                           \
+ %{!mc1:%{!mc2:%{!mc32:%{!mc38:-lC2%{p:_p}%{pg:_p}}}}} \
+ %{mc38:-lC2%{p:_p}%{pg:_p}}                           \
+ -lc%{p:_p}%{pg:_p}"
 
 #endif
 
@@ -333,9 +326,8 @@ extern int target_flags;
  -D_IEEE_FLOAT_                                                                \
  %{!mc1:%{!mc2:%{!mc32:%{!mc34:-D__convex_c38__}}}}                    \
  %{.S:-P}                                                              \
- %{!traditional:-D__stdc__}                                            \
- %{!traditional:-D_LONGLONG}                                           \
- %{!traditional:-Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long}    \
+ -D__stdc__ -D_LONGLONG                                                        \
+ -Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long                    \
  %{!ansi:-D_POSIX_SOURCE}                                              \
  %{!ansi:-D_CONVEX_SOURCE}"
 
@@ -351,21 +343,20 @@ extern int target_flags;
  -D_CONVEX_FLOAT_                                                      \
  %{!mc1:%{!mc2:%{!mc32:%{!mc34:-D__convex_c38__}}}}                    \
  %{.S:-P}                                                              \
- %{!traditional:-D__stdc__}                                            \
- %{!traditional:-D_LONGLONG}                                           \
- %{!traditional:-Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long}    \
+ -D__stdc__ -D_LONGLONG                                                        \
+ -Ds64_t=long\\ long -Du64_t=unsigned\\ long\\ long                    \
  %{!ansi:-D_POSIX_SOURCE}                                              \
  %{!ansi:-D_CONVEX_SOURCE}"
 
 #endif
 
-#define LIB_SPEC                                                       \
-"%{mc1:-lC1%{traditional:_old}%{p:_p}%{pg:_p}}                         \
- %{mc2:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}                         \
- %{mc32:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}                                \
- %{mc34:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}                                \
- %{!mc1:%{!mc2:%{!mc32:%{!mc34:-lC2%{traditional:_old}%{p:_p}%{pg:_p}}}}} \
- -lc%{traditional:_old}%{p:_p}%{pg:_p}"
+#define LIB_SPEC                                       \
+"%{mc1:-lC1%{p:_p}%{pg:_p}}                            \
+ %{mc2:-lC2%{p:_p}%{pg:_p}}                            \
+ %{mc32:-lC2%{p:_p}%{pg:_p}}                           \
+ %{mc34:-lC2%{p:_p}%{pg:_p}}                           \
+ %{!mc1:%{!mc2:%{!mc32:%{!mc34:-lC2%{p:_p}%{pg:_p}}}}} \
+ -lc%{p:_p}%{pg:_p}"
 
 #endif
 
@@ -376,14 +367,13 @@ extern int target_flags;
 #define ASM_SPEC "-fi"
 
 #define LINK_SPEC                                                      \
-"-E%{traditional:no}posix                                              \
+"-Eposix                                                               \
  -X                                                                    \
  %{F} %{M*} %{y*}                                                      \
  -fi                                                                   \
  -A__iob=___ap$iob                                                     \
  -A_use_libc_sema=___ap$use_libc_sema                                  \
- %{traditional:-A___gcc_cleanup=__cleanup}                             \
- %{!traditional:-A___gcc_cleanup=___ap$do_registered_functions}                \
+ %-A___gcc_cleanup=___ap$do_registered_functions                       \
  -L/usr/lib"
 
 #define STARTFILE_SPEC                                                 \
@@ -399,14 +389,13 @@ extern int target_flags;
 #define ASM_SPEC "-fn"
 
 #define LINK_SPEC                                                      \
-"-E%{traditional:no}posix                                              \
+"-Eposix                                                               \
  -X                                                                    \
  %{F} %{M*} %{y*}                                                      \
  -fn                                                                   \
  -A__iob=___ap$iob                                                     \
  -A_use_libc_sema=___ap$use_libc_sema                                  \
- %{traditional:-A___gcc_cleanup=__cleanup}                             \
- %{!traditional:-A___gcc_cleanup=___ap$do_registered_functions}                \
+ -A___gcc_cleanup=___ap$do_registered_functions                                \
  -L/usr/lib"
 
 #define STARTFILE_SPEC                                                 \
@@ -445,9 +434,6 @@ extern int target_flags;
 /* Define this if most significant word of a multiword number is numbered.  */
 #define WORDS_BIG_ENDIAN 1
 
-/* Number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
 /* Width in bits of a "word", which is the contents of a machine register.
    Note that this is not necessarily the width of data type `int';
    if using 16-bit ints on a 68000, this would still be 32.
@@ -1019,12 +1005,6 @@ enum reg_class {
    jumps to the default label instead.  */
 /* #define CASE_DROPS_THROUGH */
 
-/* Specify the tree operation to be used to convert reals to integers.  */
-#define IMPLICIT_FIX_EXPR FIX_ROUND_EXPR
-
-/* This is the kind of divide that is easiest to do in the general case.  */
-#define EASY_DIV_EXPR TRUNC_DIV_EXPR
-
 /* Define this as 1 if `char' should by default be signed; else as 0.  */
 #define DEFAULT_SIGNED_CHAR 1
 
@@ -1036,9 +1016,6 @@ enum reg_class {
    in one reasonably fast instruction.  */
 #define MOVE_MAX 8
 
-/* Define this if zero-extension is slow (more than one real instruction).  */
-/* #define SLOW_ZERO_EXTEND */
-
 /* Nonzero if access to memory by bytes is slow and undesirable.  */
 #define SLOW_BYTE_ACCESS (! TARGET_C2)
 
@@ -1204,10 +1181,6 @@ enum reg_class {
 
 #define DBX_DEBUGGING_INFO
 
-/* How to renumber registers for dbx and gdb.  */
-
-#define DBX_REGISTER_NUMBER(REGNO) (REGNO)
-
 /* Do not break .stabs pseudos into continuations.  */
 
 #define DBX_CONTIN_LENGTH 0
@@ -1261,64 +1234,12 @@ enum reg_class {
 #define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM)  \
   sprintf (LABEL, "*%s%d", PREFIX, NUM)
 
-/* This is how to output an assembler line defining a `double' constant.  */
-
-#define ASM_OUTPUT_DOUBLE(FILE,VALUE) \
-  outfloat (FILE, VALUE, "%.17e", "\tds.d ", "\n")
-
-/* This is how to output an assembler line defining a `float' constant.  */
-
-#define ASM_OUTPUT_FLOAT(FILE,VALUE) \
-  outfloat (FILE, VALUE, "%.9e", "\tds.s ", "\n")
-
-/* This is how to output an assembler line defining an `int' constant.  */
-
-#define ASM_OUTPUT_INT(FILE,VALUE)  \
-{                                                                      \
-  fprintf (FILE, "\tds.w ");                                           \
-  output_addr_const (FILE, simplify_for_convex (VALUE));               \
-  fprintf (FILE, "\n");                                                        \
-}
-
-/* Likewise for a `long long int' constant.  */
-
-#define ASM_OUTPUT_DOUBLE_INT(FILE,VALUE)  \
-{                                                                      \
-  if (GET_CODE (VALUE) == CONST_DOUBLE)                                        \
-    fprintf (FILE, "\tds.w %d,%d\n",                                   \
-            const_double_high_int (VALUE), const_double_low_int (VALUE)); \
-  else if (GET_CODE (VALUE) == CONST_INT)                              \
-    {                                                                  \
-      int val = INTVAL (VALUE);                                                \
-      fprintf (FILE, "\tds.w %d,%d\n", val < 0 ? -1 : 0, val);         \
-    }                                                                  \
-  else                                                                 \
-    abort ();                                                          \
-}
-
-/* Likewise for `char' and `short' constants.  */
-
-#define ASM_OUTPUT_SHORT(FILE,VALUE)  \
-( fprintf (FILE, "\tds.h "),                   \
-  output_addr_const (FILE, (VALUE)),           \
-  fprintf (FILE, "\n"))
-
-#define ASM_OUTPUT_CHAR(FILE,VALUE)  \
-( fprintf (FILE, "\tds.b "),                   \
-  output_addr_const (FILE, (VALUE)),           \
-  fprintf (FILE, "\n"))
-
-/* This is how to output an assembler line for a numeric constant byte.  */
-
-#define ASM_OUTPUT_BYTE(FILE,VALUE)  \
-  fprintf (FILE, "\tds.b %#x\n", (int)(VALUE))
-
 /* This is how to output a string */
 
 #define ASM_OUTPUT_ASCII(FILE,STR,SIZE) do {                           \
-  int i;                                                               \
+  size_t i, limit = (SIZE);                                            \
   fprintf ((FILE), "\tds.b \"");                                       \
-  for (i = 0; i < (SIZE); i++) {                                       \
+  for (i = 0; i < limit; i++) {                                                \
       register int c = (STR)[i] & 0377;                                        \
       if (c >= ' ' && c < 0177 && c != '\\' && c != '"')               \
          putc (c, (FILE));                                             \
@@ -1406,7 +1327,7 @@ enum reg_class {
 #define FASCIST_ASSEMBLER
 
 /* __gcc_cleanup is loader-aliased to __ap$do_registered_functions if we
-   are linking against standard libc, 0 if old (-traditional) libc.  */
+   are linking against standard libc  */
 
 #define EXIT_BODY \
 {                                                                      \
@@ -1421,8 +1342,8 @@ enum reg_class {
 
 extern int target_cpu;
 extern int current_section_is_text;
-extern enum reg_class regno_reg_class[];
-extern enum reg_class reg_class_from_letter[];
+extern enum reg_class regno_reg_class[FIRST_PSEUDO_REGISTER];
+extern enum reg_class reg_class_from_letter[256];
 extern char regno_ok_for_index_p_base[];
 #define regno_ok_for_index_p (regno_ok_for_index_p_base + 1)