OSDN Git Service

* 1750a.md, arm.c, clipper.c, clipper.md: Use GEN_INT consistently.
[pf3gnuchains/gcc-fork.git] / gcc / config / pdp11 / pdp11.h
index 9ccab5a..e52f77c 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions of target machine for GNU compiler, for the pdp-11
-   Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+   Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
    Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at).
 
 This file is part of GNU CC.
@@ -378,7 +378,7 @@ enum reg_class { NO_REGS, MUL_REGS, GENERAL_REGS, LOAD_FPU_REGS, NO_LOAD_FPU_REG
 #define N_REG_CLASSES (int) LIM_REG_CLASSES
 
 /* have to allow this till cmpsi/tstsi are fixed in a better way !! */
-#define SMALL_REGISTER_CLASSES 
+#define SMALL_REGISTER_CLASSES 1
 
 /* Since GENERAL_REGS is the same class as ALL_REGS,
    don't give it a different class number; just make it an alias.  */
@@ -566,7 +566,7 @@ maybe ac0 ? - as option someday! */
 /* should probably return DImode and DFmode in memory,lest
    we fill up all regs!
 
- have to, else we crash - exceptio: maybe return result in 
+ have to, else we crash - exception: maybe return result in 
  ac0 if DFmode and FPU present - compatibility problem with
  libraries for non-floating point ...
 */
@@ -598,7 +598,7 @@ maybe ac0 ? - as option someday! */
    when the function gets a structure-value-address as an
    invisible first argument.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME      \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)      \
  ((CUM) = 0)
 
 /* Update the data in CUM to advance over an argument
@@ -879,10 +879,11 @@ extern int current_function_pretend_args_size;
    `tablejump' insn.  */
 #define CASE_TAKES_INDEX_RAW
 
-/* Define this if the tablejump instruction expects the table
-   to contain offsets from the address of the table.
-   Do not define this if the table should contain absolute addresses.  */
-/* #define CASE_VECTOR_PC_RELATIVE */
+/* Define as C expression which evaluates to nonzero if the tablejump
+   instruction expects the table to contain offsets from the address of the
+   table.
+   Do not define this if the table should contain absolute addresses. */
+/* #define CASE_VECTOR_PC_RELATIVE 1 */
 
 /* Specify the tree operation to be used to convert reals to integers.  */
 #define IMPLICIT_FIX_EXPR FIX_ROUND_EXPR
@@ -1079,11 +1080,9 @@ fprintf (FILE, "$help$: . = .+8 ; space for tmp moves!\n")       \
 #define ASM_GLOBALIZE_LABEL(FILE,NAME) \
   do { fputs ("\t.globl ", FILE); assemble_name (FILE, NAME); fputs("\n", FILE); } while (0)
 
-/* This is how to output a reference to a user-level label named NAME.
-   `assemble_name' uses this.  */
+/* The prefix to add to user-visible assembler symbols. */
 
-#define ASM_OUTPUT_LABELREF(FILE,NAME) \
-  fprintf (FILE, "_%s", NAME)
+#define USER_LABEL_PREFIX "_"
 
 /* This is how to output an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.  */
@@ -1149,11 +1148,9 @@ fprintf (FILE, "$help$: . = .+8 ; space for tmp moves!\n")       \
   fprintf (FILE, "\t.word L_%d\n", VALUE)
 
 /* This is how to output an element of a case-vector that is relative.
-   (the pdp does not use such vectors,
-   but we must define this macro anyway.)  */
+   Don't define this if it is not supported. */
 
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, VALUE, REL)  \
-  fprintf (FILE, "\tERROR @L%d-@L%d ! error should not be used\n", VALUE, REL)
+/* #define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, VALUE, REL) */
 
 /* This is how to output an assembler line
    that says to advance the location counter
@@ -1265,9 +1262,9 @@ JMP       FUNCTION        0x0058  0x0000 <- FUNCTION
   if (TARGET_SPLIT)                    \
     abort();                           \
                                        \
-  ASM_OUTPUT_INT (FILE, gen_rtx(CONST_INT, VOIDmode, 0x9400+STATIC_CHAIN_REGNUM)); \
+  ASM_OUTPUT_INT (FILE, GEN_INT (0x9400+STATIC_CHAIN_REGNUM)); \
   ASM_OUTPUT_INT (FILE, const0_rtx);                           \
-  ASM_OUTPUT_INT (FILE, gen_rtx(CONST_INT, VOIDmode, 0x0058)); \
+  ASM_OUTPUT_INT (FILE, GEN_INT(0x0058));                      \
   ASM_OUTPUT_INT (FILE, const0_rtx);                           \
 }
 
@@ -1298,11 +1295,12 @@ JMP     FUNCTION        0x0058  0x0000 <- FUNCTION
    LEVEL is the optimization level specified; 2 if -O2 is
    specified, 1 if -O is specified, and 0 if neither is specified.  */
 
-#define OPTIMIZATION_OPTIONS(LEVEL)                                    \
+#define OPTIMIZATION_OPTIONS(LEVEL,SIZE)                               \
 {                                                                      \
   if (LEVEL >= 3)                                                      \
     {                                                                  \
-      flag_inline_functions            = 1;                            \
+      if (! SIZE)                                                      \
+        flag_inline_functions          = 1;                            \
       flag_omit_frame_pointer          = 1;                            \
       /* flag_unroll_loops                     = 1; */                 \
     }                                                                  \
@@ -1354,7 +1352,7 @@ JMP       FUNCTION        0x0058  0x0000 <- FUNCTION
     else if (GET_MODE(X) == SImode)                                    \
        total = COSTS_N_INSNS(6);                                       \
     else                                                               \
-       abort();                                                        \
+       total = COSTS_N_INSNS(2);                                       \
     break;                                                             \
   /* case LSHIFT: */                                                   \
   case ASHIFT:                                                         \
@@ -1365,7 +1363,8 @@ JMP       FUNCTION        0x0058  0x0000 <- FUNCTION
     else if (GET_MODE(X) ==  QImode)                                   \
     {                                                                  \
       if (GET_CODE(XEXP (X,1)) != CONST_INT)                           \
-         abort();                                                      \
+       total = COSTS_N_INSNS(8); /* worst case */                      \
+      else                                                              \
        total = COSTS_N_INSNS(INTVAL(XEXP (X,1)));                      \
     }                                                                  \
     else if (GET_MODE(X) == HImode)                                    \