From 72f1246cd8fc451bed8e28aaf92fb0c643d39453 Mon Sep 17 00:00:00 2001 From: pbrook Date: Tue, 27 Apr 2004 14:20:10 +0000 Subject: [PATCH] * config/arm/arm.c (arm_promote_prototypes): New function. (TARGET_PROMOTE_PROTOTYPES): Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@81223 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/config/arm/arm.c | 13 ++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) 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 + * config/arm/arm.c (arm_promote_prototypes): New function. + (TARGET_PROMOTE_PROTOTYPES): Use it. + +2004-04-27 Paul Brook + * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs. 2004-04-26 Bernard Giroud 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; +} + -- 2.7.4