aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2004-01-26 15:50:55 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2004-01-26 15:50:55 +0000
commit2001a5cf1f14c861eb216494030719b402355480 (patch)
treed25448a402a20209e9855cd0b5f48855c7a498e1 /gcc
parentf9ba5949c966ee7267016544115addb761a63b62 (diff)
downloadgcc-2001a5cf1f14c861eb216494030719b402355480.zip
gcc-2001a5cf1f14c861eb216494030719b402355480.tar.gz
gcc-2001a5cf1f14c861eb216494030719b402355480.tar.bz2
ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
* config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New. (ns32k_struct_value_rtx): Likewise. * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to NS32K_STRUCT_VALUE_REGNUM. From-SVN: r76638
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/ns32k/ns32k.c13
-rw-r--r--gcc/config/ns32k/ns32k.h4
3 files changed, 21 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 60c03f1..753aaee 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
+ * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
+ (ns32k_struct_value_rtx): Likewise.
+ * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
+ NS32K_STRUCT_VALUE_REGNUM.
+
+2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
+
* config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
(TARGET_PROMOTE_PROTOTYPES): Likewise.
(TARGET_STRUCT_VALUE_RTX): Likewise.
diff --git a/gcc/config/ns32k/ns32k.c b/gcc/config/ns32k/ns32k.c
index e80724e..ff9f5a7 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 091b138..2a1dab0 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.