Commit 54ce9cc2 by Nathan Froyd Committed by Nathan Froyd

re PR target/35866 (Vector load/store from a packed struct does not work (without -mstrict-align))

	PR target/35866

	* config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
	vector modes.

From-SVN: r138316
parent efd41714
2008-07-30 Nathan Froyd <froydnj@codesourcery.com>
PR target/35866
* config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
vector modes.
2008-07-30 Rafael Avila de Espindola <espindola@google.com> 2008-07-30 Rafael Avila de Espindola <espindola@google.com>
* final.c (call_from_call_insn): New. * final.c (call_from_call_insn): New.
......
...@@ -644,12 +644,15 @@ extern enum rs6000_nop_insertion rs6000_sched_insert_nops; ...@@ -644,12 +644,15 @@ extern enum rs6000_nop_insertion rs6000_sched_insert_nops;
/* Define this macro to be the value 1 if unaligned accesses have a cost /* Define this macro to be the value 1 if unaligned accesses have a cost
many times greater than aligned accesses, for example if they are many times greater than aligned accesses, for example if they are
emulated in a trap handler. */ emulated in a trap handler. */
/* Altivec vector memory instructions simply ignore the low bits; SPE
vector memory instructions trap on unaligned accesses. */
#define SLOW_UNALIGNED_ACCESS(MODE, ALIGN) \ #define SLOW_UNALIGNED_ACCESS(MODE, ALIGN) \
(STRICT_ALIGNMENT \ (STRICT_ALIGNMENT \
|| (((MODE) == SFmode || (MODE) == DFmode || (MODE) == TFmode \ || (((MODE) == SFmode || (MODE) == DFmode || (MODE) == TFmode \
|| (MODE) == SDmode || (MODE) == DDmode || (MODE) == TDmode \ || (MODE) == SDmode || (MODE) == DDmode || (MODE) == TDmode \
|| (MODE) == DImode) \ || (MODE) == DImode) \
&& (ALIGN) < 32)) && (ALIGN) < 32) \
|| (VECTOR_MODE_P ((MODE)) && (ALIGN) < GET_MODE_BITSIZE ((MODE))))
/* 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