[PATCH] Fix various -masm=intel issues (PR target/42165)

Uros Bizjak ubizjak@gmail.com
Wed Nov 25 13:32:00 GMT 2009


On Wed, Nov 25, 2009 at 1:54 PM, Jakub Jelinek <jakub@redhat.com> wrote:

> This patch fixes the failure from the PR as well as several failures
> from
> make check-gcc RUNTESTFLAGS="i386.exp --target_board=unix/-masm=intel"
> that are compiler bugs.
> Executing on host: /usr/src/gcc/obj/gcc/xgcc -B/usr/src/gcc/obj/gcc/   -O0 -Werror-implicit-function-declaration -m3dnow -c  -masm=intel -o 3dnow-2.o
> /usr/src/gcc/gcc/testsuite/gcc.target/i386/3dnow-2.c    (timeout = 300)
> /tmp/ccUjKjG6.s: Assembler messages:
> /tmp/ccUjKjG6.s:696: Error: ambiguous operand size or operands invalid for 'punpckldq'
> /tmp/ccUjKjG6.s:721: Error: ambiguous operand size or operands invalid for 'punpckldq'
> also looks like a gcc bug, but I'm not sure what are the proper operands in
> that case.  There are many failures left in the above testing, but
> what is left from quick glance looks just like the testsuite unprepared
> for the intel mode (scan-assembler expecting AT&T syntax output, inline asms
> using intel syntax, etc.).
>
> Ok for trunk?
>
> 2009-11-25  Jakub Jelinek  <jakub@redhat.com>
>
>        PR target/42165
>        * config/i386/i386.c (print_operand): For 32-byte memory use
>        YMMWORD in -masm=intel mode.  Use TBYTE instead of XWORD.
>        * config/i386/i386.md (crc32modesuffix): Expand to nothing
>        in -masm=intel mode.
>        (sse4_2_crc32di): Print just crc32 instead of crc32q in
>        -masm=intel mode.
>        * config/i386/mmx.md (*mmx_pinsrw): Print correct size of
>        memory operand in -masm=intel mode.
>        * config/i386/sse.md (*avx_pinsr<ssevecsize>, *sse4_1_pinsrb,
>        *sse2_pinsrw): Likewise.
>        (sse_cvtss2siq, sse_cvtss2siq_2, sse_cvttss2siq): Don't print
>        q suffix in -masm=intel mode.

OK for trunk and also release branches if the patch applies there.

Thanks,
Uros.



More information about the Gcc-patches mailing list