diff options
author | David Edelsohn <edelsohn@gnu.org> | 2004-09-03 01:12:30 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2004-09-02 21:12:30 -0400 |
commit | cd7d9ca495768408221349309a0e5ea0f46c6b75 (patch) | |
tree | 133add5e2b46b695acf4c7786f543b47363997ff /gcc/config | |
parent | 40a1c5cb5e9ac61a3152e84815b60069d80e31b1 (diff) | |
download | gcc-cd7d9ca495768408221349309a0e5ea0f46c6b75.zip gcc-cd7d9ca495768408221349309a0e5ea0f46c6b75.tar.gz gcc-cd7d9ca495768408221349309a0e5ea0f46c6b75.tar.bz2 |
rs6000.c (expand_block_move): Use SImode and HImode with STRICT_ALIGNMENT.
* config/rs6000/rs6000.c (expand_block_move): Use SImode and
HImode with STRICT_ALIGNMENT.
From-SVN: r87021
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 335dbe3..1881fc1 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; |