diff gcc/config/stormy16/stormy16.h @ 67:f6334be47118

update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
date Tue, 22 Mar 2011 17:18:12 +0900
parents b7f97abdc517
children 04ced10e8804
line wrap: on
line diff
--- a/gcc/config/stormy16/stormy16.h	Tue May 25 18:58:51 2010 +0900
+++ b/gcc/config/stormy16/stormy16.h	Tue Mar 22 17:18:12 2011 +0900
@@ -1,6 +1,6 @@
 /* Xstormy16 cpu description.
    Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007,
-   2008, 2009, 2010  Free Software Foundation, Inc.
+   2008, 2009, 2010, 2011  Free Software Foundation, Inc.
    Contributed by Red Hat, Inc.
 
    This file is part of GCC.
@@ -25,6 +25,10 @@
 #undef  ASM_SPEC
 #define ASM_SPEC ""
 
+#undef  LINK_SPEC
+#define LINK_SPEC "%{h*} %{v:-V} \
+		   %{static:-Bstatic} %{shared:-shared} %{symbolic:-Bsymbolic}"
+
 /* For xstormy16:
    - If -msim is specified, everything is built and linked as for the sim.
    - If -T is specified, that linker script is used, and it should provide
@@ -53,8 +57,6 @@
   while (0)
 
 #define TARGET_VERSION fprintf (stderr, " (xstormy16 cpu core)");
-
-#define CAN_DEBUG_WITHOUT_FP
 
 /* Storage Layout.  */
 
@@ -118,6 +120,9 @@
 
 #define PTRDIFF_TYPE "int"
 
+#undef  WCHAR_TYPE
+#define WCHAR_TYPE "long int"
+
 #undef  WCHAR_TYPE_SIZE
 #define WCHAR_TYPE_SIZE 32
 
@@ -220,36 +225,10 @@
 
 #define INDEX_REG_CLASS GENERAL_REGS
 
-/*   The following letters are unavailable, due to being used as
-   constraints:
-	'0'..'9'
-	'<', '>'
-	'E', 'F', 'G', 'H'
-	'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P'
-	'Q', 'R', 'S', 'T', 'U'
-	'V', 'X'
-	'g', 'i', 'm', 'n', 'o', 'p', 'r', 's'.  */
-
-#define REG_CLASS_FROM_LETTER(CHAR)		\
- (  (CHAR) == 'a' ? R0_REGS			\
-  : (CHAR) == 'b' ? R1_REGS			\
-  : (CHAR) == 'c' ? R2_REGS			\
-  : (CHAR) == 'd' ? R8_REGS			\
-  : (CHAR) == 'e' ? EIGHT_REGS			\
-  : (CHAR) == 't' ? TWO_REGS			\
-  : (CHAR) == 'z' ? ICALL_REGS			\
-  : NO_REGS)
-
 #define REGNO_OK_FOR_BASE_P(NUM) 1
 
 #define REGNO_OK_FOR_INDEX_P(NUM) REGNO_OK_FOR_BASE_P (NUM)
 
-#define PREFERRED_RELOAD_CLASS(X, CLASS) \
-  xstormy16_preferred_reload_class (X, CLASS)
-
-#define PREFERRED_OUTPUT_RELOAD_CLASS(X, CLASS) \
-  xstormy16_preferred_reload_class (X, CLASS)
-
 /* This chip has the interesting property that only the first eight
    registers can be moved to/from memory.  */
 #define SECONDARY_RELOAD_CLASS(CLASS, MODE, X)			\
@@ -258,22 +237,6 @@
 #define CLASS_MAX_NREGS(CLASS, MODE) \
   ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)
 
-#define CONST_OK_FOR_LETTER_P(VALUE, C)			\
-  (  (C) == 'I' ? (VALUE) >= 0 && (VALUE) <= 3		\
-   : (C) == 'J' ? exact_log2 (VALUE) != -1		\
-   : (C) == 'K' ? exact_log2 (~(VALUE)) != -1		\
-   : (C) == 'L' ? (VALUE) >= 0 && (VALUE) <= 255	\
-   : (C) == 'M' ? (VALUE) >= -255 && (VALUE) <= 0	\
-   : (C) == 'N' ? (VALUE) >= -3 && (VALUE) <= 0		\
-   : (C) == 'O' ? (VALUE) >= 1 && (VALUE) <= 4		\
-   : (C) == 'P' ? (VALUE) >= -4 && (VALUE) <= -1	\
-   : 0 )
-
-#define CONST_DOUBLE_OK_FOR_LETTER_P(VALUE, C) 0
-
-#define EXTRA_CONSTRAINT(VALUE, C) \
-  xstormy16_extra_constraint_p (VALUE, C)
-
 
 /* Basic Stack Layout.  */
 
