From cd7d9ca495768408221349309a0e5ea0f46c6b75 Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Fri, 3 Sep 2004 01:12:30 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/config/rs6000/rs6000.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 96eb1b86835..ab1327ba75e 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 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; -- 2.30.2