[PATCH] Fix PR37216 [cygming] Invalid alignment for SSE store to .comm data generated with -O3

Danny Smith dansmister@gmail.com
Sun May 24 07:46:00 GMT 2009


On Sun, May 24, 2009 at 10:28 AM, Dave Korn
<dave.korn.cygwin@googlemail.com> wrote:

>
>  Bootstrapped on i686-pc-cygwin, and verified that it fixes 48 FAILs caused
> by the gcc.dg/torture/stackalign/push-1.c test.  Also verified that when you
> build it (non-bootstrap) without support in the assembler, the autoconf test
> correctly detects this and sets the target option off by default.  Also read
> the generated assembly files to verify they were emitting the correct forms of
> the directive.
>

It would also be nice to test the effect of this on
testsuite/gcc.dg/compat/struct-layout-1.exp tests after
removing   -fno-common switch for mingw and cygwin in
struct-layout-1_generate.c, line 49.

"/* { dg-options \"%s-I%s -fno-common\" { target hppa*-*-hpux*
powerpc*-*-darwin* *-*-mingw32* *-*-cygwin* } } */\n",

> gcc/ChangeLog:
>
>        PR target/37216
>        * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
>        macro definition for support of three-operand format aligned
>        .comm directive in assembler on cygwin/pe/mingw target OS.
>        * configure:  Regenerate.
>        * config.h:  Regenerate.
>        * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
>        * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
>        * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
>        aligned form of .comm directive if -mpe-aligned-commons is in effect.
>
>  If no regressions when the tests complete, OK for HEAD?


These changes are OK by me.

Danny



More information about the Gcc-patches mailing list