@@ -328,8 +291,6 @@
 
 #define PUSH_ROUNDING(BYTES) (((BYTES) + 1) & ~1)
 
-#define RETURN_POPS_ARGS(FUNDECL, FUNTYPE, STACK_SIZE) 0
-
 
 /* Function Arguments in Registers.  */
 
@@ -341,9 +302,6 @@
     + 1) 							\
    / 2)
 
-#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \
-	xstormy16_function_arg (CUM, MODE, TYPE, NAMED)
-
 /* For this platform, the value of CUMULATIVE_ARGS is the number of words
    of arguments that have been passed in registers so far.  */
 #define CUMULATIVE_ARGS int
@@ -351,9 +309,6 @@
 #define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT, N_NAMED_ARGS) \
   (CUM) = 0
 
-#define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED)			\
-  ((CUM) = xstormy16_function_arg_advance (CUM, MODE, TYPE, NAMED))
-
 #define FUNCTION_ARG_REGNO_P(REGNO)					\
   ((REGNO) >= FIRST_ARGUMENT_REGISTER 					\
    && (REGNO) < FIRST_ARGUMENT_REGISTER + NUM_ARGUMENT_REGISTERS)
@@ -364,13 +319,6 @@
 /* The number of the hard register that is used to return a scalar value from a
    function call.  */
 #define RETURN_VALUE_REGNUM	FIRST_ARGUMENT_REGISTER
-     
-#define FUNCTION_VALUE(VALTYPE, FUNC) \
-  xstormy16_function_value (VALTYPE, FUNC)
-
-#define LIBCALL_VALUE(MODE) gen_rtx_REG (MODE, RETURN_VALUE_REGNUM)
-
-#define FUNCTION_VALUE_REGNO_P(REGNO) ((REGNO) == RETURN_VALUE_REGNUM)
 
 
 /* Function Entry and Exit.  */
@@ -401,32 +349,11 @@
 
 #define MAX_REGS_PER_ADDRESS 1
 
-#ifdef REG_OK_STRICT
-#define REG_OK_FOR_BASE_P(X) 						   \
-  (REGNO_OK_FOR_BASE_P (REGNO (X)) && (REGNO (X) < FIRST_PSEUDO_REGISTER))
-#else
-#define REG_OK_FOR_BASE_P(X) REGNO_OK_FOR_BASE_P (REGNO (X))
-#endif
-
-#define REG_OK_FOR_INDEX_P(X) REG_OK_FOR_BASE_P (X)
-
-/* On this chip, this is true if the address is valid with an offset
-   of 0 but not of 6, because in that case it cannot be used as an
-   address for DImode or DFmode, or if the address is a post-increment
-   or pre-decrement address.  */
-#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR,LABEL)			\
-  if (xstormy16_mode_dependent_address_p (ADDR))			\
-    goto LABEL
-
 #define LEGITIMATE_CONSTANT_P(X) 1
 
 
 /* Describing Relative Costs of Operations.  */
 
-#define REGISTER_MOVE_COST(MODE, FROM, TO) 2
-
-#define MEMORY_MOVE_COST(M,C,I) (5 + memory_move_secondary_cost (M, C, I))
-
 #define BRANCH_COST(speed_p, predictable_p) 5
 
 #define SLOW_BYTE_ACCESS 0
@@ -513,11 +440,6 @@
   { { "r14", 14 },				\
     { "r15", 15 } }
 
-#define PRINT_OPERAND(STREAM, X, CODE) xstormy16_print_operand (STREAM, X, CODE)
-
-#define PRINT_OPERAND_ADDRESS(STREAM, X) xstormy16_print_operand_address (STREAM, X)
-
-/* USER_LABEL_PREFIX is defined in svr4.h.  */
 #define REGISTER_PREFIX ""
 #define LOCAL_LABEL_PREFIX "."
 #define USER_LABEL_PREFIX ""
@@ -559,7 +481,6 @@
 
 /* Macros Affecting all Debug Formats.  */
 
-/* Defined in svr4.h.  */
 #undef  PREFERRED_DEBUGGING_TYPE
 #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
 
@@ -597,5 +518,3 @@
 #define FUNCTION_MODE HImode
 
 #define NO_IMPLICIT_EXTERN_C
-
-#define HANDLE_SYSV_PRAGMA 1