aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2019-11-14 08:44:57 +0100
committerJan Beulich <jbeulich@suse.com>2019-11-14 08:44:57 +0100
commitb15384304be0ce0ee2e184933b666875e296c31e (patch)
tree400cccca36adcb7fb0ea35e389db7b10f7541f98
parentbd454f8baf5382e6ad2869dc077e3d0711a17882 (diff)
downloadgdb-b15384304be0ce0ee2e184933b666875e296c31e.zip
gdb-b15384304be0ce0ee2e184933b666875e296c31e.tar.gz
gdb-b15384304be0ce0ee2e184933b666875e296c31e.tar.bz2
x86/Intel: extend MOVSD/CMPSD testsuite coverage
This is still in the context of PR/gas 25167.
-rw-r--r--gas/ChangeLog12
-rw-r--r--gas/testsuite/gas/i386/i386.exp2
-rw-r--r--gas/testsuite/gas/i386/intel-cmps.s55
-rw-r--r--gas/testsuite/gas/i386/intel-cmps16.d68
-rw-r--r--gas/testsuite/gas/i386/intel-cmps32.d27
-rw-r--r--gas/testsuite/gas/i386/intel-cmps64.d36
-rw-r--r--gas/testsuite/gas/i386/intel-movs.s55
-rw-r--r--gas/testsuite/gas/i386/intel-movs16.d68
-rw-r--r--gas/testsuite/gas/i386/intel-movs32.d27
-rw-r--r--gas/testsuite/gas/i386/intel-movs64.d36
10 files changed, 386 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 0094366..a442e2a 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,15 @@
+2019-11-14 Jan Beulich <jbeulich@suse.com>
+
+ * testsuite/gas/i386/intel-cmps.s,
+ testsuite/gas/i386/intel-movs.s: Extend.
+ * testsuite/gas/i386/intel-cmps32.d,
+ testsuite/gas/i386/intel-cmps64.d,
+ testsuite/gas/i386/intel-movs32.d,
+ testsuite/gas/i386/intel-movs64.d: Adjust expectations.
+ * testsuite/gas/i386/intel-cmps16.d,
+ testsuite/gas/i386/intel-movs16.d: New.
+ * testsuite/gas/i386/i386.exp: Run new tests.
+
2019-11-12 Nelson Chu <nelson.chu@sifive.com>
* testsuite/gas/riscv/insn.d: Add the f extension to -march option.
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index 4e7f8b9..f4c7ce7 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -532,7 +532,9 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]]
run_list_test "reloc32" "--defsym _bad_=1"
run_dump_test "intel-got32"
run_dump_test "intel-movs32"
+ run_dump_test "intel-movs16"
run_dump_test "intel-cmps32"
+ run_dump_test "intel-cmps16"
run_list_test "inval-equ-1" "-al"
run_list_test "inval-equ-2" "-al"
run_dump_test "ifunc"
diff --git a/gas/testsuite/gas/i386/intel-cmps.s b/gas/testsuite/gas/i386/intel-cmps.s
index 6703777..4d518c6 100644
--- a/gas/testsuite/gas/i386/intel-cmps.s
+++ b/gas/testsuite/gas/i386/intel-cmps.s
@@ -1,8 +1,20 @@
.text
.intel_syntax noprefix
+.ifdef x86_16
+ .code16
+.endif
+
+.ifdef x86_64
+ .equ adi, rdi
+ .equ asi, rsi
+.else
+ .equ adi, di
+ .equ asi, si
+.endif
cmps:
cmpsb
+
cmpsb [esi], es:[edi]
cmpsb fs:[esi], es:[edi]
cmpsb [esi], [edi]
@@ -13,7 +25,18 @@ cmps:
cmps [esi], byte ptr es:[edi]
cmps byte ptr [esi], byte ptr es:[edi]
+ cmpsb [asi], es:[adi]
+ cmpsb fs:[asi], es:[adi]
+ cmpsb [asi], [adi]
+ cmpsb byte ptr [asi], es:[adi]
+ cmpsb [asi], byte ptr es:[adi]
+ cmpsb byte ptr [asi], byte ptr es:[adi]
+ cmps byte ptr [asi], es:[adi]
+ cmps [asi], byte ptr es:[adi]
+ cmps byte ptr [asi], byte ptr es:[adi]
+
cmpsw
+
cmpsw [esi], es:[edi]
cmpsw fs:[esi], es:[edi]
cmpsw [esi], [edi]
@@ -24,7 +47,18 @@ cmps:
cmps [esi], word ptr es:[edi]
cmps word ptr [esi], word ptr es:[edi]
+ cmpsw [asi], es:[adi]
+ cmpsw fs:[asi], es:[adi]
+ cmpsw [asi], [adi]
+ cmpsw word ptr [asi], es:[adi]
+ cmpsw [asi], word ptr es:[adi]
+ cmpsw word ptr [asi], word ptr es:[adi]
+ cmps word ptr [asi], es:[adi]
+ cmps [asi], word ptr es:[adi]
+ cmps word ptr [asi], word ptr es:[adi]
+
cmpsd
+
cmpsd [esi], es:[edi]
cmpsd fs:[esi], es:[edi]
cmpsd [esi], [edi]
@@ -35,8 +69,19 @@ cmps:
cmps [esi], dword ptr es:[edi]
cmps dword ptr [esi], dword ptr es:[edi]
+ cmpsd [asi], es:[adi]
+ cmpsd fs:[asi], es:[adi]
+ cmpsd [asi], [adi]
+ cmpsd dword ptr [asi], es:[adi]
+ cmpsd [asi], dword ptr es:[adi]
+ cmpsd dword ptr [asi], dword ptr es:[adi]
+ cmps dword ptr [asi], es:[adi]
+ cmps [asi], dword ptr es:[adi]
+ cmps dword ptr [asi], dword ptr es:[adi]
+
.ifdef x86_64
cmpsq
+
cmpsq [rsi], es:[rdi]
cmpsq fs:[rsi], es:[rdi]
cmpsq [rsi], [rdi]
@@ -46,4 +91,14 @@ cmps:
cmps qword ptr [rsi], es:[rdi]
cmps [rsi], qword ptr es:[rdi]
cmps qword ptr [rsi], qword ptr es:[rdi]
+
+ cmpsq [esi], es:[edi]
+ cmpsq fs:[esi], es:[edi]
+ cmpsq [esi], [edi]
+ cmpsq qword ptr [esi], es:[edi]
+ cmpsq [esi], qword ptr es:[edi]
+ cmpsq qword ptr [esi], qword ptr es:[edi]
+ cmps qword ptr [esi], es:[edi]
+ cmps [esi], qword ptr es:[edi]
+ cmps qword ptr [esi], qword ptr es:[edi]
.endif
diff --git a/gas/testsuite/gas/i386/intel-cmps16.d b/gas/testsuite/gas/i386/intel-cmps16.d
new file mode 100644
index 0000000..5c9ae35
--- /dev/null
+++ b/gas/testsuite/gas/i386/intel-cmps16.d
@@ -0,0 +1,68 @@
+#as: --defsym x86_16=1
+#objdump: -dMintel -Mi8086
+#source: intel-cmps.s
+#name: x86 Intel cmps (16-bit code)
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <cmps>:
+[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[si\],(BYTE PTR )?es:\[di\])
+[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[esi\],(BYTE PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 64 67 a6 * cmps +BYTE PTR fs:\[esi\],(BYTE PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[esi\],(BYTE PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[esi\],(BYTE PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[esi\],(BYTE PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[esi\],(BYTE PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[esi\],(BYTE PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[esi\],(BYTE PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[esi\],(BYTE PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[si\],(BYTE PTR )?es:\[di\])
+[ ]*[a-f0-9]+: 64 a6 * cmps +BYTE PTR fs:\[si\],(BYTE PTR )?es:\[di\]
+[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[si\],(BYTE PTR )?es:\[di\])
+[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[si\],(BYTE PTR )?es:\[di\])
+[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[si\],(BYTE PTR )?es:\[di\])
+[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[si\],(BYTE PTR )?es:\[di\])
+[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[si\],(BYTE PTR )?es:\[di\])
+[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[si\],(BYTE PTR )?es:\[di\])
+[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[si\],(BYTE PTR )?es:\[di\])
+[ ]*[a-f0-9]+: a7 * cmps(w *| +WORD PTR (ds:)?\[si\],(WORD PTR )?es:\[di\])
+[ ]*[a-f0-9]+: 67 a7 * cmps +WORD PTR (ds:)?\[esi\],(WORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 64 67 a7 * cmps +WORD PTR fs:\[esi\],(WORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 a7 * cmps +WORD PTR (ds:)?\[esi\],(WORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 a7 * cmps +WORD PTR (ds:)?\[esi\],(WORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 a7 * cmps +WORD PTR (ds:)?\[esi\],(WORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 a7 * cmps +WORD PTR (ds:)?\[esi\],(WORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 a7 * cmps +WORD PTR (ds:)?\[esi\],(WORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 a7 * cmps +WORD PTR (ds:)?\[esi\],(WORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 a7 * cmps +WORD PTR (ds:)?\[esi\],(WORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: a7 * cmps(w *| +WORD PTR (ds:)?\[si\],(WORD PTR )?es:\[di\])
+[ ]*[a-f0-9]+: 64 a7 * cmps +WORD PTR fs:\[si\],(WORD PTR )?es:\[di\]
+[ ]*[a-f0-9]+: a7 * cmps(w *| +WORD PTR (ds:)?\[si\],(WORD PTR )?es:\[di\])
+[ ]*[a-f0-9]+: a7 * cmps(w *| +WORD PTR (ds:)?\[si\],(WORD PTR )?es:\[di\])
+[ ]*[a-f0-9]+: a7 * cmps(w *| +WORD PTR (ds:)?\[si\],(WORD PTR )?es:\[di\])
+[ ]*[a-f0-9]+: a7 * cmps(w *| +WORD PTR (ds:)?\[si\],(WORD PTR )?es:\[di\])
+[ ]*[a-f0-9]+: a7 * cmps(w *| +WORD PTR (ds:)?\[si\],(WORD PTR )?es:\[di\])
+[ ]*[a-f0-9]+: a7 * cmps(w *| +WORD PTR (ds:)?\[si\],(WORD PTR )?es:\[di\])
+[ ]*[a-f0-9]+: a7 * cmps(w *| +WORD PTR (ds:)?\[si\],(WORD PTR )?es:\[di\])
+[ ]*[a-f0-9]+: 66 a7 * cmps(d *| +DWORD PTR (ds:)?\[si\],(DWORD PTR )?es:\[di\])
+[ ]*[a-f0-9]+: 67 66 a7 * cmps +DWORD PTR (ds:)?\[esi\],(DWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 64 67 66 a7 * cmps +DWORD PTR fs:?\[esi\],(DWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 66 a7 * cmps +DWORD PTR (ds:)?\[esi\],(DWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 66 a7 * cmps +DWORD PTR (ds:)?\[esi\],(DWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 66 a7 * cmps +DWORD PTR (ds:)?\[esi\],(DWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 66 a7 * cmps +DWORD PTR (ds:)?\[esi\],(DWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 66 a7 * cmps +DWORD PTR (ds:)?\[esi\],(DWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 66 a7 * cmps +DWORD PTR (ds:)?\[esi\],(DWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 66 a7 * cmps +DWORD PTR (ds:)?\[esi\],(DWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 66 a7 * cmps(d *| +DWORD PTR (ds:)?\[si\],(DWORD PTR )?es:\[di\])
+[ ]*[a-f0-9]+: 64 66 a7 * cmps +DWORD PTR fs:?\[si\],(DWORD PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 66 a7 * cmps(d *| +DWORD PTR (ds:)?\[si\],(DWORD PTR )?es:\[di\])
+[ ]*[a-f0-9]+: 66 a7 * cmps(d *| +DWORD PTR (ds:)?\[si\],(DWORD PTR )?es:\[di\])
+[ ]*[a-f0-9]+: 66 a7 * cmps(d *| +DWORD PTR (ds:)?\[si\],(DWORD PTR )?es:\[di\])
+[ ]*[a-f0-9]+: 66 a7 * cmps(d *| +DWORD PTR (ds:)?\[si\],(DWORD PTR )?es:\[di\])
+[ ]*[a-f0-9]+: 66 a7 * cmps(d *| +DWORD PTR (ds:)?\[si\],(DWORD PTR )?es:\[di\])
+[ ]*[a-f0-9]+: 66 a7 * cmps(d *| +DWORD PTR (ds:)?\[si\],(DWORD PTR )?es:\[di\])
+[ ]*[a-f0-9]+: 66 a7 * cmps(d *| +DWORD PTR (ds:)?\[si\],(DWORD PTR )?es:\[di\])
+#pass
diff --git a/gas/testsuite/gas/i386/intel-cmps32.d b/gas/testsuite/gas/i386/intel-cmps32.d
index 4dfb40d..843ba80 100644
--- a/gas/testsuite/gas/i386/intel-cmps32.d
+++ b/gas/testsuite/gas/i386/intel-cmps32.d
@@ -17,6 +17,15 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[esi\]),(BYTE PTR )?es:\[edi\]
[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[esi\]),(BYTE PTR )?es:\[edi\]
[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[esi\]),(BYTE PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[si\],(BYTE PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 64 67 a6 * cmps +BYTE PTR fs:\[si\],(BYTE PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[si\],(BYTE PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[si\],(BYTE PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[si\],(BYTE PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[si\],(BYTE PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[si\],(BYTE PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[si\],(BYTE PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[si\],(BYTE PTR )?es:\[di\]
[ ]*[a-f0-9]+: 66 a7 * cmps(w *| +WORD PTR (ds:)?\[esi\]),(WORD PTR )?es:\[edi\]
[ ]*[a-f0-9]+: 66 a7 * cmps(w *| +WORD PTR (ds:)?\[esi\]),(WORD PTR )?es:\[edi\]
[ ]*[a-f0-9]+: 64 66 a7 * cmps +WORD PTR fs:\[esi\],(WORD PTR )?es:\[edi\]
@@ -27,6 +36,15 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 66 a7 * cmps(w *| +WORD PTR (ds:)?\[esi\]),(WORD PTR )?es:\[edi\]
[ ]*[a-f0-9]+: 66 a7 * cmps(w *| +WORD PTR (ds:)?\[esi\]),(WORD PTR )?es:\[edi\]
[ ]*[a-f0-9]+: 66 a7 * cmps(w *| +WORD PTR (ds:)?\[esi\]),(WORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 66 a7 * cmps +WORD PTR (ds:)?\[si\],(WORD PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 64 67 66 a7 * cmps +WORD PTR fs:\[si\],(WORD PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 66 a7 * cmps +WORD PTR (ds:)?\[si\],(WORD PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 66 a7 * cmps +WORD PTR (ds:)?\[si\],(WORD PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 66 a7 * cmps +WORD PTR (ds:)?\[si\],(WORD PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 66 a7 * cmps +WORD PTR (ds:)?\[si\],(WORD PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 66 a7 * cmps +WORD PTR (ds:)?\[si\],(WORD PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 66 a7 * cmps +WORD PTR (ds:)?\[si\],(WORD PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 66 a7 * cmps +WORD PTR (ds:)?\[si\],(WORD PTR )?es:\[di\]
[ ]*[a-f0-9]+: a7 * cmps(d *| +DWORD PTR (ds:)?\[esi\]),(DWORD PTR )?es:\[edi\]
[ ]*[a-f0-9]+: a7 * cmps(d *| +DWORD PTR (ds:)?\[esi\]),(DWORD PTR )?es:\[edi\]
[ ]*[a-f0-9]+: 64 a7 * cmps +DWORD PTR fs:?\[esi\],(DWORD PTR )?es:\[edi\]
@@ -37,4 +55,13 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: a7 * cmps(d *| +DWORD PTR (ds:)?\[esi\]),(DWORD PTR )?es:\[edi\]
[ ]*[a-f0-9]+: a7 * cmps(d *| +DWORD PTR (ds:)?\[esi\]),(DWORD PTR )?es:\[edi\]
[ ]*[a-f0-9]+: a7 * cmps(d *| +DWORD PTR (ds:)?\[esi\]),(DWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 a7 * cmps +DWORD PTR (ds:)?\[si\],(DWORD PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 64 67 a7 * cmps +DWORD PTR fs:?\[si\],(DWORD PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 a7 * cmps +DWORD PTR (ds:)?\[si\],(DWORD PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 a7 * cmps +DWORD PTR (ds:)?\[si\],(DWORD PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 a7 * cmps +DWORD PTR (ds:)?\[si\],(DWORD PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 a7 * cmps +DWORD PTR (ds:)?\[si\],(DWORD PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 a7 * cmps +DWORD PTR (ds:)?\[si\],(DWORD PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 a7 * cmps +DWORD PTR (ds:)?\[si\],(DWORD PTR )?es:\[di\]
+[ ]*[a-f0-9]+: 67 a7 * cmps +DWORD PTR (ds:)?\[si\],(DWORD PTR )?es:\[di\]
#pass
diff --git a/gas/testsuite/gas/i386/intel-cmps64.d b/gas/testsuite/gas/i386/intel-cmps64.d
index e8590c3..2a79197 100644
--- a/gas/testsuite/gas/i386/intel-cmps64.d
+++ b/gas/testsuite/gas/i386/intel-cmps64.d
@@ -17,6 +17,15 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[esi\],(BYTE PTR )?es:\[edi\]
[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[esi\],(BYTE PTR )?es:\[edi\]
[ ]*[a-f0-9]+: 67 a6 * cmps +BYTE PTR (ds:)?\[esi\],(BYTE PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[rsi\],(BYTE PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: 64 a6 * cmps +BYTE PTR fs:\[rsi\],(BYTE PTR )?es:\[rdi\]
+[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[rsi\],(BYTE PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[rsi\],(BYTE PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[rsi\],(BYTE PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[rsi\],(BYTE PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[rsi\],(BYTE PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[rsi\],(BYTE PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: a6 * cmps(b *| +BYTE PTR (ds:)?\[rsi\],(BYTE PTR )?es:\[rdi\])
[ ]*[a-f0-9]+: 66 a7 * cmps(w *| +WORD PTR (ds:)?\[rsi\]),(WORD PTR )?es:\[rdi\]
[ ]*[a-f0-9]+: 67 66 a7 * cmps +WORD PTR (ds:)?\[esi\],(WORD PTR )?es:\[edi\]
[ ]*[a-f0-9]+: 64 67 66 a7 * cmps +WORD PTR fs:\[esi\],(WORD PTR )?es:\[edi\]
@@ -27,6 +36,15 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 67 66 a7 * cmps +WORD PTR (ds:)?\[esi\],(WORD PTR )?es:\[edi\]
[ ]*[a-f0-9]+: 67 66 a7 * cmps +WORD PTR (ds:)?\[esi\],(WORD PTR )?es:\[edi\]
[ ]*[a-f0-9]+: 67 66 a7 * cmps +WORD PTR (ds:)?\[esi\],(WORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 66 a7 * cmps(w *| +WORD PTR (ds:)?\[rsi\],(WORD PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: 64 66 a7 * cmps +WORD PTR fs:\[rsi\],(WORD PTR )?es:\[rdi\]
+[ ]*[a-f0-9]+: 66 a7 * cmps(w *| +WORD PTR (ds:)?\[rsi\],(WORD PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: 66 a7 * cmps(w *| +WORD PTR (ds:)?\[rsi\],(WORD PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: 66 a7 * cmps(w *| +WORD PTR (ds:)?\[rsi\],(WORD PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: 66 a7 * cmps(w *| +WORD PTR (ds:)?\[rsi\],(WORD PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: 66 a7 * cmps(w *| +WORD PTR (ds:)?\[rsi\],(WORD PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: 66 a7 * cmps(w *| +WORD PTR (ds:)?\[rsi\],(WORD PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: 66 a7 * cmps(w *| +WORD PTR (ds:)?\[rsi\],(WORD PTR )?es:\[rdi\])
[ ]*[a-f0-9]+: a7 * cmps(d *| +DWORD PTR (ds:)?\[rsi\]),(DWORD PTR )?es:\[rdi\]
[ ]*[a-f0-9]+: 67 a7 * cmps +DWORD PTR (ds:)?\[esi\],(DWORD PTR )?es:\[edi\]
[ ]*[a-f0-9]+: 64 67 a7 * cmps +DWORD PTR fs:\[esi\],(DWORD PTR )?es:\[edi\]
@@ -37,6 +55,15 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 67 a7 * cmps +DWORD PTR (ds:)?\[esi\],(DWORD PTR )?es:\[edi\]
[ ]*[a-f0-9]+: 67 a7 * cmps +DWORD PTR (ds:)?\[esi\],(DWORD PTR )?es:\[edi\]
[ ]*[a-f0-9]+: 67 a7 * cmps +DWORD PTR (ds:)?\[esi\],(DWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: a7 * cmps(d *| +DWORD PTR (ds:)?\[rsi\],(DWORD PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: 64 a7 * cmps +DWORD PTR fs:\[rsi\],(DWORD PTR )?es:\[rdi\]
+[ ]*[a-f0-9]+: a7 * cmps(d *| +DWORD PTR (ds:)?\[rsi\],(DWORD PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: a7 * cmps(d *| +DWORD PTR (ds:)?\[rsi\],(DWORD PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: a7 * cmps(d *| +DWORD PTR (ds:)?\[rsi\],(DWORD PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: a7 * cmps(d *| +DWORD PTR (ds:)?\[rsi\],(DWORD PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: a7 * cmps(d *| +DWORD PTR (ds:)?\[rsi\],(DWORD PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: a7 * cmps(d *| +DWORD PTR (ds:)?\[rsi\],(DWORD PTR )?es:\[rdi\])
+[ ]*[a-f0-9]+: a7 * cmps(d *| +DWORD PTR (ds:)?\[rsi\],(DWORD PTR )?es:\[rdi\])
[ ]*[a-f0-9]+: 48 a7 * cmps(q *| +QWORD PTR (ds:)?\[rsi\]),(QWORD PTR )?es:\[rdi\]
[ ]*[a-f0-9]+: 48 a7 * cmps(q *| +QWORD PTR (ds:)?\[rsi\]),(QWORD PTR )?es:\[rdi\]
[ ]*[a-f0-9]+: 64 48 a7 * cmps +QWORD PTR fs:?\[rsi\],(QWORD PTR )?es:\[rdi\]
@@ -47,4 +74,13 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 48 a7 * cmps(q *| +QWORD PTR (ds:)?\[rsi\]),(QWORD PTR )?es:\[rdi\]
[ ]*[a-f0-9]+: 48 a7 * cmps(q *| +QWORD PTR (ds:)?\[rsi\]),(QWORD PTR )?es:\[rdi\]
[ ]*[a-f0-9]+: 48 a7 * cmps(q *| +QWORD PTR (ds:)?\[rsi\]),(QWORD PTR )?es:\[rdi\]
+[ ]*[a-f0-9]+: 67 48 a7 * cmps +QWORD PTR (ds:)?\[esi\],(QWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 64 67 48 a7 * cmps +QWORD PTR fs:?\[esi\],(QWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 48 a7 * cmps +QWORD PTR (ds:)?\[esi\],(QWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 48 a7 * cmps +QWORD PTR (ds:)?\[esi\],(QWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 48 a7 * cmps +QWORD PTR (ds:)?\[esi\],(QWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 48 a7 * cmps +QWORD PTR (ds:)?\[esi\],(QWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 48 a7 * cmps +QWORD PTR (ds:)?\[esi\],(QWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 48 a7 * cmps +QWORD PTR (ds:)?\[esi\],(QWORD PTR )?es:\[edi\]
+[ ]*[a-f0-9]+: 67 48 a7 * cmps +QWORD PTR (ds:)?\[esi\],(QWORD PTR )?es:\[edi\]
#pass
diff --git a/gas/testsuite/gas/i386/intel-movs.s b/gas/testsuite/gas/i386/intel-movs.s
index ba54dec..5fa7b8d 100644
--- a/gas/testsuite/gas/i386/intel-movs.s
+++ b/gas/testsuite/gas/i386/intel-movs.s
@@ -1,8 +1,20 @@
.text
.intel_syntax noprefix
+.ifdef x86_16
+ .code16
+.endif
+
+.ifdef x86_64
+ .equ adi, rdi
+ .equ asi, rsi
+.else
+ .equ adi, di
+ .equ asi, si
+.endif
movs:
movsb
+
movsb es:[edi], [esi]
movsb es:[edi], fs:[esi]
movsb [edi], [esi]
@@ -13,7 +25,18 @@ movs:
movs es:[edi], byte ptr [esi]
movs byte ptr es:[edi], byte ptr [esi]
+ movsb es:[adi], [asi]
+ movsb es:[adi], fs:[asi]
+ movsb [adi], [asi]
+ movsb byte ptr es:[adi], [asi]
+ movsb es:[adi], byte ptr [asi]
+ movsb byte ptr es:[adi], byte ptr [asi]
+ movs byte ptr es:[adi], [asi]
+ movs es:[adi], byte ptr [asi]
+ movs byte ptr es:[adi], byte ptr [asi]
+
movsw
+
movsw es:[edi], [esi]
movsw es:[edi], fs:[esi]
movsw [edi], [esi]
@@ -24,7 +47,18 @@ movs:
movs es:[edi], word ptr [esi]
movs word ptr es:[edi], word ptr [esi]
+ movsw es:[adi], [asi]
+ movsw es:[adi], fs:[asi]
+ movsw [adi], [asi]
+ movsw word ptr es:[adi], [asi]
+ movsw es:[adi], word ptr [asi]
+ movsw word ptr es:[adi], word ptr [asi]
+ movs word ptr es:[adi], [asi]
+ movs es:[adi], word ptr [asi]
+ movs word ptr es:[adi], word ptr [asi]
+
movsd
+
movsd es:[edi], [esi]
movsd es:[edi], fs:[esi]
movsd [edi], [esi]
@@ -35,8 +69,19 @@ movs:
movs es:[edi], dword ptr [esi]
movs dword ptr es:[edi], dword ptr [esi]
+ movsd es:[adi], [asi]
+ movsd es:[adi], fs:[asi]
+ movsd [adi], [asi]
+ movsd dword ptr es:[adi], [asi]
+ movsd es:[adi], dword ptr [asi]
+ movsd dword ptr es:[adi], dword ptr [asi]
+ movs dword ptr es:[adi], [asi]
+ movs es:[adi], dword ptr [asi]
+ movs dword ptr es:[adi], dword ptr [asi]
+
.ifdef x86_64
movsq
+
movsq es:[rdi], [rsi]
movsq es:[rdi], fs:[rsi]
movsq [rdi], [rsi]
@@ -46,4 +91,14 @@ movs:
movs qword ptr es:[rdi], [rsi]
movs es:[rdi], qword ptr [rsi]
movs qword ptr es:[rdi], qword ptr [rsi]
+
+ movsq es:[edi], [esi]
+ movsq es:[edi], fs:[esi]
+ movsq [edi], [esi]
+ movsq qword ptr es:[edi], [esi]
+ movsq es:[edi], qword ptr [esi]
+ movsq qword ptr es:[edi], qword ptr [esi]
+ movs qword ptr es:[edi], [esi]
+ movs es:[edi], qword ptr [esi]
+ movs qword ptr es:[edi], qword ptr [esi]
.endif
diff --git a/gas/testsuite/gas/i386/intel-movs16.d b/gas/testsuite/gas/i386/intel-movs16.d
new file mode 100644
index 0000000..7ed6edd
--- /dev/null
+++ b/gas/testsuite/gas/i386/intel-movs16.d
@@ -0,0 +1,68 @@
+#as: --defsym x86_16=1
+#objdump: -dMintel -Mi8086
+#source: intel-movs.s
+#name: x86 Intel movs (16-bit code)
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <movs>:
+[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[di\],(BYTE PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[edi\],(BYTE PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 64 67 a4 * movs +BYTE PTR es:\[edi\],(BYTE PTR )?fs:\[esi\]
+[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[edi\],(BYTE PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[edi\],(BYTE PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[edi\],(BYTE PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[edi\],(BYTE PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[edi\],(BYTE PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[edi\],(BYTE PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[edi\],(BYTE PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[di\],(BYTE PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: 64 a4 * movs +BYTE PTR es:\[di\],(BYTE PTR )?fs:\[si\]
+[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[di\],(BYTE PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[di\],(BYTE PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[di\],(BYTE PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[di\],(BYTE PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[di\],(BYTE PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[di\],(BYTE PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[di\],(BYTE PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: a5 * movs(w *| +WORD PTR es:\[di\],(WORD PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: 67 a5 * movs +WORD PTR es:\[edi\],(WORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 64 67 a5 * movs +WORD PTR es:\[edi\],(WORD PTR )?fs:\[esi\]
+[ ]*[a-f0-9]+: 67 a5 * movs +WORD PTR es:\[edi\],(WORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 a5 * movs +WORD PTR es:\[edi\],(WORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 a5 * movs +WORD PTR es:\[edi\],(WORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 a5 * movs +WORD PTR es:\[edi\],(WORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 a5 * movs +WORD PTR es:\[edi\],(WORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 a5 * movs +WORD PTR es:\[edi\],(WORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 a5 * movs +WORD PTR es:\[edi\],(WORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: a5 * movs(w *| +WORD PTR es:\[di\],(WORD PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: 64 a5 * movs +WORD PTR es:\[di\],(WORD PTR )?fs:\[si\]
+[ ]*[a-f0-9]+: a5 * movs(w *| +WORD PTR es:\[di\],(WORD PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: a5 * movs(w *| +WORD PTR es:\[di\],(WORD PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: a5 * movs(w *| +WORD PTR es:\[di\],(WORD PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: a5 * movs(w *| +WORD PTR es:\[di\],(WORD PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: a5 * movs(w *| +WORD PTR es:\[di\],(WORD PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: a5 * movs(w *| +WORD PTR es:\[di\],(WORD PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: a5 * movs(w *| +WORD PTR es:\[di\],(WORD PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: 66 a5 * movs(d *| +DWORD PTR es:\[di\],(DWORD PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: 67 66 a5 * movs +DWORD PTR es:\[edi\],(DWORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 64 67 66 a5 * movs +DWORD PTR es:\[edi\],(DWORD PTR )?fs:?\[esi\]
+[ ]*[a-f0-9]+: 67 66 a5 * movs +DWORD PTR es:\[edi\],(DWORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 66 a5 * movs +DWORD PTR es:\[edi\],(DWORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 66 a5 * movs +DWORD PTR es:\[edi\],(DWORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 66 a5 * movs +DWORD PTR es:\[edi\],(DWORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 66 a5 * movs +DWORD PTR es:\[edi\],(DWORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 66 a5 * movs +DWORD PTR es:\[edi\],(DWORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 66 a5 * movs +DWORD PTR es:\[edi\],(DWORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 66 a5 * movs(d *| +DWORD PTR es:\[di\],(DWORD PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: 64 66 a5 * movs +DWORD PTR es:\[di\],(DWORD PTR )?fs:?\[si\]
+[ ]*[a-f0-9]+: 66 a5 * movs(d *| +DWORD PTR es:\[di\],(DWORD PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: 66 a5 * movs(d *| +DWORD PTR es:\[di\],(DWORD PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: 66 a5 * movs(d *| +DWORD PTR es:\[di\],(DWORD PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: 66 a5 * movs(d *| +DWORD PTR es:\[di\],(DWORD PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: 66 a5 * movs(d *| +DWORD PTR es:\[di\],(DWORD PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: 66 a5 * movs(d *| +DWORD PTR es:\[di\],(DWORD PTR )?(ds:)?\[si\])
+[ ]*[a-f0-9]+: 66 a5 * movs(d *| +DWORD PTR es:\[di\],(DWORD PTR )?(ds:)?\[si\])
+#pass
diff --git a/gas/testsuite/gas/i386/intel-movs32.d b/gas/testsuite/gas/i386/intel-movs32.d
index f173148..71449bb 100644
--- a/gas/testsuite/gas/i386/intel-movs32.d
+++ b/gas/testsuite/gas/i386/intel-movs32.d
@@ -17,6 +17,15 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[edi\],(BYTE PTR )?(ds:)?\[esi\])
[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[edi\],(BYTE PTR )?(ds:)?\[esi\])
[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[edi\],(BYTE PTR )?(ds:)?\[esi\])
+[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[di\],(BYTE PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 64 67 a4 * movs +BYTE PTR es:\[di\],(BYTE PTR )?fs:\[si\]
+[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[di\],(BYTE PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[di\],(BYTE PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[di\],(BYTE PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[di\],(BYTE PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[di\],(BYTE PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[di\],(BYTE PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[di\],(BYTE PTR )?(ds:)?\[si\]
[ ]*[a-f0-9]+: 66 a5 * movs(w *| +WORD PTR es:\[edi\],(WORD PTR )?(ds:)?\[esi\])
[ ]*[a-f0-9]+: 66 a5 * movs(w *| +WORD PTR es:\[edi\],(WORD PTR )?(ds:)?\[esi\])
[ ]*[a-f0-9]+: 64 66 a5 * movs +WORD PTR es:\[edi\],(WORD PTR )?fs:\[esi\]
@@ -27,6 +36,15 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 66 a5 * movs(w *| +WORD PTR es:\[edi\],(WORD PTR )?(ds:)?\[esi\])
[ ]*[a-f0-9]+: 66 a5 * movs(w *| +WORD PTR es:\[edi\],(WORD PTR )?(ds:)?\[esi\])
[ ]*[a-f0-9]+: 66 a5 * movs(w *| +WORD PTR es:\[edi\],(WORD PTR )?(ds:)?\[esi\])
+[ ]*[a-f0-9]+: 67 66 a5 * movs +WORD PTR es:\[di\],(WORD PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 64 67 66 a5 * movs +WORD PTR es:\[di\],(WORD PTR )?fs:\[si\]
+[ ]*[a-f0-9]+: 67 66 a5 * movs +WORD PTR es:\[di\],(WORD PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 67 66 a5 * movs +WORD PTR es:\[di\],(WORD PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 67 66 a5 * movs +WORD PTR es:\[di\],(WORD PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 67 66 a5 * movs +WORD PTR es:\[di\],(WORD PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 67 66 a5 * movs +WORD PTR es:\[di\],(WORD PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 67 66 a5 * movs +WORD PTR es:\[di\],(WORD PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 67 66 a5 * movs +WORD PTR es:\[di\],(WORD PTR )?(ds:)?\[si\]
[ ]*[a-f0-9]+: a5 * movs(d *| +DWORD PTR es:\[edi\],(DWORD PTR )?(ds:)?\[esi\])
[ ]*[a-f0-9]+: a5 * movs(d *| +DWORD PTR es:\[edi\],(DWORD PTR )?(ds:)?\[esi\])
[ ]*[a-f0-9]+: 64 a5 * movs +DWORD PTR es:\[edi\],(DWORD PTR )?fs:?\[esi\]
@@ -37,4 +55,13 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: a5 * movs(d *| +DWORD PTR es:\[edi\],(DWORD PTR )?(ds:)?\[esi\])
[ ]*[a-f0-9]+: a5 * movs(d *| +DWORD PTR es:\[edi\],(DWORD PTR )?(ds:)?\[esi\])
[ ]*[a-f0-9]+: a5 * movs(d *| +DWORD PTR es:\[edi\],(DWORD PTR )?(ds:)?\[esi\])
+[ ]*[a-f0-9]+: 67 a5 * movs +DWORD PTR es:\[di\],(DWORD PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 64 67 a5 * movs +DWORD PTR es:\[di\],(DWORD PTR )?fs:?\[si\]
+[ ]*[a-f0-9]+: 67 a5 * movs +DWORD PTR es:\[di\],(DWORD PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 67 a5 * movs +DWORD PTR es:\[di\],(DWORD PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 67 a5 * movs +DWORD PTR es:\[di\],(DWORD PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 67 a5 * movs +DWORD PTR es:\[di\],(DWORD PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 67 a5 * movs +DWORD PTR es:\[di\],(DWORD PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 67 a5 * movs +DWORD PTR es:\[di\],(DWORD PTR )?(ds:)?\[si\]
+[ ]*[a-f0-9]+: 67 a5 * movs +DWORD PTR es:\[di\],(DWORD PTR )?(ds:)?\[si\]
#pass
diff --git a/gas/testsuite/gas/i386/intel-movs64.d b/gas/testsuite/gas/i386/intel-movs64.d
index 832239c..d62ae07 100644
--- a/gas/testsuite/gas/i386/intel-movs64.d
+++ b/gas/testsuite/gas/i386/intel-movs64.d
@@ -17,6 +17,15 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[edi\],(BYTE PTR )?(ds:)?\[esi\]
[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[edi\],(BYTE PTR )?(ds:)?\[esi\]
[ ]*[a-f0-9]+: 67 a4 * movs +BYTE PTR es:\[edi\],(BYTE PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[rdi\],(BYTE PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: 64 a4 * movs +BYTE PTR es:\[rdi\],(BYTE PTR )?fs:\[rsi\]
+[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[rdi\],(BYTE PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[rdi\],(BYTE PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[rdi\],(BYTE PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[rdi\],(BYTE PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[rdi\],(BYTE PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[rdi\],(BYTE PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: a4 * movs(b *| +BYTE PTR es:\[rdi\],(BYTE PTR )?(ds:)?\[rsi\])
[ ]*[a-f0-9]+: 66 a5 * movs(w *| +WORD PTR es:\[rdi\],(WORD PTR )?(ds:)?\[rsi\])
[ ]*[a-f0-9]+: 67 66 a5 * movs +WORD PTR es:\[edi\],(WORD PTR )?(ds:)?\[esi\]
[ ]*[a-f0-9]+: 64 67 66 a5 * movs +WORD PTR es:\[edi\],(WORD PTR )?fs:\[esi\]
@@ -27,6 +36,15 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 67 66 a5 * movs +WORD PTR es:\[edi\],(WORD PTR )?(ds:)?\[esi\]
[ ]*[a-f0-9]+: 67 66 a5 * movs +WORD PTR es:\[edi\],(WORD PTR )?(ds:)?\[esi\]
[ ]*[a-f0-9]+: 67 66 a5 * movs +WORD PTR es:\[edi\],(WORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 66 a5 * movs(w *| +WORD PTR es:\[rdi\],(WORD PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: 64 66 a5 * movs +WORD PTR es:\[rdi\],(WORD PTR )?fs:\[rsi\]
+[ ]*[a-f0-9]+: 66 a5 * movs(w *| +WORD PTR es:\[rdi\],(WORD PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: 66 a5 * movs(w *| +WORD PTR es:\[rdi\],(WORD PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: 66 a5 * movs(w *| +WORD PTR es:\[rdi\],(WORD PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: 66 a5 * movs(w *| +WORD PTR es:\[rdi\],(WORD PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: 66 a5 * movs(w *| +WORD PTR es:\[rdi\],(WORD PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: 66 a5 * movs(w *| +WORD PTR es:\[rdi\],(WORD PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: 66 a5 * movs(w *| +WORD PTR es:\[rdi\],(WORD PTR )?(ds:)?\[rsi\])
[ ]*[a-f0-9]+: a5 * movs(d *| +DWORD PTR es:\[rdi\],(DWORD PTR )?(ds:)?\[rsi\])
[ ]*[a-f0-9]+: 67 a5 * movs +DWORD PTR es:\[edi\],(DWORD PTR )?(ds:)?\[esi\]
[ ]*[a-f0-9]+: 64 67 a5 * movs +DWORD PTR es:\[edi\],(DWORD PTR )?fs:\[esi\]
@@ -37,6 +55,15 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 67 a5 * movs +DWORD PTR es:\[edi\],(DWORD PTR )?(ds:)?\[esi\]
[ ]*[a-f0-9]+: 67 a5 * movs +DWORD PTR es:\[edi\],(DWORD PTR )?(ds:)?\[esi\]
[ ]*[a-f0-9]+: 67 a5 * movs +DWORD PTR es:\[edi\],(DWORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: a5 * movs(d *| +DWORD PTR es:\[rdi\],(DWORD PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: 64 a5 * movs +DWORD PTR es:\[rdi\],(DWORD PTR )?fs:\[rsi\]
+[ ]*[a-f0-9]+: a5 * movs(d *| +DWORD PTR es:\[rdi\],(DWORD PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: a5 * movs(d *| +DWORD PTR es:\[rdi\],(DWORD PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: a5 * movs(d *| +DWORD PTR es:\[rdi\],(DWORD PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: a5 * movs(d *| +DWORD PTR es:\[rdi\],(DWORD PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: a5 * movs(d *| +DWORD PTR es:\[rdi\],(DWORD PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: a5 * movs(d *| +DWORD PTR es:\[rdi\],(DWORD PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: a5 * movs(d *| +DWORD PTR es:\[rdi\],(DWORD PTR )?(ds:)?\[rsi\])
[ ]*[a-f0-9]+: 48 a5 * movs(q *| +QWORD PTR es:\[rdi\],(QWORD PTR )?(ds:)?\[rsi\])
[ ]*[a-f0-9]+: 48 a5 * movs(q *| +QWORD PTR es:\[rdi\],(QWORD PTR )?(ds:)?\[rsi\])
[ ]*[a-f0-9]+: 64 48 a5 * movs +QWORD PTR es:\[rdi\],(QWORD PTR )?fs:?\[rsi\]
@@ -47,4 +74,13 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 48 a5 * movs(q *| +QWORD PTR es:\[rdi\],(QWORD PTR )?(ds:)?\[rsi\])
[ ]*[a-f0-9]+: 48 a5 * movs(q *| +QWORD PTR es:\[rdi\],(QWORD PTR )?(ds:)?\[rsi\])
[ ]*[a-f0-9]+: 48 a5 * movs(q *| +QWORD PTR es:\[rdi\],(QWORD PTR )?(ds:)?\[rsi\])
+[ ]*[a-f0-9]+: 67 48 a5 * movs +QWORD PTR es:\[edi\],(QWORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 64 67 48 a5 * movs +QWORD PTR es:\[edi\],(QWORD PTR )?fs:?\[esi\]
+[ ]*[a-f0-9]+: 67 48 a5 * movs +QWORD PTR es:\[edi\],(QWORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 48 a5 * movs +QWORD PTR es:\[edi\],(QWORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 48 a5 * movs +QWORD PTR es:\[edi\],(QWORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 48 a5 * movs +QWORD PTR es:\[edi\],(QWORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 48 a5 * movs +QWORD PTR es:\[edi\],(QWORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 48 a5 * movs +QWORD PTR es:\[edi\],(QWORD PTR )?(ds:)?\[esi\]
+[ ]*[a-f0-9]+: 67 48 a5 * movs +QWORD PTR es:\[edi\],(QWORD PTR )?(ds:)?\[esi\]
#pass