expr.c (expand_expr, [...]): When seeing if should use bitfield operations...

* expr.c (expand_expr, case COMPONENT_REF): When seeing if should use
	bitfield operations, use STRICT_ALIGNMENT, not SLOW_UNALIGNED_ACCESS
	if EXPAND_CONST_ADDRESS or EXPAND_INITIALIZER.

From-SVN: r68968
This commit is contained in:
Richard Kenner 2003-07-05 11:51:54 +00:00 committed by Richard Kenner
parent 0641776cef
commit a8f3bf5271
2 changed files with 10 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2003-07-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* expr.c (expand_expr, case COMPONENT_REF): When seeing if should use
bitfield operations, use STRICT_ALIGNMENT, not SLOW_UNALIGNED_ACCESS
if EXPAND_CONST_ADDRESS or EXPAND_INITIALIZER.
2003-07-05 Andreas Jaeger <aj@suse.de>
* genattrtab.c (write_attr_get): Revert part of last patch to

View File

@ -7541,7 +7541,10 @@ expand_expr (tree exp, rtx target, enum machine_mode tmode, enum expand_modifier
|| (mode1 != BLKmode
&& (((TYPE_ALIGN (TREE_TYPE (tem)) < GET_MODE_ALIGNMENT (mode)
|| (bitpos % GET_MODE_ALIGNMENT (mode) != 0))
&& SLOW_UNALIGNED_ACCESS (mode1, MEM_ALIGN (op0)))
&& ((modifier == EXPAND_CONST_ADDRESS
|| modifier == EXPAND_INITIALIZER)
? STRICT_ALIGNMENT
: SLOW_UNALIGNED_ACCESS (mode1, MEM_ALIGN (op0))))
|| (bitpos % BITS_PER_UNIT != 0)))
/* If the type and the field are a constant size and the
size of the type isn't the same size as the bitfield,