diff options
author | Joerg Sonnenberger <joerg@bec.de> | 2011-03-18 11:59:40 +0000 |
---|---|---|
committer | Joerg Sonnenberger <joerg@bec.de> | 2011-03-18 11:59:40 +0000 |
commit | 96622aa063435b1de085489f0e3e49b5912c22da (patch) | |
tree | 97599a87d18c63e34dba30d70900f2d9e5f34c3a /test/MC | |
parent | 8902ecb6826d0677c32f1fb9aac41070fee1ac7d (diff) | |
download | external_llvm-96622aa063435b1de085489f0e3e49b5912c22da.zip external_llvm-96622aa063435b1de085489f0e3e49b5912c22da.tar.gz external_llvm-96622aa063435b1de085489f0e3e49b5912c22da.tar.bz2 |
Support explicit argument forms for the X86 string instructions.
For now, only the default segments are supported.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127875 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC')
-rw-r--r-- | test/MC/X86/x86-32.s | 110 | ||||
-rw-r--r-- | test/MC/X86/x86-64.s | 135 |
2 files changed, 245 insertions, 0 deletions
diff --git a/test/MC/X86/x86-32.s b/test/MC/X86/x86-32.s index 9dba652..ad9aee5 100644 --- a/test/MC/X86/x86-32.s +++ b/test/MC/X86/x86-32.s @@ -817,6 +817,116 @@ pshufw $90, %mm4, %mm0 // CHECK: encoding: [0xe0,A] loopnz 0 +// CHECK: outsb # encoding: [0x6e] +// CHECK: outsb +// CHECK: outsb + outsb + outsb %ds:(%esi), %dx + outsb (%esi), %dx + +// CHECK: outsw # encoding: [0x66,0x6f] +// CHECK: outsw +// CHECK: outsw + outsw + outsw %ds:(%esi), %dx + outsw (%esi), %dx + +// CHECK: outsl # encoding: [0x6f] +// CHECK: outsl + outsl + outsl %ds:(%esi), %dx + outsl (%esi), %dx + +// CHECK: insb # encoding: [0x6c] +// CHECK: insb + insb + insb %dx, %es:(%edi) + +// CHECK: insw # encoding: [0x66,0x6d] +// CHECK: insw + insw + insw %dx, %es:(%edi) + +// CHECK: insl # encoding: [0x6d] +// CHECK: insl + insl + insl %dx, %es:(%edi) + +// CHECK: movsb # encoding: [0xa4] +// CHECK: movsb +// CHECK: movsb + movsb + movsb %ds:(%esi), %es:(%edi) + movsb (%esi), %es:(%edi) + +// CHECK: movsw # encoding: [0x66,0xa5] +// CHECK: movsw +// CHECK: movsw + movsw + movsw %ds:(%esi), %es:(%edi) + movsw (%esi), %es:(%edi) + +// CHECK: movsl # encoding: [0xa5] +// CHECK: movsl +// CHECK: movsl + movsl + movsl %ds:(%esi), %es:(%edi) + movsl (%esi), %es:(%edi) + +// CHECK: lodsb # encoding: [0xac] +// CHECK: lodsb +// CHECK: lodsb +// CHECK: lodsb +// CHECK: lodsb + lodsb + lodsb %ds:(%esi), %al + lodsb (%esi), %al + lods %ds:(%esi), %al + lods (%esi), %al + +// CHECK: lodsw # encoding: [0x66,0xad] +// CHECK: lodsw +// CHECK: lodsw +// CHECK: lodsw +// CHECK: lodsw + lodsw + lodsw %ds:(%esi), %ax + lodsw (%esi), %ax + lods %ds:(%esi), %ax + lods (%esi), %ax + +// CHECK: lodsl # encoding: [0xad] +// CHECK: lodsl +// CHECK: lodsl +// CHECK: lodsl +// CHECK: lodsl + lodsl + lodsl %ds:(%esi), %eax + lodsl (%esi), %eax + lods %ds:(%esi), %eax + lods (%esi), %eax + +// CHECK: stosb # encoding: [0xaa] +// CHECK: stosb +// CHECK: stosb + stosb + stosb %al, %es:(%edi) + stos %al, %es:(%edi) + +// CHECK: stosw # encoding: [0x66,0xab] +// CHECK: stosw +// CHECK: stosw + stosw + stosw %ax, %es:(%edi) + stos %ax, %es:(%edi) + +// CHECK: stosl # encoding: [0xab] +// CHECK: stosl +// CHECK: stosl + stosl + stosl %eax, %es:(%edi) + stos %eax, %es:(%edi) + // CHECK: strw // CHECK: encoding: [0x66,0x0f,0x00,0xc8] str %ax diff --git a/test/MC/X86/x86-64.s b/test/MC/X86/x86-64.s index fe056be..1d41d5b 100644 --- a/test/MC/X86/x86-64.s +++ b/test/MC/X86/x86-64.s @@ -974,6 +974,141 @@ xsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1] // CHECK: encoding: [0xe0,A] loopnz 0 +// CHECK: outsb # encoding: [0x6e] +// CHECK: outsb +// CHECK: outsb + outsb + outsb %ds:(%rsi), %dx + outsb (%rsi), %dx + +// CHECK: outsw # encoding: [0x66,0x6f] +// CHECK: outsw +// CHECK: outsw + outsw + outsw %ds:(%rsi), %dx + outsw (%rsi), %dx + +// CHECK: outsl # encoding: [0x6f] +// CHECK: outsl + outsl + outsl %ds:(%rsi), %dx + outsl (%rsi), %dx + +// CHECK: insb # encoding: [0x6c] +// CHECK: insb + insb + insb %dx, %es:(%rdi) + +// CHECK: insw # encoding: [0x66,0x6d] +// CHECK: insw + insw + insw %dx, %es:(%rdi) + +// CHECK: insl # encoding: [0x6d] +// CHECK: insl + insl + insl %dx, %es:(%rdi) + +// CHECK: movsb # encoding: [0xa4] +// CHECK: movsb +// CHECK: movsb + movsb + movsb %ds:(%rsi), %es:(%rdi) + movsb (%rsi), %es:(%rdi) + +// CHECK: movsw # encoding: [0x66,0xa5] +// CHECK: movsw +// CHECK: movsw + movsw + movsw %ds:(%rsi), %es:(%rdi) + movsw (%rsi), %es:(%rdi) + +// CHECK: movsl # encoding: [0xa5] +// CHECK: movsl +// CHECK: movsl + movsl + movsl %ds:(%rsi), %es:(%rdi) + movsl (%rsi), %es:(%rdi) + +// CHECK: movsq # encoding: [0x48,0xa5] +// CHECK: movsq +// CHECK: movsq + movsq + movsq %ds:(%rsi), %es:(%rdi) + movsq (%rsi), %es:(%rdi) + +// CHECK: lodsb # encoding: [0xac] +// CHECK: lodsb +// CHECK: lodsb +// CHECK: lodsb +// CHECK: lodsb + lodsb + lodsb %ds:(%rsi), %al + lodsb (%rsi), %al + lods %ds:(%rsi), %al + lods (%rsi), %al + +// CHECK: lodsw # encoding: [0x66,0xad] +// CHECK: lodsw +// CHECK: lodsw +// CHECK: lodsw +// CHECK: lodsw + lodsw + lodsw %ds:(%rsi), %ax + lodsw (%rsi), %ax + lods %ds:(%rsi), %ax + lods (%rsi), %ax + +// CHECK: lodsl # encoding: [0xad] +// CHECK: lodsl +// CHECK: lodsl +// CHECK: lodsl +// CHECK: lodsl + lodsl + lodsl %ds:(%rsi), %eax + lodsl (%rsi), %eax + lods %ds:(%rsi), %eax + lods (%rsi), %eax + +// CHECK: lodsq # encoding: [0x48,0xad] +// CHECK: lodsq +// CHECK: lodsq +// CHECK: lodsq +// CHECK: lodsq + lodsq + lodsq %ds:(%rsi), %rax + lodsq (%rsi), %rax + lods %ds:(%rsi), %rax + lods (%rsi), %rax + +// CHECK: stosb # encoding: [0xaa] +// CHECK: stosb +// CHECK: stosb + stosb + stosb %al, %es:(%rdi) + stos %al, %es:(%rdi) + +// CHECK: stosw # encoding: [0x66,0xab] +// CHECK: stosw +// CHECK: stosw + stosw + stosw %ax, %es:(%rdi) + stos %ax, %es:(%rdi) + +// CHECK: stosl # encoding: [0xab] +// CHECK: stosl +// CHECK: stosl + stosl + stosl %eax, %es:(%rdi) + stos %eax, %es:(%rdi) + +// CHECK: stosq # encoding: [0x48,0xab] +// CHECK: stosq +// CHECK: stosq + stosq + stosq %rax, %es:(%rdi) + stos %rax, %es:(%rdi) + // CHECK: strw // CHECK: encoding: [0x66,0x0f,0x00,0xc8] str %ax |