From 91f7219855644a82a94e6bf035db1b9adc3bb65b Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Wed, 31 Aug 2005 14:28:38 +0000 Subject: [PATCH] re PR target/23539 (C & C++ compiler generating misaligned references regardless of compiler flags) PR target/23539 Backport from mainline: 2005-08-27 David Edelsohn * config/rs6000/rs6000.c (expand_block_move): Use HImode when bytes >= 2 not bytes == 2. From-SVN: r103675 --- gcc/ChangeLog | 9 +++++++++ gcc/config/rs6000/rs6000.c | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1420fbb53f52..a46e80e1a07a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2005-08-31 David Edelsohn + + PR target/23539 + Backport from mainline: + + 2005-08-27 David Edelsohn + * config/rs6000/rs6000.c (expand_block_move): Use HImode when + bytes >= 2 not bytes == 2. + 2005-08-21 Jakub Jelinek * simplify-rtx.c (simplify_immed_subreg) : Only clear diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 1ffd4da16796..c914ac116ea2 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -7856,7 +7856,7 @@ expand_block_move (rtx operands[]) mode = SImode; gen_func.mov = gen_movsi; } - else if (bytes == 2 && (align >= 2 || ! STRICT_ALIGNMENT)) + else if (bytes >= 2 && (align >= 2 || ! STRICT_ALIGNMENT)) { /* move 2 bytes */ move_bytes = 2; mode = HImode; -- 2.47.2