This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH, committed] rs6000 expand_block_move
- From: David Edelsohn <dje at watson dot ibm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 02 Sep 2004 21:14:21 -0400
- Subject: [PATCH, committed] rs6000 expand_block_move
In my previous patch to fix the alignment checks in
expand_block_move, I unintentionally disabled SImode and HImode with
STRICT_ALIGNMENT. Corrected with this patch.
David
* config/rs6000/rs6000.c (expand_block_move): Use SImode and
HImode with STRICT_ALIGNMENT.
Index: rs6000.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.c,v
retrieving revision 1.704
diff -c -p -u -r1.704 rs6000.c
--- rs6000.c 2 Sep 2004 22:38:13 -0000 1.704
+++ rs6000.c 3 Sep 2004 01:08:40 -0000
@@ -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;