diff options
author | dje <dje@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-03 01:12:30 +0000 |
---|---|---|
committer | dje <dje@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-03 01:12:30 +0000 |
commit | 94ddd54cc3c6af8517588d040ddf0751295a4956 (patch) | |
tree | 133add5e2b46b695acf4c7786f543b47363997ff /gcc/config | |
parent | 7dab6ba6d5accc0a926df56d15fedc92b0dad48f (diff) | |
download | gcc-94ddd54cc3c6af8517588d040ddf0751295a4956.tar.gz |
* config/rs6000/rs6000.c (expand_block_move): Use SImode and
HImode with STRICT_ALIGNMENT.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87021 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 335dbe3d16e..1881fc198c7 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -8510,13 +8510,13 @@ expand_block_move (rtx operands[]) 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; |