Commit b851135c by Nathan Froyd Committed by Nathan Froyd

rs6000.h (DATA_ALIGNMENT): Check that we are dealing with actual SPE/paired…

rs6000.h (DATA_ALIGNMENT): Check that we are dealing with actual SPE/paired vector modes before using...

	* config/rs6000/rs6000.h (DATA_ALIGNMENT): Check that we are dealing
	with actual SPE/paired vector modes before using 64-bit alignment.
	Check that TYPE is a REAL_TYPE for TARGET_E500_DOUBLE.

From-SVN: r151626
parent 5ba863d7
2009-09-10 Nathan Froyd <froydnj@codesourcery.com>
* config/rs6000/rs6000.h (DATA_ALIGNMENT): Check that we are dealing
with actual SPE/paired vector modes before using 64-bit alignment.
Check that TYPE is a REAL_TYPE for TARGET_E500_DOUBLE.
2009-09-10 DJ Delorie <dj@redhat.com> 2009-09-10 DJ Delorie <dj@redhat.com>
* config/mep/mep.md (eh_epilogue): Defer until after epilogue is * config/mep/mep.md (eh_epilogue): Defer until after epilogue is
......
...@@ -743,14 +743,18 @@ extern unsigned rs6000_pointer_size; ...@@ -743,14 +743,18 @@ extern unsigned rs6000_pointer_size;
/* Make arrays of chars word-aligned for the same reasons. /* Make arrays of chars word-aligned for the same reasons.
Align vectors to 128 bits. Align SPE vectors and E500 v2 doubles to Align vectors to 128 bits. Align SPE vectors and E500 v2 doubles to
64 bits. */ 64 bits. */
#define DATA_ALIGNMENT(TYPE, ALIGN) \ #define DATA_ALIGNMENT(TYPE, ALIGN) \
(TREE_CODE (TYPE) == VECTOR_TYPE ? ((TARGET_SPE_ABI \ (TREE_CODE (TYPE) == VECTOR_TYPE \
|| TARGET_PAIRED_FLOAT) ? 64 : 128) \ ? (((TARGET_SPE && SPE_VECTOR_MODE (TYPE_MODE (TYPE))) \
: (TARGET_E500_DOUBLE \ || (TARGET_PAIRED_FLOAT && PAIRED_VECTOR_MODE (TYPE_MODE (TYPE)))) \
&& TYPE_MODE (TYPE) == DFmode) ? 64 \ ? 64 : 128) \
: TREE_CODE (TYPE) == ARRAY_TYPE \ : ((TARGET_E500_DOUBLE \
&& TYPE_MODE (TREE_TYPE (TYPE)) == QImode \ && TREE_CODE (TYPE) == REAL_TYPE \
&& (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN)) && TYPE_MODE (TYPE) == DFmode) \
? 64 \
: (TREE_CODE (TYPE) == ARRAY_TYPE \
&& TYPE_MODE (TREE_TYPE (TYPE)) == QImode \
&& (ALIGN) < BITS_PER_WORD) ? BITS_PER_WORD : (ALIGN)))
/* 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. */
......
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