public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: "H.J. Lu" <hjl.tools@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Binutils <binutils@sourceware.org>
Subject: Re: [PATCH] x86/Intel: don't accept malformed EXTRQ / INSERTQ
Date: Tue, 8 Nov 2022 13:20:49 -0800	[thread overview]
Message-ID: <CAMe9rOpgkW32TV0Pp8LBSY=yBLScstZUQpggSMvVJOqhaLwRvw@mail.gmail.com> (raw)
In-Reply-To: <ea0daf08-4923-ebfa-dcfe-699c43d63822@suse.com>

On Tue, Nov 8, 2022 at 3:29 AM Jan Beulich <jbeulich@suse.com> wrote:
>
> Operand swapping was mistakenly suppressed when the first two operands
> were immediate ones, not taking into account overall operand count. This
> way EXTRQ / INSERTQ would have been accepted also with kind-of-AT&T
> operand order.
>
> For the testcase being extended, in order to not move around "GAS
> LISTING" expectations, suppress pagination.
>
> --- a/gas/config/tc-i386.c
> +++ b/gas/config/tc-i386.c
> @@ -4885,7 +4885,8 @@ md_assemble (char *line)
>        && !startswith (mnemonic, "rmp")
>        && (strcmp (mnemonic, "tpause") != 0)
>        && (strcmp (mnemonic, "umwait") != 0)
> -      && !(operand_type_check (i.types[0], imm)
> +      && !(i.operands == 2
> +          && operand_type_check (i.types[0], imm)
>            && operand_type_check (i.types[1], imm)))
>      swap_operands ();
>
> --- a/gas/testsuite/gas/i386/i386.exp
> +++ b/gas/testsuite/gas/i386/i386.exp
> @@ -51,7 +51,7 @@ if [gas_32_check] then {
>
>      run_list_test "float" "-al -mmnemonic=att"
>      run_list_test "general" "-al --listing-lhs-width=2"
> -    run_list_test "inval" "-al"
> +    run_list_test "inval" "-aln"
>      run_list_test "inval-16" "-al"
>      run_list_test "segment" "-al"
>      run_list_test "inval-seg" "-al"
> --- a/gas/testsuite/gas/i386/inval.l
> +++ b/gas/testsuite/gas/i386/inval.l
> @@ -87,19 +87,18 @@
>  .*:97: Error: .*shl.*
>  .*:98: Error: .*rol.*
>  .*:99: Error: .*rcl.*
> -.*:102: Error: .*
> -.*:104: Error: .*
> +.*:101: Error: .*extrq.*
> +.*:102: Error: .*insertq.*
>  .*:105: Error: .*
> -.*:106: Error: .*
> +.*:107: Error: .*
>  .*:108: Error: .*
>  .*:109: Error: .*
> -.*:110: Error: .*
> +.*:111: Error: .*
>  .*:112: Error: .*
>  .*:113: Error: .*
> -.*:114: Error: .*
> -GAS LISTING .*
> -
> -
> +.*:115: Error: .*
> +.*:116: Error: .*
> +.*:117: Error: .*
>  [      ]*1[    ]+\.text
>  [      ]*2[    ]+\.allow_index_reg
>  [      ]*3[    ]+\# All the following should be illegal
> @@ -157,9 +156,6 @@ GAS LISTING .*
>  [      ]*55[   ]+fnstsw %al
>  [      ]*56[   ]+fstsw %eax
>  [      ]*57[   ]+fstsw %al
> - GAS LISTING .*
> -
> -
>  [      ]*58[   ]+
>  [      ]*59[   ]+movnti %ax, \(%eax\)
>  [      ]*60[   ]+movntiw %ax, \(%eax\)
> @@ -203,6 +199,9 @@ GAS LISTING .*
>  [      ]*[1-9][0-9]*[  ]+rol \[ecx\], 2
>  [      ]*[1-9][0-9]*[  ]+rcl \[edx\], cl
>  [      ]*[1-9][0-9]*[  ]+
> +[      ]*[1-9][0-9]*[  ]+extrq 1, 2, xmm3
> +[      ]*[1-9][0-9]*[  ]+insertq 1, 2, xmm3, xmm4
> +[      ]*[1-9][0-9]*[  ]+
>  [      ]*[1-9][0-9]*[  ]+\.att_syntax prefix
>  [      ]*[1-9][0-9]*[  ]+movsd \(%esi\), %ss:\(%edi\), %ss:\(%eax\)
>  [      ]*[1-9][0-9]*[  ]+
> @@ -217,6 +216,4 @@ GAS LISTING .*
>  [      ]*[1-9][0-9]*[  ]+inb   %dx, %ax
>  [      ]*[1-9][0-9]*[  ]+outb  %ax, %dx
>  [      ]*[1-9][0-9]*[  ]+movb  %ax, %bx
> - GAS LISTING .*
> -
> -
> +#pass
> --- a/gas/testsuite/gas/i386/inval.s
> +++ b/gas/testsuite/gas/i386/inval.s
> @@ -98,6 +98,9 @@ movnti word ptr [eax], ax
>         rol [ecx], 2
>         rcl [edx], cl
>
> +       extrq 1, 2, xmm3
> +       insertq 1, 2, xmm3, xmm4
> +
>         .att_syntax prefix
>         movsd (%esi), %ss:(%edi), %ss:(%eax)
>

OK.

Thanks.

-- 
H.J.

      reply	other threads:[~2022-11-08 21:21 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-08 11:29 Jan Beulich
2022-11-08 21:20 ` H.J. Lu [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAMe9rOpgkW32TV0Pp8LBSY=yBLScstZUQpggSMvVJOqhaLwRvw@mail.gmail.com' \
    --to=hjl.tools@gmail.com \
    --cc=binutils@sourceware.org \
    --cc=jbeulich@suse.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).