summaryrefslogtreecommitdiff
path: root/gcc/config/pdp11
diff options
context:
space:
mode:
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-26 18:17:58 +0000
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-26 18:17:58 +0000
commit4faa8f4d45fafdbb65412f6a8550f6caf61a040d (patch)
tree69651798ae472045b7e42f816c119273147adf8a /gcc/config/pdp11
parentf745fe9b30ea4cff23fb12dee4695d23637fdb54 (diff)
downloadgcc-4faa8f4d45fafdbb65412f6a8550f6caf61a040d.tar.gz
* config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
(TARGET_RETURN_IN_MEMORY): Likewise. * config/pdp11/pdp11.h (STRUCT_VALUE): Remove. (RETURN_IN_MEMORY): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76654 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/pdp11')
-rw-r--r--gcc/config/pdp11/pdp11.c21
-rw-r--r--gcc/config/pdp11/pdp11.h21
2 files changed, 21 insertions, 21 deletions
diff --git a/gcc/config/pdp11/pdp11.c b/gcc/config/pdp11/pdp11.c
index 049b541a4ac..117510955b4 100644
--- a/gcc/config/pdp11/pdp11.c
+++ b/gcc/config/pdp11/pdp11.c
@@ -1,5 +1,5 @@
/* Subroutines for gcc2 for pdp11.
- Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001
+ Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2004
Free Software Foundation, Inc.
Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at).
@@ -60,6 +60,7 @@ static bool pdp11_assemble_integer (rtx, unsigned int, int);
static void pdp11_output_function_prologue (FILE *, HOST_WIDE_INT);
static void pdp11_output_function_epilogue (FILE *, HOST_WIDE_INT);
static bool pdp11_rtx_costs (rtx, int, int, int *);
+static bool pdp11_return_in_memory (tree, tree);
/* Initialize the GCC target structure. */
#undef TARGET_ASM_BYTE_OP
@@ -84,6 +85,11 @@ static bool pdp11_rtx_costs (rtx, int, int, int *);
#undef TARGET_RTX_COSTS
#define TARGET_RTX_COSTS pdp11_rtx_costs
+#undef TARGET_STRUCT_VALUE_RTX
+#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
+#undef TARGET_RETURN_IN_MEMORY
+#define TARGET_RETURN_IN_MEMORY pdp11_return_in_memory
+
struct gcc_target targetm = TARGET_INITIALIZER;
/* Nonzero if OP is a valid second operand for an arithmetic insn. */
@@ -1693,3 +1699,16 @@ output_addr_const_pdp11 (FILE *file, rtx x)
output_operand_lossage ("invalid expression as operand");
}
}
+
+static bool
+pdp11_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED)
+{
+ /* Should probably return DImode and DFmode in memory, lest
+ we fill up all regs!
+
+ have to, else we crash - exception: maybe return result in
+ ac0 if DFmode and FPU present - compatibility problem with
+ libraries for non-floating point.... */
+ return (TYPE_MODE (type) == DImode
+ || (TYPE_MODE (type) == DFmode && ! TARGET_AC0));
+}
diff --git a/gcc/config/pdp11/pdp11.h b/gcc/config/pdp11/pdp11.h
index 6e84cc4b9f4..f84e99f847e 100644
--- a/gcc/config/pdp11/pdp11.h
+++ b/gcc/config/pdp11/pdp11.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler, for the pdp-11
- Copyright (C) 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
+ Copyright (C) 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2004
Free Software Foundation, Inc.
Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at).
@@ -332,13 +332,6 @@ extern int target_flags;
/* Register in which static-chain is passed to a function. */
/* ??? - i don't want to give up a reg for this! */
#define STATIC_CHAIN_REGNUM 4
-
-/* Register in which address to store a structure value
- is passed to a function.
- let's make it an invisible first argument!!! */
-
-#define STRUCT_VALUE 0
-
/* Define the classes of registers for register constraints in the
machine description. Also define ranges of constants.
@@ -562,18 +555,6 @@ maybe ac0 ? - as option someday! */
#define FUNCTION_VALUE_REGNO_P(N) (((N) == 0) || (TARGET_AC0 && (N) == 8))
-/* should probably return DImode and DFmode in memory,lest
- we fill up all regs!
-
- have to, else we crash - exception: maybe return result in
- ac0 if DFmode and FPU present - compatibility problem with
- libraries for non-floating point ...
-*/
-
-#define RETURN_IN_MEMORY(TYPE) \
- (TYPE_MODE(TYPE) == DImode || (TYPE_MODE(TYPE) == DFmode && ! TARGET_AC0))
-
-
/* 1 if N is a possible register number for function argument passing.
- not used on pdp */