aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Earnshaw <rearnsha@arm.com>2006-05-10 21:54:06 +0000
committerRichard Earnshaw <rearnsha@gcc.gnu.org>2006-05-10 21:54:06 +0000
commit29e339b95aa44fa710257c2c79a64d31eb4b31d1 (patch)
tree8c14736a14e0e9df374f231df1c96dd5b0281cf9
parent5ac4f3bb75a7e96a6180eabe1fd274a7318e2e08 (diff)
downloadgcc-29e339b95aa44fa710257c2c79a64d31eb4b31d1.zip
gcc-29e339b95aa44fa710257c2c79a64d31eb4b31d1.tar.gz
gcc-29e339b95aa44fa710257c2c79a64d31eb4b31d1.tar.bz2
r113709@merlin: rearnsha | 2006-05-10 22:53:26 +0100
r113709@merlin: rearnsha | 2006-05-10 22:53:26 +0100 * arm.c (arm_struct_value_rtx): Delete. (TARGET_STRUCT_VALUE_RTX): Use the default definition. (arm_init_cumulative_args): Always initialize nregs to zero. From-SVN: r113683
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/arm.c25
2 files changed, 7 insertions, 24 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1126c49..35226d1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2006-05-10 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.c (arm_struct_value_rtx): Delete.
+ (TARGET_STRUCT_VALUE_RTX): Use the default definition.
+ (arm_init_cumulative_args): Always initialize nregs to zero.
+
2006-05-10 Richard Guenther <rguenther@suse.de>
PR tree-optimization/27532
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 9438b7c..66d091a 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -163,7 +163,6 @@ static void aof_file_start (void);
static void aof_file_end (void);
static void aof_asm_init_sections (void);
#endif
-static rtx arm_struct_value_rtx (tree, int);
static void arm_setup_incoming_varargs (CUMULATIVE_ARGS *, enum machine_mode,
tree, int *, int);
static bool arm_pass_by_reference (CUMULATIVE_ARGS *,
@@ -300,9 +299,6 @@ static bool arm_tls_symbol_p (rtx x);
#undef TARGET_ARG_PARTIAL_BYTES
#define TARGET_ARG_PARTIAL_BYTES arm_arg_partial_bytes
-#undef TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX arm_struct_value_rtx
-
#undef TARGET_SETUP_INCOMING_VARARGS
#define TARGET_SETUP_INCOMING_VARARGS arm_setup_incoming_varargs
@@ -2669,7 +2665,7 @@ arm_init_cumulative_args (CUMULATIVE_ARGS *pcum, tree fntype,
tree fndecl ATTRIBUTE_UNUSED)
{
/* On the ARM, the offset starts at 0. */
- pcum->nregs = ((fntype && aggregate_value_p (TREE_TYPE (fntype), fntype)) ? 1 : 0);
+ pcum->nregs = 0;
pcum->iwmmxt_nregs = 0;
pcum->can_split = true;
@@ -14835,25 +14831,6 @@ arm_output_load_gr (rtx *operands)
return "";
}
-static rtx
-arm_struct_value_rtx (tree fntype ATTRIBUTE_UNUSED,
- int incoming ATTRIBUTE_UNUSED)
-{
-#if 0
- /* FIXME: The ARM backend has special code to handle structure
- returns, and will reserve its own hidden first argument. So
- if this macro is enabled a *second* hidden argument will be
- reserved, which will break binary compatibility with old
- toolchains and also thunk handling. One day this should be
- fixed. */
- return 0;
-#else
- /* Register in which address to store a structure value
- is passed to a function. */
- return gen_rtx_REG (Pmode, ARG_REGISTER (1));
-#endif
-}
-
/* Worker function for TARGET_SETUP_INCOMING_VARARGS.
On the ARM, PRETEND_SIZE is set in order to have the prologue push the last