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
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.
/* 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.
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);
/* 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.
/* Expand a library call to __builtin_saveregs. */
-rtx
+static rtx
i860_saveregs (void)
{
rtx fn = gen_rtx_SYMBOL_REF (Pmode, "__builtin_saveregs");
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
#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;
/* 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.
/* 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
#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)