OSDN Git Service

(vax_rtx_cost): Remove LSHIFT case.
[pf3gnuchains/gcc-fork.git] / gcc / config / vax / vax.h
index a520e2a..36cf4a7 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions of target machine for GNU compiler.  Vax version.
-   Copyright (C) 1987, 1988, 1991, 1993 Free Software Foundation, Inc.
+   Copyright (C) 1987, 1988, 1991, 1993, 1994 Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -20,7 +20,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 /* Names to predefine in the preprocessor for this target machine.  */
 
-#define CPP_PREDEFINES "-Dvax -Dunix"
+#define CPP_PREDEFINES "-Dvax -Dunix -Asystem(unix) -Asystem(bsd) -Acpu(vax) -Amachine(vax)"
 
 /* If using g-format floating point, alter math.h.  */
 
@@ -541,6 +541,8 @@ gen_rtx (PLUS, Pmode, frame, gen_rtx (CONST_INT, VOIDmode, 12))
    to the start of the trampoline.  */
 #define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT)                      \
 {                                                                      \
+  emit_insn (gen_rtx (ASM_INPUT, VOIDmode,                             \
+                     "movpsl -(sp)\n\tpushal 1(pc)\n\trei"));          \
   emit_move_insn (gen_rtx (MEM, HImode, TRAMP),                                \
                  gen_rtx (MEM, HImode, FNADDR));                       \
   emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 4)), CXT);\
@@ -882,7 +884,7 @@ gen_rtx (PLUS, Pmode, frame, gen_rtx (CONST_INT, VOIDmode, 12))
 
 #define RTX_COSTS(RTX,CODE,OUTER_CODE) case FIX: case FLOAT:   \
  case MULT: case DIV: case UDIV: case MOD: case UMOD:          \
- case LSHIFT: case ASHIFT: case LSHIFTRT: case ASHIFTRT:       \
+ case ASHIFT: case LSHIFTRT: case ASHIFTRT:                    \
  case ROTATE: case ROTATERT: case PLUS: case MINUS: case IOR:  \
  case XOR: case AND: case NEG: case NOT: case ZERO_EXTRACT:    \
  case SIGN_EXTRACT: case MEM: return vax_rtx_cost(RTX)
@@ -910,7 +912,8 @@ gen_rtx (PLUS, Pmode, frame, gen_rtx (CONST_INT, VOIDmode, 12))
 /* note that it is very hard to accidentally create a number that fits in a
    double but not in a float, since their ranges are almost the same */
 
-#define CHECK_FLOAT_VALUE(mode, d) (check_float_value (mode, &d))
+#define CHECK_FLOAT_VALUE(MODE, D, OVERFLOW) \
+  ((OVERFLOW) = check_float_value (MODE, &D, OVERFLOW))
 
 /* For future reference:
    D Float: 9 bit, sign magnitude, excess 128 binary exponent