From: dje Date: Fri, 3 Sep 2004 01:12:30 +0000 (+0000) Subject: * config/rs6000/rs6000.c (expand_block_move): Use SImode and X-Git-Tag: upstream/4.9.2~68179 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=94ddd54cc3c6af8517588d040ddf0751295a4956;p=platform%2Fupstream%2Flinaro-gcc.git * 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 96eb1b8..ab1327b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-09-02 David Edelsohn + + * config/rs6000/rs6000.c (expand_block_move): Use SImode and + HImode with STRICT_ALIGNMENT. + 2004-09-02 Mark Mitchell * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define. 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;