Commit 392cc400 by Alan Modra Committed by Alan Modra

re PR target/25299 (Another ABI incompatibility with Apple's gcc)

	PR target/25299
	* config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase
	alignment to doubleword if the first field is a double array.
	* config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.

From-SVN: r108393
parent e78ac651
2005-12-12 Alan Modra <amodra@bigpond.net.au>
PR target/25299
* config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase
alignment to doubleword if the first field is a double array.
* config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.
2005-12-11 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-structalias.c (process_constraint): Remove code to
......
......@@ -236,6 +236,12 @@ extern int dot_symbols;
? rs6000_special_round_type_align (STRUCT, COMPUTED, SPECIFIED) \
: MAX ((COMPUTED), (SPECIFIED)))
/* Use the default for compiling target libs. */
#ifdef IN_TARGET_LIBS
#undef TARGET_ALIGN_NATURAL
#define TARGET_ALIGN_NATURAL 1
#endif
/* Indicate that jump tables go in the text section. */
#undef JUMP_TABLES_IN_TEXT_SECTION
#define JUMP_TABLES_IN_TEXT_SECTION TARGET_64BIT
......
......@@ -2513,7 +2513,10 @@ rs6000_special_round_type_align (tree type, int computed, int specified)
while (field != NULL && TREE_CODE (field) != FIELD_DECL)
field = TREE_CHAIN (field);
if (field == NULL || field == type || DECL_MODE (field) != DFmode)
if (field == NULL || field == type
|| TYPE_MODE (TREE_CODE (TREE_TYPE (field)) == ARRAY_TYPE
? get_inner_array_type (field)
: TREE_TYPE (field)) != DFmode)
return MAX (computed, specified);
return MAX (MAX (computed, specified), 64);
......
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