aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2017-02-23 11:00:44 +0100
committerJan Beulich <jbeulich@suse.com>2017-02-23 11:00:44 +0100
commit4c5b8d1e01195f5c11048d99d71f39ddb5449f12 (patch)
tree229052ee7bd9a0386e3688883e327df4e5c6591d /gas
parent5499c7c71cc403a1deff90b79ab41d17efc5c4cc (diff)
downloadfsf-binutils-gdb-4c5b8d1e01195f5c11048d99d71f39ddb5449f12.zip
fsf-binutils-gdb-4c5b8d1e01195f5c11048d99d71f39ddb5449f12.tar.gz
fsf-binutils-gdb-4c5b8d1e01195f5c11048d99d71f39ddb5449f12.tar.bz2
x86: extend 64-bit invalid MPX insn forms testcase
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/testsuite/gas/i386/x86-64-mpx-inval-2.l375
-rw-r--r--gas/testsuite/gas/i386/x86-64-mpx-inval-2.s15
3 files changed, 226 insertions, 171 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 2b11805..c306584 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+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-22 Maciej W. Rozycki <macro@imgtec.com>
* ecoff.c (ecoff_directive_end) [md_flush_pending_output]: Call
diff --git a/gas/testsuite/gas/i386/x86-64-mpx-inval-2.l b/gas/testsuite/gas/i386/x86-64-mpx-inval-2.l
index 8bd427c..ed69fe5 100644
--- a/gas/testsuite/gas/i386/x86-64-mpx-inval-2.l
+++ b/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
-.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
-[ ]*6[ ]+08
-[ ]*7[ ]+\?\?\?\? 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]*[ ]+\#\#\# bndmk
+[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1B bndmk \(%eax\), %bnd1
+.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
+[ ]*[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\.
+[ ]*[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\)
+[ ]*[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\.
-[ ]*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]*[ ]+[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
+[ ]*[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\.
-[ ]*42[ ]*[0-9a-f][0-9a-f][0-9a-f]00000
-[ ]*43[ ]+
-[ ]*44[ ]+\.intel_syntax noprefix
-[ ]*45[ ]+\?\?\?\? 67F30F1B bndmk bnd1, \[eax\]
+[ ]*[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\.
-[ ]*45[ ]+08
-[ ]*46[ ]+\?\?\?\? 67F30F1B bndmk bnd1, \[edx\+1\*eax\+0x3\]
+[ ]*[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\.
-[ ]*46[ ]+4C0203
-[ ]*47[ ]*bndmk bnd3, \[rip\]
-[ ]*48[ ]*\?\?\?\? 67F30F1B bndmk bnd2, \[eip\]
+[ ]*[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
-.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
-[ ]*54[ ]+08
-[ ]*55[ ]+\?\?\?\? 67660F1B bndmov \[edx\+1\*eax\+0x3\], bnd1
-.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
-[ ]*55[ ]+4C0203
-[ ]*56[ ]+
+[ ]*[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\.
+[ ]*[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\.
+[ ]*[1-9][0-9]*[ ]+4C0203
+[ ]*[1-9][0-9]*[ ]+
GAS LISTING .*
-[ ]*57[ ]+\#\#\# bndcl
-[ ]*58[ ]+\?\?\?\? 67F30F1A bndcl bnd1, \[eax\]
-.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
-[ ]*58[ ]+08
-[ ]*59[ ]+\?\?\?\? 67F30F1A bndcl bnd1, \[edx\+1\*eax\+0x3\]
-.* 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]*[ ]+\?\?\?\? 67660F1B bndmov \[eax\], bnd1
+.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
+[ ]*[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\.
+[ ]*[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
+[ ]*[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\.
-[ ]*74[ ]+[0-9a-f][0-9a-f][0-9a-f]00000
-[ ]*75[ ]+
-[ ]*76[ ]+\#\#\# bndldx
-[ ]*77[ ]+\?\?\?\? 670F1A44 bndldx bnd0, \[eax\+ebx\*1\+0x3\]
+[ ]*[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\.
-[ ]*77[ ]+1803
-[ ]*78[ ]+\?\?\?\? 670F1A14 bndldx bnd2, \[1\*ebx\+3\]
+ 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\.
-[ ]*78[ ]+1D030000
-[ ]*78[ ]+00
-[ ]*79[ ]+\?\?\?\? 420F1A14 bndldx bnd2, \[rdi\+r8\*8\]
+[ ]*[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
diff --git a/gas/testsuite/gas/i386/x86-64-mpx-inval-2.s b/gas/testsuite/gas/i386/x86-64-mpx-inval-2.s
index 7e8e8d5..0ff0e78 100644
--- a/gas/testsuite/gas/i386/x86-64-mpx-inval-2.s
+++ b/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]