This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] x86: extend 64-bit invalid MPX insn forms testcase
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Jan Beulich <JBeulich at suse dot com>
- Cc: Binutils <binutils at sourceware dot org>
- Date: Wed, 22 Feb 2017 08:08:41 -0800
- Subject: Re: [PATCH] x86: extend 64-bit invalid MPX insn forms testcase
- Authentication-results: sourceware.org; auth=none
- References: <58AC2DB6020000780013C38A@prv-mh.provo.novell.com>
On Tue, Feb 21, 2017 at 3:08 AM, Jan Beulich <JBeulich@suse.com> wrote:
> gas/
> 2017-02-21 Jan Beulich <jbeulich@suse.com>
>
> * gas/testsuite/gas/i386/x86-64-mpx-inval-2.d: Add 32- and 16-
> bit GPR forms of BNDCL, BNDCU, and BNDCN. Add RSP-as-index
> Intel syntax forms of BNDMK, BNDSTX, and BNDLDX.
> * gas/testsuite/gas/i386/x86-64-mpx-inval-2.l: Adjust.
>
> --- 2017-02-21/gas/testsuite/gas/i386/x86-64-mpx-inval-2.l
> +++ 2017-02-21/gas/testsuite/gas/i386/x86-64-mpx-inval-2.l
> @@ -9,44 +9,59 @@
> .*:16: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> .*:19: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> .*:20: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> -.*:23: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> -.*:24: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> -.*:27: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> -.*:28: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:21: Error: .* `bndcl'
> +.*:22: Error: .* `bndcl'
> +.*:25: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:26: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:27: Error: .* `bndcu'
> +.*:28: Error: .* `bndcu'
> .*:31: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> .*:32: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> -.*:33: Warning: register scaling is being ignored here
> -.*:34: Error: `base\(%rip\)' cannot be used here
> -.*:35: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:33: Error: .* `bndcn'
> +.*:34: Error: .* `bndcn'
> +.*:37: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> .*:38: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> -.*:39: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> -.*:40: Warning: register scaling is being ignored here
> -.*:41: Error: `base\(%rip\)' cannot be used here
> -.*:42: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:39: Warning: register scaling is being ignored here
> +.*:40: Error: `base\(%rip\)' cannot be used here
> +.*:41: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:44: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> .*:45: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> -.*:46: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> -.*:47: Error: `\[rip\]' cannot be used here
> +.*:46: Warning: register scaling is being ignored here
> +.*:47: Error: `base\(%rip\)' cannot be used here
> .*:48: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> .*:51: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> .*:52: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:53: Error: `\[rip\]' cannot be used here
> .*:54: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> -.*:55: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:55: Error: `\[rax\+rsp\]' is not a valid base/index expression
> .*:58: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> .*:59: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:61: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> .*:62: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> -.*:63: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:65: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> .*:66: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> -.*:67: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> -.*:70: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:67: Error: .* `bndcl'
> +.*:68: Error: .* `bndcl'
> .*:71: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> -.*:72: Warning: register scaling is being ignored here
> -.*:73: Error: `\[rip\+base\]' cannot be used here
> -.*:74: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:72: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:73: Error: .* `bndcu'
> +.*:74: Error: .* `bndcu'
> .*:77: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> .*:78: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> -.*:79: Warning: register scaling is being ignored here
> -.*:80: Error: `\[rip\+base\]' cannot be used here
> -.*:81: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:79: Error: .* `bndcn'
> +.*:80: Error: .* `bndcn'
> +.*:83: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:84: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:85: Warning: register scaling is being ignored here
> +.*:86: Error: `\[rip\+base\]' cannot be used here
> +.*:87: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:88: Error: `\[rax\+rsp\]' is not a valid base/index expression
> +.*:91: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:92: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:93: Warning: register scaling is being ignored here
> +.*:94: Error: `\[rip\+base\]' cannot be used here
> +.*:95: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> +.*:96: Error: `\[rax\+rsp\]' is not a valid base/index expression
> GAS LISTING .*
>
>
> @@ -54,175 +69,193 @@ GAS LISTING .*
> [ ]*2[ ]+\.allow_index_reg
> [ ]*3[ ]+\.text
> [ ]*4[ ]+
> -[ ]*5[ ]+\#\#\# bndmk
> -[ ]*6[ ]+\?\?\?\? 67F30F1B bndmk \(%eax\), %bnd1
> +[ ]*[1-9][0-9]*[ ]+\#\#\# bndmk
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1B bndmk \(%eax\), %bnd1
> .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*6[ ]+08
> -[ ]*7[ ]+\?\?\?\? 67F30F1B bndmk 0x3\(%ecx,%ebx,1\), %bnd1
> +[ ]*[1-9][0-9]*[ ]+08
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1B bndmk 0x3\(%ecx,%ebx,1\), %bnd1
> .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*7[ ]+4C1903
> -[ ]*8[ ]+bndmk \(%rip\), %bnd3
> -[ ]*9[ ]+\?\?\?\? 67F30F1B bndmk \(%eip\), %bnd2
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*9[ ]+15000000
> -[ ]*9[ ]+00
> -[ ]*10[ ]+
> -[ ]*11[ ]+\#\#\# bndmov
> -[ ]*12[ ]+\?\?\?\? 6766410F bndmov \(%r8d\), %bnd1
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*12[ ]+1A08
> -[ ]*13[ ]+\?\?\?\? 6766410F bndmov 0x3\(%r9d,%edx,1\), %bnd1
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*13[ ]+1A4C1103
> -[ ]*14[ ]+
> -[ ]*15[ ]+\?\?\?\? 67660F1B bndmov %bnd1, \(%eax\)
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*15[ ]+08
> -[ ]*16[ ]+\?\?\?\? 67660F1B bndmov %bnd1, 0x3\(%ecx,%eax,1\)
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*16[ ]+4C0103
> -[ ]*17[ ]+
> -[ ]*18[ ]+\#\#\# bndcl
> -[ ]*19[ ]+\?\?\?\? 67F30F1A bndcl \(%ecx\), %bnd1
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*19[ ]+09
> -[ ]*20[ ]+\?\?\?\? 67F30F1A bndcl 0x3\(%ecx,%eax,1\), %bnd1
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*20[ ]+4C0103
> -[ ]*21[ ]+
> -[ ]*22[ ]+\#\#\# bndcu
> -[ ]*23[ ]+\?\?\?\? 67F20F1A bndcu \(%ecx\), %bnd1
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*23[ ]+09
> -[ ]*24[ ]+\?\?\?\? 67F20F1A bndcu 0x3\(%ecx,%eax,1\), %bnd1
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*24[ ]+4C0103
> -[ ]*25[ ]+
> -[ ]*26[ ]+\#\#\# bndcn
> -[ ]*27[ ]+\?\?\?\? 67F20F1B bndcn \(%ecx\), %bnd1
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*27[ ]+09
> -[ ]*28[ ]+\?\?\?\? 67F20F1B bndcn 0x3\(%ecx,%eax,1\), %bnd1
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*28[ ]+4C0103
> -[ ]*29[ ]+
> -[ ]*30[ ]+\#\#\# bndstx
> +[ ]*[1-9][0-9]*[ ]+4C1903
> +[ ]*[1-9][0-9]*[ ]+bndmk \(%rip\), %bnd3
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1B bndmk \(%eip\), %bnd2
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+15000000
> +[ ]*[1-9][0-9]*[ ]+00
> +[ ]*[1-9][0-9]*[ ]+
> +[ ]*[1-9][0-9]*[ ]+\#\#\# bndmov
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 6766410F bndmov \(%r8d\), %bnd1
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+1A08
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 6766410F bndmov 0x3\(%r9d,%edx,1\), %bnd1
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+1A4C1103
> +[ ]*[1-9][0-9]*[ ]+
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67660F1B bndmov %bnd1, \(%eax\)
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+08
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67660F1B bndmov %bnd1, 0x3\(%ecx,%eax,1\)
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+4C0103
> +[ ]*[1-9][0-9]*[ ]+
> +[ ]*[1-9][0-9]*[ ]+\#\#\# bndcl
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1A bndcl \(%ecx\), %bnd1
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+09
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1A bndcl 0x3\(%ecx,%eax,1\), %bnd1
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+4C0103
> +[ ]*[1-9][0-9]*[ ]+bndcl %ecx, %bnd1
> +[ ]*[1-9][0-9]*[ ]+bndcl %cx, %bnd1
> +[ ]*[1-9][0-9]*[ ]+
> +[ ]*[1-9][0-9]*[ ]+\#\#\# bndcu
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F20F1A bndcu \(%ecx\), %bnd1
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+09
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F20F1A bndcu 0x3\(%ecx,%eax,1\), %bnd1
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+4C0103
> +[ ]*[1-9][0-9]*[ ]+bndcu %ecx, %bnd1
> +[ ]*[1-9][0-9]*[ ]+bndcu %cx, %bnd1
> +[ ]*[1-9][0-9]*[ ]+
> +[ ]*[1-9][0-9]*[ ]+\#\#\# bndcn
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F20F1B bndcn \(%ecx\), %bnd1
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+09
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F20F1B bndcn 0x3\(%ecx,%eax,1\), %bnd1
> GAS LISTING .*
>
>
> -[ ]*31[ ]+\?\?\?\? 670F1B44 bndstx %bnd0, 0x3\(%eax,%ebx,1\)
> .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*31[ ]+1803
> -[ ]*32[ ]+\?\?\?\? 670F1B53 bndstx %bnd2, 3\(%ebx,1\)
> +[ ]*[1-9][0-9]*[ ]+4C0103
> +[ ]*[1-9][0-9]*[ ]+bndcn %ecx, %bnd1
> +[ ]*[1-9][0-9]*[ ]+bndcn %cx, %bnd1
> +[ ]*[1-9][0-9]*[ ]+
> +[ ]*[1-9][0-9]*[ ]+\#\#\# bndstx
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1B44 bndstx %bnd0, 0x3\(%eax,%ebx,1\)
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+1803
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1B53 bndstx %bnd2, 3\(%ebx,1\)
> .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*32[ ]+03
> -[ ]*33[ ]+\?\?\?\? 410F1B0C bndstx %bnd1, \(%r15,%rax,2\)
> +[ ]*[1-9][0-9]*[ ]+03
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 410F1B0C bndstx %bnd1, \(%r15,%rax,2\)
> .* Warning: register scaling is being ignored here
> -[ ]*33[ ]+47
> -[ ]*34[ ]+bndstx %bnd3, base\(%rip\)
> -[ ]*35[ ]+\?\?\?\? 670F1B0D bndstx %bnd1, base\(%eip\)
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*35[ ]+[0-9a-f][0-9a-f][0-9a-f]00000
> -[ ]*36[ ]+
> -[ ]*37[ ]+\#\#\# bndldx
> -[ ]*38[ ]+\?\?\?\? 670F1A44 bndldx 0x3\(%eax,%ebx,1\), %bnd0
> +[ ]*[1-9][0-9]*[ ]+47
> +[ ]*[1-9][0-9]*[ ]+bndstx %bnd3, base\(%rip\)
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1B0D bndstx %bnd1, base\(%eip\)
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+[0-9a-f][0-9a-f][0-9a-f]00000
> +[ ]*[1-9][0-9]*[ ]+
> +[ ]*[1-9][0-9]*[ ]+\#\#\# bndldx
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1A44 bndldx 0x3\(%eax,%ebx,1\), %bnd0
> .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*38[ ]+1803
> -[ ]*39[ ]+\?\?\?\? 670F1A53 bndldx 3\(%ebx,1\), %bnd2
> +[ ]*[1-9][0-9]*[ ]+1803
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1A53 bndldx 3\(%ebx,1\), %bnd2
> .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*39[ ]+03
> -[ ]*40[ ]*\?\?\?\? 420F1A1C bndldx \(%rax,%r15,4\), %bnd3
> +[ ]*[1-9][0-9]*[ ]+03
> +[ ]*[1-9][0-9]*[ ]*\?\?\?\? 420F1A1C bndldx \(%rax,%r15,4\), %bnd3
> .* Warning: register scaling is being ignored here
> -[ ]*40[ ]*B8
> -[ ]*41[ ]*bndldx base\(%rip\), %bnd1
> -[ ]*42[ ]*\?\?\?\? 670F1A1D bndldx base\(%eip\), %bnd3
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*42[ ]*[0-9a-f][0-9a-f][0-9a-f]00000
> -[ ]*43[ ]+
> -[ ]*44[ ]+\.intel_syntax noprefix
> -[ ]*45[ ]+\?\?\?\? 67F30F1B bndmk bnd1, \[eax\]
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*45[ ]+08
> -[ ]*46[ ]+\?\?\?\? 67F30F1B bndmk bnd1, \[edx\+1\*eax\+0x3\]
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*46[ ]+4C0203
> -[ ]*47[ ]*bndmk bnd3, \[rip\]
> -[ ]*48[ ]*\?\?\?\? 67F30F1B bndmk bnd2, \[eip\]
> +[ ]*[1-9][0-9]*[ ]*B8
> +[ ]*[1-9][0-9]*[ ]*bndldx base\(%rip\), %bnd1
> +[ ]*[1-9][0-9]*[ ]*\?\?\?\? 670F1A1D bndldx base\(%eip\), %bnd3
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+[0-9a-f][0-9a-f][0-9a-f]00000
> +[ ]*[1-9][0-9]*[ ]+
> +[ ]*[1-9][0-9]*[ ]+\.intel_syntax noprefix
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1B bndmk bnd1, \[eax\]
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+08
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1B bndmk bnd1, \[edx\+1\*eax\+0x3\]
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+4C0203
> +[ ]*[1-9][0-9]*[ ]*bndmk bnd3, \[rip\]
> +[ ]*[1-9][0-9]*[ ]*\?\?\?\? 67F30F1B bndmk bnd2, \[eip\]
> .* Error: 32-bit address isn't allowed in 64-bit MPX instructions.
> -[ ]*48[ ]*15000000
> -[ ]*48[ ]*00
> -[ ]*49[ ]+
> -[ ]*50[ ]+\#\#\# bndmov
> -[ ]*51[ ]+\?\?\?\? 67660F1A bndmov bnd1, \[eax\]
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*51[ ]+08
> -[ ]*52[ ]+\?\?\?\? 67660F1A bndmov bnd1, \[edx\+1\*eax\+0x3\]
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*52[ ]+4C0203
> -[ ]*53[ ]+
> -[ ]*54[ ]+\?\?\?\? 67660F1B bndmov \[eax\], bnd1
> +[ ]*[1-9][0-9]*[ ]*15000000
> +[ ]*[1-9][0-9]*[ ]*00
> +[ ]*[1-9][0-9]*[ ]+bndmk bnd2, \[rax\+rsp\]
> +[ ]*[1-9][0-9]*[ ]+
> +[ ]*[1-9][0-9]*[ ]+\#\#\# bndmov
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67660F1A bndmov bnd1, \[eax\]
> .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*54[ ]+08
> -[ ]*55[ ]+\?\?\?\? 67660F1B bndmov \[edx\+1\*eax\+0x3\], bnd1
> +[ ]*[1-9][0-9]*[ ]+08
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67660F1A bndmov bnd1, \[edx\+1\*eax\+0x3\]
> .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*55[ ]+4C0203
> -[ ]*56[ ]+
> +[ ]*[1-9][0-9]*[ ]+4C0203
> +[ ]*[1-9][0-9]*[ ]+
> GAS LISTING .*
>
>
> -[ ]*57[ ]+\#\#\# bndcl
> -[ ]*58[ ]+\?\?\?\? 67F30F1A bndcl bnd1, \[eax\]
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67660F1B bndmov \[eax\], bnd1
> .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*58[ ]+08
> -[ ]*59[ ]+\?\?\?\? 67F30F1A bndcl bnd1, \[edx\+1\*eax\+0x3\]
> +[ ]*[1-9][0-9]*[ ]+08
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67660F1B bndmov \[edx\+1\*eax\+0x3\], bnd1
> .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*59[ ]+4C0203
> -[ ]*60[ ]+
> -[ ]*61[ ]+\#\#\# bndcu
> -[ ]*62[ ]+\?\?\?\? 67F20F1A bndcu bnd1, \[eax\]
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*62[ ]+08
> -[ ]*63[ ]+\?\?\?\? 67F20F1A bndcu bnd1, \[edx\+1\*eax\+0x3\]
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*63[ ]+4C0203
> -[ ]*64[ ]+
> -[ ]*65[ ]+\#\#\# bndcn
> -[ ]*66[ ]+\?\?\?\? 67F20F1B bndcn bnd1, \[eax\]
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*66[ ]+08
> -[ ]*67[ ]+\?\?\?\? 67F20F1B bndcn bnd1, \[edx\+1\*eax\+0x3\]
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*67[ ]+4C0203
> -[ ]*68[ ]+
> -[ ]*69[ ]+\#\#\# bndstx
> -[ ]*70[ ]+\?\?\?\? 670F1B44 bndstx \[eax\+ebx\*1\+0x3\], bnd0
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*70[ ]+1803
> -[ ]*71[ ]+\?\?\?\? 670F1B14 bndstx \[1\*ebx\+3\], bnd2
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*71[ ]+1D030000
> -[ ]*71[ ]+00
> -[ ]*72[ ]+\?\?\?\? 410F1B14 bndstx \[r8\+rdi\*4\], bnd2
> +[ ]*[1-9][0-9]*[ ]+4C0203
> +[ ]*[1-9][0-9]*[ ]+
> +[ ]*[1-9][0-9]*[ ]+\#\#\# bndcl
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1A bndcl bnd1, \[eax\]
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+08
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1A bndcl bnd1, \[edx\+1\*eax\+0x3\]
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+4C0203
> +[ ]*[1-9][0-9]*[ ]+bndcl bnd1, eax
> +[ ]*[1-9][0-9]*[ ]+bndcl bnd1, dx
> +[ ]*[1-9][0-9]*[ ]+
> +[ ]*[1-9][0-9]*[ ]+\#\#\# bndcu
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F20F1A bndcu bnd1, \[eax\]
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+08
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F20F1A bndcu bnd1, \[edx\+1\*eax\+0x3\]
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+4C0203
> +[ ]*[1-9][0-9]*[ ]+bndcu bnd1, eax
> +[ ]*[1-9][0-9]*[ ]+bndcu bnd1, dx
> +[ ]*[1-9][0-9]*[ ]+
> +[ ]*[1-9][0-9]*[ ]+\#\#\# bndcn
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F20F1B bndcn bnd1, \[eax\]
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+08
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F20F1B bndcn bnd1, \[edx\+1\*eax\+0x3\]
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+4C0203
> +[ ]*[1-9][0-9]*[ ]+bndcn bnd1, eax
> +[ ]*[1-9][0-9]*[ ]+bndcn bnd1, dx
> +[ ]*[1-9][0-9]*[ ]+
> +[ ]*[1-9][0-9]*[ ]+\#\#\# bndstx
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1B44 bndstx \[eax\+ebx\*1\+0x3\], bnd0
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+1803
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1B14 bndstx \[1\*ebx\+3\], bnd2
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+1D030000
> +[ ]*[1-9][0-9]*[ ]+00
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 410F1B14 bndstx \[r8\+rdi\*4\], bnd2
> .* Warning: register scaling is being ignored here
> -[ ]*72[ ]+B8
> -[ ]*73[ ]+bndstx \[rip\+base\], bnd1
> -[ ]*74[ ]+\?\?\?\? 670F1B1D bndstx \[eip\+base\], bnd3
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*74[ ]+[0-9a-f][0-9a-f][0-9a-f]00000
> -[ ]*75[ ]+
> -[ ]*76[ ]+\#\#\# bndldx
> -[ ]*77[ ]+\?\?\?\? 670F1A44 bndldx bnd0, \[eax\+ebx\*1\+0x3\]
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*77[ ]+1803
> -[ ]*78[ ]+\?\?\?\? 670F1A14 bndldx bnd2, \[1\*ebx\+3\]
> -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*78[ ]+1D030000
> -[ ]*78[ ]+00
> -[ ]*79[ ]+\?\?\?\? 420F1A14 bndldx bnd2, \[rdi\+r8\*8\]
> +[ ]*[1-9][0-9]*[ ]+B8
> +[ ]*[1-9][0-9]*[ ]+bndstx \[rip\+base\], bnd1
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1B1D bndstx \[eip\+base\], bnd3
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+[0-9a-f][0-9a-f][0-9a-f]00000
> +[ ]*[1-9][0-9]*[ ]+bndstx \[rax\+rsp\], bnd3
> +[ ]*[1-9][0-9]*[ ]+
> +[ ]*[1-9][0-9]*[ ]+\#\#\# bndldx
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1A44 bndldx bnd0, \[eax\+ebx\*1\+0x3\]
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> + GAS LISTING .*
> +
> +
> +[ ]*[1-9][0-9]*[ ]+1803
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1A14 bndldx bnd2, \[1\*ebx\+3\]
> +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> +[ ]*[1-9][0-9]*[ ]+1D030000
> +[ ]*[1-9][0-9]*[ ]+00
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 420F1A14 bndldx bnd2, \[rdi\+r8\*8\]
> .* Warning: register scaling is being ignored here
> -[ ]*79[ ]+C7
> -[ ]*80[ ]+bndldx bnd1, \[rip\+base\]
> -[ ]*81[ ]+\?\?\?\? 670F1A1D bndldx bnd3, \[eip\+base\]
> +[ ]*[1-9][0-9]*[ ]+C7
> +[ ]*[1-9][0-9]*[ ]+bndldx bnd1, \[rip\+base\]
> +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1A1D bndldx bnd3, \[eip\+base\]
> .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
> -[ ]*81 [0-9a-f][0-9a-f][0-9a-f]00000
> +[ ]*[1-9][0-9]*[ ]+[0-9a-f][0-9a-f][0-9a-f]00000
> +[ ]*[1-9][0-9]*[ ]+bndldx bnd3, \[rax\+rsp\]
> #pass
> --- 2017-02-21/gas/testsuite/gas/i386/x86-64-mpx-inval-2.s
> +++ 2017-02-21/gas/testsuite/gas/i386/x86-64-mpx-inval-2.s
> @@ -18,14 +18,20 @@
> ### bndcl
> bndcl (%ecx), %bnd1
> bndcl 0x3(%ecx,%eax,1), %bnd1
> + bndcl %ecx, %bnd1
> + bndcl %cx, %bnd1
>
> ### bndcu
> bndcu (%ecx), %bnd1
> bndcu 0x3(%ecx,%eax,1), %bnd1
> + bndcu %ecx, %bnd1
> + bndcu %cx, %bnd1
>
> ### bndcn
> bndcn (%ecx), %bnd1
> bndcn 0x3(%ecx,%eax,1), %bnd1
> + bndcn %ecx, %bnd1
> + bndcn %cx, %bnd1
>
> ### bndstx
> bndstx %bnd0, 0x3(%eax,%ebx,1)
> @@ -46,6 +52,7 @@
> bndmk bnd1, [edx+1*eax+0x3]
> bndmk bnd3, [rip]
> bndmk bnd2, [eip]
> + bndmk bnd2, [rax+rsp]
>
> ### bndmov
> bndmov bnd1, [eax]
> @@ -57,14 +64,20 @@
> ### bndcl
> bndcl bnd1, [eax]
> bndcl bnd1, [edx+1*eax+0x3]
> + bndcl bnd1, eax
> + bndcl bnd1, dx
>
> ### bndcu
> bndcu bnd1, [eax]
> bndcu bnd1, [edx+1*eax+0x3]
> + bndcu bnd1, eax
> + bndcu bnd1, dx
>
> ### bndcn
> bndcn bnd1, [eax]
> bndcn bnd1, [edx+1*eax+0x3]
> + bndcn bnd1, eax
> + bndcn bnd1, dx
>
> ### bndstx
> bndstx [eax+ebx*1+0x3], bnd0
> @@ -72,6 +85,7 @@
> bndstx [r8+rdi*4], bnd2
> bndstx [rip+base], bnd1
> bndstx [eip+base], bnd3
> + bndstx [rax+rsp], bnd3
>
> ### bndldx
> bndldx bnd0, [eax+ebx*1+0x3]
> @@ -79,3 +93,4 @@
> bndldx bnd2, [rdi+r8*8]
> bndldx bnd1, [rip+base]
> bndldx bnd3, [eip+base]
> + bndldx bnd3, [rax+rsp]
>
>
OK.
Thanks.
--
H.J.