Commit ec53fc93 by David Edelsohn Committed by David Edelsohn

re PR target/23539 (C & C++ compiler generating misaligned references regardless of compiler flags)

        PR target/23539
        * config/rs6000/rs6000.c (expand_block_clear): Use HImode when
        bytes >= 2 not bytes == 2.
        (expand_block_move): Same.

From-SVN: r103564
parent f013cadc
2005-08-27 David Edelsohn <edelsohn@gnu.org>
PR target/23539
* config/rs6000/rs6000.c (expand_block_clear): Use HImode when
bytes >= 2 not bytes == 2.
(expand_block_move): Same.
2005-08-27 Richard Guenther <rguenther@suse.de> 2005-08-27 Richard Guenther <rguenther@suse.de>
PR target/23575 PR target/23575
......
...@@ -9133,7 +9133,7 @@ expand_block_clear (rtx operands[]) ...@@ -9133,7 +9133,7 @@ expand_block_clear (rtx operands[])
clear_bytes = 4; clear_bytes = 4;
mode = SImode; mode = SImode;
} }
else if (bytes == 2 && (align >= 16 || !STRICT_ALIGNMENT)) else if (bytes >= 2 && (align >= 16 || !STRICT_ALIGNMENT))
{ /* move 2 bytes */ { /* move 2 bytes */
clear_bytes = 2; clear_bytes = 2;
mode = HImode; mode = HImode;
...@@ -9269,7 +9269,7 @@ expand_block_move (rtx operands[]) ...@@ -9269,7 +9269,7 @@ expand_block_move (rtx operands[])
mode = SImode; mode = SImode;
gen_func.mov = gen_movsi; gen_func.mov = gen_movsi;
} }
else if (bytes == 2 && (align >= 16 || !STRICT_ALIGNMENT)) else if (bytes >= 2 && (align >= 16 || !STRICT_ALIGNMENT))
{ /* move 2 bytes */ { /* move 2 bytes */
move_bytes = 2; move_bytes = 2;
mode = HImode; mode = HImode;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment