https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78962

            Bug ID: 78962
           Summary: i386: Missed optimization: unaligned SSE movs with
                    force_align_arg_pointer
           Product: gcc
           Version: 5.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: daniel.santos at pobox dot com
  Target Milestone: ---

void b (void);  /* Normal System V function.  */
__attribute__((ms_abi, force_align_arg_pointer)) void a (void)
{
    b ();
}

When using __attribute__((force_align_arg_pointer)) on 64-bit code, the stack
pointer is re-aligned, but SSE movs in pro/epilogues to save/restore clobbers
caused by the Microsoft ABI function calling a System V function are emitted
unaligned.  I posted a patchset for this problem here
https://gcc.gnu.org/ml/gcc-patches/2016-12/msg01924.html.  Uros advised to
resubmit when the next stage 1 rolls around, so filing a bug for now.

Reply via email to