From: Jan Beulich Date: Thu, 14 Nov 2019 07:44:57 +0000 (+0100) Subject: x86/Intel: extend MOVSD/CMPSD testsuite coverage X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=b15384304be0ce0ee2e184933b666875e296c31e;p=deliverable%2Fbinutils-gdb.git x86/Intel: extend MOVSD/CMPSD testsuite coverage This is still in the context of PR/gas 25167. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 00943667ad..a442e2a71e 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,15 @@ +2019-11-14 Jan Beulich + + * 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 * 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 4e7f8b982d..f4c7ce75e9 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 6703777552..4d518c6f5b 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 0000000000..5c9ae35a6c --- /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+ : +[ ]*[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 4dfb40da8c..843ba80fc9 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 e8590c3c56..2a79197df0 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 ba54deca07..5fa7b8d317 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 0000000000..7ed6edd37e --- /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+ : +[ ]*[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 f173148124..71449bb495 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 832239c45b..d62ae07838 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