HImode with STRICT_ALIGNMENT.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87021
138bc75d-0d04-0410-961f-
82ee72b054a4
+2004-09-02 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (expand_block_move): Use SImode and
+ HImode with STRICT_ALIGNMENT.
+
2004-09-02 Mark Mitchell <mark@codesourcery.com>
* config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
move_bytes = (bytes > 8) ? 8 : bytes;
gen_func.movmemsi = gen_movmemsi_2reg;
}
- else if (bytes >= 4 && !STRICT_ALIGNMENT)
+ else if (bytes >= 4 && (align >= 32 || !STRICT_ALIGNMENT))
{ /* move 4 bytes */
move_bytes = 4;
mode = SImode;
gen_func.mov = gen_movsi;
}
- else if (bytes == 2 && !STRICT_ALIGNMENT)
+ else if (bytes == 2 && (align >= 16 || !STRICT_ALIGNMENT))
{ /* move 2 bytes */
move_bytes = 2;
mode = HImode;