aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2004-01-25 17:41:01 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2004-01-25 17:41:01 +0000
commit30f58b01a438ce9b02693331ee76995352c28db8 (patch)
tree3420a1c2297e145f74c4c90cd6c50baf4792740d
parent341ec19196f69851b0469a2a2ef480d287d081f9 (diff)
downloadgcc-30f58b01a438ce9b02693331ee76995352c28db8.zip
gcc-30f58b01a438ce9b02693331ee76995352c28db8.tar.gz
gcc-30f58b01a438ce9b02693331ee76995352c28db8.tar.bz2
i860-protos.h: Remove the prototype for i860_saveregs.
* config/i860/i860-protos.h: Remove the prototype for i860_saveregs. * config/i860/i860.c (i860_saveregs): Make it static. (i860_struct_value_rtx): New. (TARGET_STRUCT_VALUE_RTX): Likewise. (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to I860_STRUCT_VALUE_REGNUM. (EXPAND_BUILTIN_SAVEREGS): Remove. From-SVN: r76572
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/config/i860/i860-protos.h3
-rw-r--r--gcc/config/i860/i860.c17
-rw-r--r--gcc/config/i860/i860.h8
4 files changed, 30 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 459e4d0..9372889 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,17 @@
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
+ * config/i860/i860-protos.h: Remove the prototype for
+ i860_saveregs.
+ * config/i860/i860.c (i860_saveregs): Make it static.
+ (i860_struct_value_rtx): New.
+ (TARGET_STRUCT_VALUE_RTX): Likewise.
+ (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
+ * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
+ I860_STRUCT_VALUE_REGNUM.
+ (EXPAND_BUILTIN_SAVEREGS): Remove.
+
+2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
+
* config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
(TARGET_RETURN_IN_MEMORY): Likewise.
(m68hc11_struct_value_rtx): Likewise.
diff --git a/gcc/config/i860/i860-protos.h b/gcc/config/i860/i860-protos.h
index 74568af..b155b86 100644
--- a/gcc/config/i860/i860-protos.h
+++ b/gcc/config/i860/i860-protos.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler, for Intel 860.
- Copyright (C) 2000, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2003, 2004 Free Software Foundation, Inc.
Hacked substantially by Ron Guilmette (rfg@monkeys.com) to cater to
the whims of the System V Release 4 assembler.
@@ -44,7 +44,6 @@ extern int load_operand (rtx, enum machine_mode);
extern int small_int (rtx, enum machine_mode);
extern int logic_int (rtx, enum machine_mode);
extern int call_insn_operand (rtx, enum machine_mode);
-extern rtx i860_saveregs (void);
#ifdef TREE_CODE
extern void i860_va_start (tree, rtx);
extern rtx i860_va_arg (tree, tree);
diff --git a/gcc/config/i860/i860.c b/gcc/config/i860/i860.c
index 9946f26..178cab0 100644
--- a/gcc/config/i860/i860.c
+++ b/gcc/config/i860/i860.c
@@ -1,5 +1,5 @@
/* Subroutines for insn-output.c for Intel i860
- Copyright (C) 1989, 1991, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+ Copyright (C) 1989, 1991, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
Derived from sparc.c.
@@ -1775,7 +1775,7 @@ i860_output_function_epilogue (FILE *asm_file, HOST_WIDE_INT local_bytes)
/* Expand a library call to __builtin_saveregs. */
-rtx
+static rtx
i860_saveregs (void)
{
rtx fn = gen_rtx_SYMBOL_REF (Pmode, "__builtin_saveregs");
@@ -2101,6 +2101,13 @@ i860_init_libfuncs (void)
set_optab_libfunc (umod_optab, SImode, "*.urem");
}
+static rtx
+i860_struct_value_rtx (tree fntype ATTRIBUTE_UNUSED,
+ int incoming ATTRIBUTE_UNUSED)
+{
+ return gen_rtx_REG (Pmode, I860_STRUCT_VALUE_REGNUM);
+}
+
/* Initialize the GCC target structure. */
#undef TARGET_RTX_COSTS
#define TARGET_RTX_COSTS i860_rtx_costs
@@ -2120,4 +2127,10 @@ i860_init_libfuncs (void)
#undef TARGET_BUILD_BUILTIN_VA_LIST
#define TARGET_BUILD_BUILTIN_VA_LIST i860_build_builtin_va_list
+#undef TARGET_STRUCT_VALUE_RTX
+#define TARGET_STRUCT_VALUE_RTX i860_struct_value_rtx
+
+#undef TARGET_EXPAND_BUILTIN_SAVEREGS
+#define TARGET_EXPAND_BUILTIN_SAVEREGS i860_saveregs
+
struct gcc_target targetm = TARGET_INITIALIZER;
diff --git a/gcc/config/i860/i860.h b/gcc/config/i860/i860.h
index c600f02..0a518ab 100644
--- a/gcc/config/i860/i860.h
+++ b/gcc/config/i860/i860.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler, for Intel 860.
Copyright (C) 1989, 1991, 1993, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003 Free Software Foundation, Inc.
+ 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
Hacked substantially by Ron Guilmette (rfg@monkeys.com) to cater to
the whims of the System V Release 4 assembler.
@@ -240,7 +240,7 @@ extern int target_flags;
/* Register in which address to store a structure value
is passed to a function. */
-#define STRUCT_VALUE_REGNUM 16
+#define I860_STRUCT_VALUE_REGNUM 16
/* Register to use when a source of a floating-point zero is needed. */
#define F0_REGNUM 32
@@ -567,10 +567,6 @@ struct cumulative_args { int ints, floats; };
#define EXIT_IGNORE_STACK 1
-/* Generate necessary RTL for __builtin_saveregs(). */
-#define EXPAND_BUILTIN_SAVEREGS() \
- i860_saveregs()
-
/* Implement `va_start' for varargs and stdarg. */
#define EXPAND_BUILTIN_VA_START(valist, nextarg) \
i860_va_start (valist, nextarg)