summaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/ns32k/ns32k.c13
-rw-r--r--gcc/config/ns32k/ns32k.h4
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.