set_mem_addr_space (temp, as);
if (TREE_THIS_VOLATILE (exp))
MEM_VOLATILE_P (temp) = 1;
- if (modifier != EXPAND_WRITE
- && modifier != EXPAND_MEMORY
- && !inner_reference_p
+ if (modifier == EXPAND_WRITE || modifier == EXPAND_MEMORY)
+ return temp;
+ if (!inner_reference_p
&& mode != BLKmode
&& align < GET_MODE_ALIGNMENT (mode))
temp = expand_misaligned_mem_ref (temp, mode, unsignedp, align,
modifier == EXPAND_STACK_PARM
? NULL_RTX : target, alt_rtl);
- if (reverse
- && modifier != EXPAND_MEMORY
- && modifier != EXPAND_WRITE)
+ if (reverse)
temp = flip_storage_order (mode, temp);
return temp;
}