summaryrefslogtreecommitdiff
path: root/gcc/config/i860
diff options
context:
space:
mode:
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-25 17:41:01 +0000
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-25 17:41:01 +0000
commit3dbe4d04f84a2c349a2a18efc4793589cfaa764f (patch)
tree3420a1c2297e145f74c4c90cd6c50baf4792740d /gcc/config/i860
parent1e63778bffcbe6fc26883ee35c19b4e774e6f947 (diff)
downloadgcc-3dbe4d04f84a2c349a2a18efc4793589cfaa764f.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76572 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i860')
-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
3 files changed, 18 insertions, 10 deletions
diff --git a/gcc/config/i860/i860-protos.h b/gcc/config/i860/i860-protos.h
index 74568af66b5..b155b86130d 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 9946f261c7c..178cab0ad0c 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 c600f0276ec..0a518abd402 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)