OSDN Git Service

PR middle-end/35456
[pf3gnuchains/gcc-fork.git] / gcc / config / vax / vax.h
index 8625988..68726ff 100644 (file)
@@ -1,12 +1,12 @@
 /* Definitions of target machine for GNU compiler.  VAX version.
    Copyright (C) 1987, 1988, 1991, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
 GCC is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
+the Free Software Foundation; either version 3, or (at your option)
 any later version.
 
 GCC is distributed in the hope that it will be useful,
@@ -15,9 +15,8 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 
 /* Target CPU builtins.  */
@@ -104,7 +103,7 @@ Boston, MA 02111-1307, USA.  */
 #define STRUCTURE_SIZE_BOUNDARY 8
 
 /* A bit-field declared as `int' forces `int' alignment for the struct.  */
-#define PCC_BITFIELD_TYPE_MATTERS (! TARGET_VAXC_ALIGNMENT)
+#define PCC_BITFIELD_TYPE_MATTERS (!TARGET_VAXC_ALIGNMENT)
 
 /* No data type wants to be aligned rounder than this.  */
 #define BIGGEST_ALIGNMENT 32
@@ -289,9 +288,9 @@ enum reg_class { NO_REGS, ALL_REGS, LIM_REG_CLASSES };
    For the VAX, `Q' means that OP is a MEM that does not have a mode-dependent
    address.  */
 
-#define EXTRA_CONSTRAINT(OP, C)                                                \
-  ((C) == 'Q'                                                          \
-   ? GET_CODE (OP) == MEM && ! mode_dependent_address_p (XEXP (OP, 0)) \
+#define EXTRA_CONSTRAINT(OP, C)                                        \
+  ((C) == 'Q'                                                  \
+   ? MEM_P (OP) && !mode_dependent_address_p (XEXP (OP, 0))    \
    : 0)
 
 /* Given an rtx X being reloaded into a reg required to be
@@ -314,11 +313,11 @@ enum reg_class { NO_REGS, ALL_REGS, LIM_REG_CLASSES };
    makes the stack pointer a smaller address.  */
 #define STACK_GROWS_DOWNWARD
 
-/* Define this if the nominal address of the stack frame
+/* Define this to nonzero if the nominal address of the stack frame
    is at the high-address end of the local variables;
    that is, each additional local variable allocated
    goes at a more negative offset in the frame.  */
-#define FRAME_GROWS_DOWNWARD
+#define FRAME_GROWS_DOWNWARD 1
 
 /* Offset within stack frame to start allocating local variables at.
    If FRAME_GROWS_DOWNWARD, this is the offset to the END of the
@@ -825,14 +824,6 @@ enum reg_class { NO_REGS, ALL_REGS, LIM_REG_CLASSES };
     assemble_name ((FILE), (NAME)),                    \
     fprintf ((FILE), ",%u\n", (int)(ROUNDED)))
 
-/* Store in OUTPUT a string (made with alloca) containing
-   an assembler-name for a local static variable named NAME.
-   LABELNO is an integer which is different for each call.  */
-
-#define ASM_FORMAT_PRIVATE_NAME(OUTPUT, NAME, LABELNO) \
-  ( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10), \
-    sprintf ((OUTPUT), "%s.%d", (NAME), (LABELNO)))
-
 /* Print an instruction operand X on file FILE.
    CODE is the code from the %-spec that requested printing this operand;
    if `%z3' was used to print operand 3, then CODE is 'z'.
@@ -872,28 +863,28 @@ VAX operand formatting codes:
     fputs (REGISTER_PREFIX, FILE);                                     \
   else if (CODE == 'C')                                                        \
     fputs (rev_cond_name (X), FILE);                                   \
-  else if (CODE == 'D' && GET_CODE (X) == CONST_INT && INTVAL (X) < 0) \
+  else if (CODE == 'D' && CONST_INT_P (X) && INTVAL (X) < 0)           \
     fprintf (FILE, "$" NEG_HWI_PRINT_HEX16, INTVAL (X));               \
-  else if (CODE == 'P' && GET_CODE (X) == CONST_INT)                   \
+  else if (CODE == 'P' && CONST_INT_P (X))                             \
     fprintf (FILE, "$" HOST_WIDE_INT_PRINT_DEC, INTVAL (X) + 1);       \
-  else if (CODE == 'N' && GET_CODE (X) == CONST_INT)                   \
+  else if (CODE == 'N' && CONST_INT_P (X))                             \
     fprintf (FILE, "$" HOST_WIDE_INT_PRINT_DEC, ~ INTVAL (X));         \
   /* rotl instruction cannot deal with negative arguments.  */         \
-  else if (CODE == 'R' && GET_CODE (X) == CONST_INT)                   \
+  else if (CODE == 'R' && CONST_INT_P (X))                             \
     fprintf (FILE, "$" HOST_WIDE_INT_PRINT_DEC, 32 - INTVAL (X));      \
-  else if (CODE == 'H' && GET_CODE (X) == CONST_INT)                   \
+  else if (CODE == 'H' && CONST_INT_P (X))                             \
     fprintf (FILE, "$%d", (int) (0xffff & ~ INTVAL (X)));              \
-  else if (CODE == 'h' && GET_CODE (X) == CONST_INT)                   \
+  else if (CODE == 'h' && CONST_INT_P (X))                             \
     fprintf (FILE, "$%d", (short) - INTVAL (x));                       \
-  else if (CODE == 'B' && GET_CODE (X) == CONST_INT)                   \
+  else if (CODE == 'B' && CONST_INT_P (X))                             \
     fprintf (FILE, "$%d", (int) (0xff & ~ INTVAL (X)));                        \
-  else if (CODE == 'b' && GET_CODE (X) == CONST_INT)                   \
+  else if (CODE == 'b' && CONST_INT_P (X))                             \
     fprintf (FILE, "$%d", (int) (0xff & - INTVAL (X)));                        \
-  else if (CODE == 'M' && GET_CODE (X) == CONST_INT)                   \
+  else if (CODE == 'M' && CONST_INT_P (X))                             \
     fprintf (FILE, "$%d", ~((1 << INTVAL (x)) - 1));                   \
-  else if (GET_CODE (X) == REG)                                                \
+  else if (REG_P (X))                                                  \
     fprintf (FILE, "%s", reg_names[REGNO (X)]);                                \
-  else if (GET_CODE (X) == MEM)                                                \
+  else if (MEM_P (X))                                                  \
     output_address (XEXP (X, 0));                                      \
   else if (GET_CODE (X) == CONST_DOUBLE && GET_MODE (X) == SFmode)     \
     { char dstr[30];                                                   \