diff options
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/ns32k/ns32k.c | 13 | ||||
-rw-r--r-- | gcc/config/ns32k/ns32k.h | 4 |
2 files changed, 14 insertions, 3 deletions
diff --git a/gcc/config/ns32k/ns32k.c b/gcc/config/ns32k/ns32k.c index e80724ecf40..ff9f5a70a1e 100644 --- a/gcc/config/ns32k/ns32k.c +++ b/gcc/config/ns32k/ns32k.c @@ -1,5 +1,5 @@ /* Subroutines for assembler code output on the NS32000. - Copyright (C) 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 + Copyright (C) 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc. This file is part of GCC. @@ -73,6 +73,7 @@ static void ns32k_output_function_prologue (FILE *, HOST_WIDE_INT); static void ns32k_output_function_epilogue (FILE *, HOST_WIDE_INT); static bool ns32k_rtx_costs (rtx, int, int, int *); static int ns32k_address_cost (rtx); +static rtx ns32k_struct_value_rtx (tree, int); /* Initialize the GCC target structure. */ #undef TARGET_ATTRIBUTE_TABLE @@ -96,6 +97,9 @@ static int ns32k_address_cost (rtx); #undef TARGET_ADDRESS_COST #define TARGET_ADDRESS_COST ns32k_address_cost +#undef TARGET_STRUCT_VALUE_RTX +#define TARGET_STRUCT_VALUE_RTX ns32k_struct_value_rtx + #undef TARGET_ASM_FILE_START_APP_OFF #define TARGET_ASM_FILE_START_APP_OFF true @@ -1557,3 +1561,10 @@ output_move_dconst (int n, const char *s) strcat (r, s); return r; } + +static rtx +ns32k_struct_value_rtx (tree fntype ATTRIBUTE_UNUSED, + int incoming ATTRIBUTE_UNUSED) +{ + return gen_rtx_REG (Pmode, NS32K_STRUCT_VALUE_REGNUM); +} diff --git a/gcc/config/ns32k/ns32k.h b/gcc/config/ns32k/ns32k.h index 091b138a18c..2a1dab08fe9 100644 --- a/gcc/config/ns32k/ns32k.h +++ b/gcc/config/ns32k/ns32k.h @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. NS32000 version. Copyright (C) 1988, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002 Free Software Foundation, Inc. + 2001, 2002, 2004 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. @@ -404,7 +404,7 @@ while (0) /* Register in which address to store a structure value is passed to a function. */ -#define STRUCT_VALUE_REGNUM 2 +#define NS32K_STRUCT_VALUE_REGNUM 2 /* Define the classes of registers for register constraints in the machine description. Also define ranges of constants. |