diff options
Diffstat (limited to 'gcc/config/xtensa/xtensa.h')
| -rw-r--r-- | gcc/config/xtensa/xtensa.h | 40 |
1 files changed, 3 insertions, 37 deletions
diff --git a/gcc/config/xtensa/xtensa.h b/gcc/config/xtensa/xtensa.h index 88d1ba8..f650bcd 100644 --- a/gcc/config/xtensa/xtensa.h +++ b/gcc/config/xtensa/xtensa.h @@ -1,5 +1,5 @@ /* Definitions of Tensilica's Xtensa target machine for GNU compiler. - Copyright 2001,2002,2003 Free Software Foundation, Inc. + Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. This file is part of GCC. @@ -204,15 +204,6 @@ extern unsigned xtensa_current_frame_size; } \ } while (0) -/* The promotion described by `PROMOTE_MODE' should also be done for - outgoing function arguments. */ -#define PROMOTE_FUNCTION_ARGS - -/* The promotion described by `PROMOTE_MODE' should also be done for - the return value of functions. Note: `FUNCTION_VALUE' must perform - the same promotions done by `PROMOTE_MODE'. */ -#define PROMOTE_FUNCTION_RETURN - /* Imitate the way many other C compilers handle alignment of bitfields and the structures that contain them. */ #define PCC_BITFIELD_TYPE_MATTERS 1 @@ -239,10 +230,6 @@ extern unsigned xtensa_current_frame_size; || TREE_CODE (TYPE) == UNION_TYPE \ || TREE_CODE (TYPE) == RECORD_TYPE)) ? BITS_PER_WORD : (ALIGN)) -/* An argument declared as 'char' or 'short' in a prototype should - actually be passed as an 'int'. */ -#define PROMOTE_PROTOTYPES 1 - /* Operations between registers always perform the operation on the full register even if a narrower mode is specified. */ #define WORD_REGISTER_OPERATIONS @@ -425,9 +412,6 @@ extern char xtensa_hard_regno_mode_ok[][FIRST_PSEUDO_REGISTER]; a real pain to get them reloaded. */ #define FPCC_REGNUM (BR_REG_FIRST + 0) -/* Pass structure value address as an "invisible" first argument. */ -#define STRUCT_VALUE 0 - /* It is as good or better to call a constant function address than to call an address kept in a register. */ #define NO_FUNCTION_CSE 1 @@ -701,20 +685,10 @@ extern enum reg_class xtensa_char_to_class[256]; /* Don't worry about compatibility with PCC. */ #define DEFAULT_PCC_STRUCT_RETURN 0 -/* For Xtensa, up to 4 words can be returned in registers. (It would - have been nice to allow up to 6 words in registers but GCC cannot - support that. The return value must be given one of the standard - MODE_INT modes, and there is no 6 word mode. Instead, if we try to - return a 6 word structure, GCC selects the next biggest mode - (OImode, 8 words) and then the register allocator fails because - there is no 8-register group beginning with a10.) */ -#define RETURN_IN_MEMORY(TYPE) \ - ((unsigned HOST_WIDE_INT) int_size_in_bytes (TYPE) > 4 * UNITS_PER_WORD) - /* Define how to find the value returned by a library function assuming the value has mode MODE. Because we have defined - PROMOTE_FUNCTION_RETURN, we have to perform the same promotions as - PROMOTE_MODE. */ + TARGET_PROMOTE_FUNCTION_RETURN that returns true, we have to + perform the same promotions as PROMOTE_MODE. */ #define XTENSA_LIBCALL_VALUE(MODE, OUTGOINGP) \ gen_rtx_REG ((GET_MODE_CLASS (MODE) == MODE_INT \ && GET_MODE_SIZE (MODE) < UNITS_PER_WORD) \ @@ -932,14 +906,6 @@ typedef struct xtensa_args { 0, VOIDmode, 1, addr, Pmode); \ } while (0) -/* If defined, is a C expression that produces the machine-specific - code for a call to '__builtin_saveregs'. This code will be moved - to the very beginning of the function, before any parameter access - are made. The return value of this function should be an RTX that - contains the value to use as the return of '__builtin_saveregs'. */ -#define EXPAND_BUILTIN_SAVEREGS \ - xtensa_builtin_saveregs - /* Implement `va_start' for varargs and stdarg. */ #define EXPAND_BUILTIN_VA_START(valist, nextarg) \ xtensa_va_start (valist, nextarg) |
