This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH v2 1/2] x86/Intel: extend MOVSD/CMPSD testsuite coverage
- From: Jan Beulich <jbeulich at suse dot com>
- To: "binutils at sourceware dot org" <binutils at sourceware dot org>
- Cc: "H.J. Lu" <hjl dot tools at gmail dot com>
- Date: Thu, 14 Nov 2019 08:20:02 +0100
- Subject: [PATCH v2 1/2] x86/Intel: extend MOVSD/CMPSD testsuite coverage
- References: <97ff7b2b-2c13-0cbf-b6f1-f824e50bddef@suse.com>
This is still in the context of PR/gas 25167.
gas/
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.
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -532,7 +532,9 @@ if [expr ([istarget "i*86-*-*"] || [ist
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"
--- 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
--- /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
--- 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
--- 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
--- 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
--- /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
--- 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
--- 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