aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@gnu.org>2004-09-03 01:12:30 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2004-09-02 21:12:30 -0400
commitcd7d9ca495768408221349309a0e5ea0f46c6b75 (patch)
tree133add5e2b46b695acf4c7786f543b47363997ff /gcc/config
parent40a1c5cb5e9ac61a3152e84815b60069d80e31b1 (diff)
downloadgcc-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.c4
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;