------- Comment #1 from pinskia at gcc dot gnu dot org  2008-06-13 21:46 -------
aligned_operand looks wrong:
  /* Look for some component that isn't known to be aligned.  */
  if (parts.index)
    {
      if (REGNO_POINTER_ALIGN (REGNO (parts.index)) * parts.scale < 32)
        return 0;
    }
  if (parts.base)
    {
      if (REGNO_POINTER_ALIGN (REGNO (parts.base)) < 32)
        return 0;
    }

We are using the hard registers here so we can have the wrong alignment as they
are shared.

Why are we looking into register pointer's alignment anyways?  The MEM_ALIGN
check about should give the correct information anyways.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pinskia at gcc dot gnu dot
                   |                            |org
           Severity|major                       |normal
           Keywords|                            |wrong-code
           Priority|P1                          |P2


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36533

Reply via email to