This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH, i386] Committed: Expand unaligned mem references only for TImode values
- From: "Uros Bizjak" <ubizjak at gmail dot com>
- To: "GCC Patches" <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 28 May 2007 14:25:09 +0200
- Subject: [PATCH, i386] Committed: Expand unaligned mem references only for TImode values
Hello!
The patch at [1] was too conservative w.r.t unaligned memory
references, and "fixed" all SSE modes. Attached patch changes this
handling to process only TImode values on 32-bit targets.
Patch was regression tested on i686-pc-linux-gnu with all default languages.
2007-05-28 Uros Bizjak <ubizjak@gmail.com>
* target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
memory access via x86_expand_vector_move_misalign() only for
TImode values on 32-bit targets.
[1] http://gcc.gnu.org/ml/gcc-patches/2007-05/msg01716.html
Uros.
Index: i386.c
===================================================================
--- i386.c (revision 125102)
+++ i386.c (working copy)
@@ -9746,7 +9746,7 @@
unaligned memory access. Use ix86_expand_vector_move_misalign()
if memory operand is not aligned correctly. */
if (!no_new_pseudos
- && SSE_REG_MODE_P (mode)
+ && (mode == TImode) && !TARGET_64BIT
&& ((MEM_P (op0) && (MEM_ALIGN (op0) < align))
|| (MEM_P (op1) && (MEM_ALIGN (op1) < align))))
{