From 70301b45ac8195433e985369c8b8220bdc51dcf8 Mon Sep 17 00:00:00 2001 From: Paul Brook Date: Tue, 27 Apr 2004 14:20:10 +0000 Subject: [PATCH] arm.c (arm_promote_prototypes): New function. * config/arm/arm.c (arm_promote_prototypes): New function. (TARGET_PROMOTE_PROTOTYPES): Use it. From-SVN: r81223 --- 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 7bbe11a8f6e..ddc303c9b58 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +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. diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 80b1f9edb78..cde2b27fb1c 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.30.2