diff options
author | Paul Brook <paul@codesourcery.com> | 2004-04-27 14:20:10 +0000 |
---|---|---|
committer | Paul Brook <pbrook@gcc.gnu.org> | 2004-04-27 14:20:10 +0000 |
commit | 70301b45ac8195433e985369c8b8220bdc51dcf8 (patch) | |
tree | d5ae0c1f309adf0663e8e39a639713eab76c1edd /gcc | |
parent | 632933d5d0f00cdd397c28daa7cb2486f4d81a58 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 13 |
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; +} + |