summaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>2009-08-21 16:13:37 +0000
committerrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>2009-08-21 16:13:37 +0000
commit8ac5341f623bdc1a663013da10c14b29a24bafb3 (patch)
tree856a008be48f86e03b2147cd474c8dbaa063e916 /gcc/config
parent1d84f30a09bc526c646dbbbef88787b991feca8f (diff)
downloadgcc-8ac5341f623bdc1a663013da10c14b29a24bafb3.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150990 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/arm/arm.c6
-rw-r--r--gcc/config/arm/arm.h17
2 files changed, 14 insertions, 9 deletions
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index e7e6beef09b..3c7e67ed94c 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 59d35dd6833..c84d58bbcb0 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.