From 46107b99846a6361085dd67295e015211137f2af Mon Sep 17 00:00:00 2001 From: Richard Earnshaw Date: Fri, 21 Aug 2009 16:13:37 +0000 Subject: [PATCH] arm.h (MACHMODE): New define. * arm.h (MACHMODE): New define. Include insn-modes.h if available. (CUMULATIVE_ARGS): Use MACHMODE for declaration of aapcs_vfp_mode. * arm.c (aapcs_vfp_is_call_or_return_candidate): Change base_mode to pointer to enum machine_mode. Update all callers as needed. From-SVN: r150990 --- gcc/ChangeLog | 9 ++++++++- gcc/config/arm/arm.c | 6 +++--- gcc/config/arm/arm.h | 17 +++++++++++------ 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 225e96e..0e9d86c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2009-08-21 Richard Earnshaw + + * arm.h (MACHMODE): New define. Include insn-modes.h if available. + (CUMULATIVE_ARGS): Use MACHMODE for declaration of aapcs_vfp_mode. + * arm.c (aapcs_vfp_is_call_or_return_candidate): Change base_mode + to pointer to enum machine_mode. Update all callers as needed. + 2009-08-21 Uros Bizjak * config/alpha/alpha.md (exception_receiver): Emit alternative @@ -436,7 +443,7 @@ * config/mmix/mmix.c (mmix_promote_function_mode): Likewise. * config/pa/pa.c (pa_promote_function_mode): Likewise. -2009-08-11 Andrew Haley +2009-08-12 Andrew Haley * config/arm/arm.c (arm_init_libfuncs): Add __sync_synchronize. diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index e7e6bee..3c7e67e 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -3696,7 +3696,7 @@ aapcs_vfp_sub_candidate (const_tree type, enum machine_mode *modep) static bool aapcs_vfp_is_call_or_return_candidate (enum machine_mode mode, const_tree type, - int *base_mode, + enum machine_mode *base_mode, int *count) { if (GET_MODE_CLASS (mode) == MODE_FLOAT @@ -3733,7 +3733,7 @@ aapcs_vfp_is_return_candidate (enum arm_pcs pcs_variant, enum machine_mode mode, const_tree type) { int count ATTRIBUTE_UNUSED; - int ag_mode ATTRIBUTE_UNUSED; + enum machine_mode ag_mode ATTRIBUTE_UNUSED; if (!(pcs_variant == ARM_PCS_AAPCS_VFP || (pcs_variant == ARM_PCS_AAPCS_LOCAL @@ -3818,7 +3818,7 @@ aapcs_vfp_allocate_return_reg (enum arm_pcs pcs_variant ATTRIBUTE_UNUSED, if (mode == BLKmode || (mode == TImode && !TARGET_NEON)) { int count; - int ag_mode; + enum machine_mode ag_mode; int i; rtx par; int shift; diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index 59d35dd..c84d58b 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -26,6 +26,16 @@ #ifndef GCC_ARM_H #define GCC_ARM_H +/* We can't use enum machine_mode inside a generator file because it + hasn't been created yet; we shouldn't be using any code that + needs the real definition though, so this ought to be safe. */ +#ifdef GENERATOR_FILE +#define MACHMODE int +#else +#include "insn-modes.h" +#define MACHMODE enum machine_mode +#endif + #include "config/vxworks-dummy.h" /* The architecture define. */ @@ -1646,8 +1656,6 @@ enum arm_pcs ARM_PCS_UNKNOWN }; -/* We can't define this inside a generator file because it needs enum - machine_mode. */ /* A C type for declaring a variable that is used as the first argument of `FUNCTION_ARG' and other related values. */ typedef struct @@ -1679,12 +1687,9 @@ typedef struct unsigned aapcs_vfp_regs_free; unsigned aapcs_vfp_reg_alloc; int aapcs_vfp_rcount; - /* Can't include insn-modes.h because this header is needed before we - generate it. */ - int /* enum machine_mode */ aapcs_vfp_rmode; + MACHMODE aapcs_vfp_rmode; } CUMULATIVE_ARGS; - /* Define where to put the arguments to a function. Value is zero to push the argument on the stack, or a hard register in which to store the argument. -- 2.7.4