Commit 0c86e0dd by Chung-Lin Tang Committed by Chung-Lin Tang

arm.h (ARM_EXPAND_ALIGNMENT): Rename from DATA_ALIGNMENT and add COND parameter.

2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
	DATA_ALIGNMENT and add COND parameter. Update comments above.
	(DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
	(LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with
	!flag_conserve_stack.

From-SVN: r165390
parent 515fe073
2010-10-12 Chung-Lin Tang <cltang@codesourcery.com>
* config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
DATA_ALIGNMENT and add COND parameter. Update comments above.
(DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
(LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with
!flag_conserve_stack.
2010-10-12 H.J. Lu <hongjiu.lu@intel.com> 2010-10-12 H.J. Lu <hongjiu.lu@intel.com>
PR bootstrap/45958 PR bootstrap/45958
...@@ -617,15 +617,21 @@ extern int arm_arch_hwdiv; ...@@ -617,15 +617,21 @@ extern int arm_arch_hwdiv;
/* Align definitions of arrays, unions and structures so that /* Align definitions of arrays, unions and structures so that
initializations and copies can be made more efficient. This is not initializations and copies can be made more efficient. This is not
ABI-changing, so it only affects places where we can see the ABI-changing, so it only affects places where we can see the
definition. */ definition. Increasing the alignment tends to introduce padding,
#define DATA_ALIGNMENT(EXP, ALIGN) \ so don't do this when optimizing for size/conserving stack space. */
((((ALIGN) < BITS_PER_WORD) \ #define ARM_EXPAND_ALIGNMENT(COND, EXP, ALIGN) \
(((COND) && ((ALIGN) < BITS_PER_WORD) \
&& (TREE_CODE (EXP) == ARRAY_TYPE \ && (TREE_CODE (EXP) == ARRAY_TYPE \
|| TREE_CODE (EXP) == UNION_TYPE \ || TREE_CODE (EXP) == UNION_TYPE \
|| TREE_CODE (EXP) == RECORD_TYPE)) ? BITS_PER_WORD : (ALIGN)) || TREE_CODE (EXP) == RECORD_TYPE)) ? BITS_PER_WORD : (ALIGN))
/* Align global data. */
#define DATA_ALIGNMENT(EXP, ALIGN) \
ARM_EXPAND_ALIGNMENT(!optimize_size, EXP, ALIGN)
/* Similarly, make sure that objects on the stack are sensibly aligned. */ /* Similarly, make sure that objects on the stack are sensibly aligned. */
#define LOCAL_ALIGNMENT(EXP, ALIGN) DATA_ALIGNMENT(EXP, ALIGN) #define LOCAL_ALIGNMENT(EXP, ALIGN) \
ARM_EXPAND_ALIGNMENT(!flag_conserve_stack, EXP, ALIGN)
/* Setting STRUCTURE_SIZE_BOUNDARY to 32 produces more efficient code, but the /* Setting STRUCTURE_SIZE_BOUNDARY to 32 produces more efficient code, but the
value set in previous versions of this toolchain was 8, which produces more value set in previous versions of this toolchain was 8, which produces more
......
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