aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2004-04-27 14:20:10 +0000
committerPaul Brook <pbrook@gcc.gnu.org>2004-04-27 14:20:10 +0000
commit70301b45ac8195433e985369c8b8220bdc51dcf8 (patch)
treed5ae0c1f309adf0663e8e39a639713eab76c1edd /gcc
parent632933d5d0f00cdd397c28daa7cb2486f4d81a58 (diff)
downloadgcc-70301b45ac8195433e985369c8b8220bdc51dcf8.zip
gcc-70301b45ac8195433e985369c8b8220bdc51dcf8.tar.gz
gcc-70301b45ac8195433e985369c8b8220bdc51dcf8.tar.bz2
arm.c (arm_promote_prototypes): New function.
* config/arm/arm.c (arm_promote_prototypes): New function. (TARGET_PROMOTE_PROTOTYPES): Use it. From-SVN: r81223
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/arm.c13
2 files changed, 17 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7bbe11a..ddc303c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2004-04-27 Paul Brook <paul@codesourcery.com>
+ * config/arm/arm.c (arm_promote_prototypes): New function.
+ (TARGET_PROMOTE_PROTOTYPES): Use it.
+
+2004-04-27 Paul Brook <paul@codesourcery.com>
+
* config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
2004-04-26 Bernard Giroud <bgiroud@free.fr>
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 80b1f9e..cde2b27 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -158,6 +158,7 @@ static void aof_file_end (void);
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_promote_prototypes (tree);
/* Initialize the GCC target structure. */
@@ -247,7 +248,7 @@ static void arm_setup_incoming_varargs (CUMULATIVE_ARGS *, enum machine_mode,
#undef TARGET_PROMOTE_FUNCTION_RETURN
#define TARGET_PROMOTE_FUNCTION_RETURN hook_bool_tree_true
#undef TARGET_PROMOTE_PROTOTYPES
-#define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_false
+#define TARGET_PROMOTE_PROTOTYPES arm_promote_prototypes
#undef TARGET_STRUCT_VALUE_RTX
#define TARGET_STRUCT_VALUE_RTX arm_struct_value_rtx
@@ -14439,3 +14440,13 @@ arm_no_early_mul_dep (rtx producer, rtx consumer)
&& !reg_overlap_mentioned_p (value, XEXP (op, 0)));
}
+
+/* We can't rely on the caller doing the proper promotion when
+ using APCS or ATPCS. */
+
+static bool
+arm_promote_prototypes (tree t ATTRIBUTE_UNUSED)
+{
+ return arm_abi == ARM_ABI_APCS || arm_abi == ARM_ABI_ATPCS;
+}
+