Commit b6685939 by Paul Brook Committed by Paul Brook

arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.

	* config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
	* config/arm/arm.h (TARGET_AAPCS_BASED): Define.
	(TARGET_DOUBLEWORD_ALIGN): Use it.
	(WCHAR_TYPE): Define.
	(WCHAR_SIZE_TYPE): Define.
	(SIZE_TYPE): Define.

From-SVN: r81665
parent 10f4ab75
2004-05-10 Paul Brook <paul@codesourcery.com>
* config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
* config/arm/arm.h (TARGET_AAPCS_BASED): Define.
(TARGET_DOUBLEWORD_ALIGN): Use it.
(WCHAR_TYPE): Define.
(WCHAR_SIZE_TYPE): Define.
(SIZE_TYPE): Define.
2004-05-10 Alan Modra <amodra@bigpond.net.au> 2004-05-10 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4 * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
......
...@@ -14550,6 +14550,6 @@ arm_no_early_mul_dep (rtx producer, rtx consumer) ...@@ -14550,6 +14550,6 @@ arm_no_early_mul_dep (rtx producer, rtx consumer)
static bool static bool
arm_promote_prototypes (tree t ATTRIBUTE_UNUSED) arm_promote_prototypes (tree t ATTRIBUTE_UNUSED)
{ {
return arm_abi == ARM_ABI_APCS || arm_abi == ARM_ABI_ATPCS; return !TARGET_AAPCS_BASED;
} }
...@@ -307,6 +307,8 @@ extern GTY(()) rtx aof_pic_label; ...@@ -307,6 +307,8 @@ extern GTY(()) rtx aof_pic_label;
: (target_flags & THUMB_FLAG_BACKTRACE)) : (target_flags & THUMB_FLAG_BACKTRACE))
#define TARGET_CIRRUS_FIX_INVALID_INSNS (target_flags & CIRRUS_FIX_INVALID_INSNS) #define TARGET_CIRRUS_FIX_INVALID_INSNS (target_flags & CIRRUS_FIX_INVALID_INSNS)
#define TARGET_LDRD (arm_arch5e && ARM_DOUBLEWORD_ALIGN) #define TARGET_LDRD (arm_arch5e && ARM_DOUBLEWORD_ALIGN)
#define TARGET_AAPCS_BASED \
(arm_abi != ARM_ABI_APCS && arm_abi != ARM_ABI_ATPCS)
/* SUBTARGET_SWITCHES is used to add flags on a per-config basis. */ /* SUBTARGET_SWITCHES is used to add flags on a per-config basis. */
#ifndef SUBTARGET_SWITCHES #ifndef SUBTARGET_SWITCHES
...@@ -655,8 +657,8 @@ extern int arm_is_6_or_7; ...@@ -655,8 +657,8 @@ extern int arm_is_6_or_7;
#define UNITS_PER_WORD 4 #define UNITS_PER_WORD 4
/* True if natural alignment is used for doubleword types. */ /* True if natural alignment is used for doubleword types. */
#define ARM_DOUBLEWORD_ALIGN \ #define ARM_DOUBLEWORD_ALIGN TARGET_AAPCS_BASED
(arm_abi == ARM_ABI_AAPCS || arm_abi == ARM_ABI_IWMMXT)
#define DOUBLEWORD_ALIGNMENT 64 #define DOUBLEWORD_ALIGNMENT 64
#define PARM_BOUNDARY 32 #define PARM_BOUNDARY 32
...@@ -716,6 +718,17 @@ extern const char * structure_size_string; ...@@ -716,6 +718,17 @@ extern const char * structure_size_string;
/* Nonzero if move instructions will actually fail to work /* Nonzero if move instructions will actually fail to work
when given unaligned data. */ when given unaligned data. */
#define STRICT_ALIGNMENT 1 #define STRICT_ALIGNMENT 1
/* wchar_t is unsigned under the AAPCS. */
#ifndef WCHAR_TYPE
#define WCHAR_TYPE (TARGET_AAPCS_BASED ? "unsigned int" : "int")
#define WCHAR_TYPE_SIZE BITS_PER_WORD
#endif
#ifndef SIZE_TYPE
#define SIZE_TYPE (TARGET_AAPCS_BASED ? "unsigned int" : "long unsigned int")
#endif
/* Standard register usage. */ /* Standard register usage. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment