This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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))))
    {


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]