brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.7 KiB · c425ba8 Raw
249 lines · plain
1// RUN: not llvm-mc -triple x86_64-unknown-unknown --show-encoding %s 2> %t.err | FileCheck --check-prefix=X86-64 %s2// RUN: FileCheck --input-file=%t.err %s --check-prefix=ERR64 --implicit-check-not=error:3// RUN: not llvm-mc -triple i386-unknown-unknown --show-encoding %s 2> %t.err | FileCheck --check-prefix=X86-32 %s4// RUN: FileCheck --check-prefix=ERR32 < %t.err %s5// RUN: not llvm-mc -triple i386-unknown-unknown-code16 --show-encoding %s 2> %t.err | FileCheck --check-prefix=X86-16 %s6// RUN: FileCheck --check-prefix=ERR16 < %t.err %s7 8lodsb9// X86-64: lodsb (%rsi), %al # encoding: [0xac]10// X86-32: lodsb (%esi), %al # encoding: [0xac]11// X86-16: lodsb (%si), %al # encoding: [0xac]12 13lodsb (%rsi), %al14// X86-64: lodsb (%rsi), %al # encoding: [0xac]15// ERR32: 64-bit16// ERR16: 64-bit17 18lodsb (%esi), %al19// X86-64: lodsb (%esi), %al # encoding: [0x67,0xac]20// X86-32: lodsb (%esi), %al # encoding: [0xac]21// X86-16: lodsb (%esi), %al # encoding: [0x67,0xac]22 23lodsb (%si), %al24// ERR64: [[#@LINE-1]]:[[#]]: error: invalid 16-bit base register25// X86-32: lodsb (%si), %al # encoding: [0x67,0xac]26// X86-16: lodsb (%si), %al # encoding: [0xac]27 28lodsl %gs:(%esi)29// X86-64: lodsl %gs:(%esi), %eax # encoding: [0x67,0x65,0xad]30// X86-32: lodsl %gs:(%esi), %eax # encoding: [0x65,0xad]31// X86-16: lodsl %gs:(%esi), %eax # encoding: [0x67,0x65,0x66,0xad]32 33lodsl (%edi), %eax34// ERR64: [[#@LINE-1]]:[[#]]: error: invalid operand35// ERR32: invalid operand36// ERR16: invalid operand37 38lodsl 44(%edi), %eax39// ERR64: [[#@LINE-1]]:[[#]]: error: invalid operand40// ERR32: invalid operand41// ERR16: invalid operand42 43lods (%esi), %ax44// X86-64: lodsw (%esi), %ax # encoding: [0x67,0x66,0xad]45// X86-32: lodsw (%esi), %ax # encoding: [0x66,0xad]46// X86-16: lodsw (%esi), %ax # encoding: [0x67,0xad]47 48stosw49// X86-64: stosw %ax, %es:(%rdi) # encoding: [0x66,0xab]50// X86-32: stosw %ax, %es:(%edi) # encoding: [0x66,0xab]51// X86-16: stosw %ax, %es:(%di) # encoding: [0xab]52 53stos %eax, (%edi)54// X86-64: stosl %eax, %es:(%edi) # encoding: [0x67,0xab]55// X86-32: stosl %eax, %es:(%edi) # encoding: [0xab]56// X86-16: stosl %eax, %es:(%edi) # encoding: [0x67,0x66,0xab]57 58stosb %al, %fs:(%edi)59// ERR64: [[#@LINE-1]]:[[#]]: error: invalid operand for instruction60// ERR32: invalid operand for instruction61// ERR16: invalid operand for instruction62 63stosb %al, %es:(%edi)64// X86-64: stosb %al, %es:(%edi) # encoding: [0x67,0xaa]65// X86-32: stosb %al, %es:(%edi) # encoding: [0xaa]66// X86-16: stosb %al, %es:(%edi) # encoding: [0x67,0xaa]67 68stosq69// X86-64: stosq %rax, %es:(%rdi) # encoding: [0x48,0xab]70// ERR32: 64-bit71// ERR16: 64-bit72 73stos %rax, (%edi)74// X86-64: 	stosq %rax, %es:(%edi) # encoding: [0x67,0x48,0xab]75// ERR32: only available in 64-bit mode76// ERR16: only available in 64-bit mode77 78scas %es:(%edi), %al79// X86-64: scasb %es:(%edi), %al # encoding: [0x67,0xae]80// X86-32: scasb %es:(%edi), %al # encoding: [0xae]81// X86-16: scasb %es:(%edi), %al # encoding: [0x67,0xae]82 83scasq %es:(%edi)84// X86-64: scasq %es:(%edi), %rax # encoding: [0x67,0x48,0xaf]85// ERR32: 64-bit86// ERR16: 64-bit87 88scasl %es:(%edi), %al89// ERR64: [[#@LINE-1]]:[[#]]: error: invalid operand90// ERR32: invalid operand91// ERR16: invalid operand92 93scas %es:(%di), %ax94// ERR64: [[#@LINE-1]]:[[#]]: error: invalid 16-bit base register95// X86-16: scasw %es:(%di), %ax # encoding: [0xaf]96// X86-32: scasw %es:(%di), %ax # encoding: [0x67,0x66,0xaf]97 98cmpsb99// X86-64: cmpsb %es:(%rdi), (%rsi) # encoding: [0xa6]100// X86-32: cmpsb %es:(%edi), (%esi) # encoding: [0xa6]101// X86-16: cmpsb %es:(%di), (%si) # encoding: [0xa6]102 103cmpsw (%edi), (%esi)104// X86-64: cmpsw %es:(%edi), (%esi) # encoding: [0x67,0x66,0xa7]105// X86-32: cmpsw %es:(%edi), (%esi) # encoding: [0x66,0xa7]106// X86-16: cmpsw %es:(%edi), (%esi) # encoding: [0x67,0xa7]107 108cmpsb (%di), (%esi)109// ERR64: [[#@LINE-1]]:[[#]]: error: invalid 16-bit base register110// ERR32: mismatching source and destination111// ERR16: mismatching source and destination112 113cmpsl %es:(%edi), %ss:(%esi)114// X86-64: cmpsl %es:(%edi), %ss:(%esi) # encoding: [0x67,0x36,0xa7]115// X86-32: cmpsl %es:(%edi), %ss:(%esi) # encoding: [0x36,0xa7]116// X86-16: cmpsl %es:(%edi), %ss:(%esi) # encoding: [0x67,0x36,0x66,0xa7]117 118cmpsq (%rdi), (%rsi)119// X86-64: cmpsq %es:(%rdi), (%rsi) # encoding: [0x48,0xa7]120// ERR32: 64-bit121// ERR16: 64-bit122 123movsb (%esi), (%edi)124// X86-64: movsb (%esi), %es:(%edi) # encoding: [0x67,0xa4]125// X86-32: movsb (%esi), %es:(%edi) # encoding: [0xa4]126// X86-16: movsb (%esi), %es:(%edi) # encoding: [0x67,0xa4]127 128movsl %gs:(%esi), (%edi)129// X86-64: movsl %gs:(%esi), %es:(%edi) # encoding: [0x67,0x65,0xa5]130// X86-32: movsl %gs:(%esi), %es:(%edi) # encoding: [0x65,0xa5]131// X86-16: movsl %gs:(%esi), %es:(%edi) # encoding: [0x67,0x65,0x66,0xa5]132 133outsb134// X86-64: outsb (%rsi), %dx # encoding: [0x6e]135// X86-32: outsb (%esi), %dx # encoding: [0x6e]136// X86-16: outsb (%si), %dx # encoding: [0x6e]137 138outsw %fs:(%esi), %dx139// X86-64: outsw %fs:(%esi), %dx # encoding: [0x67,0x64,0x66,0x6f]140// X86-32: outsw %fs:(%esi), %dx # encoding: [0x64,0x66,0x6f]141// X86-16: outsw %fs:(%esi), %dx # encoding: [0x67,0x64,0x6f]142 143insw %dx, (%edi)144// X86-64: insw %dx, %es:(%edi) # encoding: [0x67,0x66,0x6d]145// X86-32: insw %dx, %es:(%edi) # encoding: [0x66,0x6d]146// X86-16: insw %dx, %es:(%edi) # encoding: [0x67,0x6d]147 148insw %dx, (%bx)149// ERR64: [[#@LINE-1]]:[[#]]: error: invalid 16-bit base register150// X86-32: insw %dx, %es:(%di) # encoding: [0x67,0x66,0x6d]151// X86-16: insw %dx, %es:(%di) # encoding: [0x6d]152 153insw %dx, (%ebx)154// X86-64: insw %dx, %es:(%edi) # encoding: [0x67,0x66,0x6d]155// X86-32: insw %dx, %es:(%edi) # encoding: [0x66,0x6d]156// X86-16: insw %dx, %es:(%edi) # encoding: [0x67,0x6d]157 158insw %dx, (%rbx)159// X86-64: insw %dx, %es:(%rdi) # encoding: [0x66,0x6d]160// ERR32: 64-bit161// ERR16: 64-bit162 163movdir64b	291(%si), %ecx164// ERR64: error: invalid 16-bit base register165// ERR32: invalid operand166// ERR16: invalid operand167 168movdir64b	291(%esi), %cx169// ERR64: error: invalid operand for instruction170// ERR32: invalid operand171// ERR16: invalid operand172 173movdir64b (%rdx), %r15d174// ERR64: [[#@LINE-1]]:[[#]]: error: invalid operand175 176movdir64b (%edx), %r15177// ERR64: [[#@LINE-1]]:[[#]]: error: invalid operand178 179movdir64b (%eip), %ebx180// X86-64: movdir64b (%eip), %ebx # encoding: [0x67,0x66,0x0f,0x38,0xf8,0x1d,0x00,0x00,0x00,0x00]181 182movdir64b (%rip), %rbx183// X86-64: movdir64b (%rip), %rbx # encoding: [0x66,0x0f,0x38,0xf8,0x1d,0x00,0x00,0x00,0x00]184 185movdir64b 291(%esi, %eiz, 4), %ebx186// X86-64: movdir64b 291(%esi,%eiz,4), %ebx # encoding: [0x67,0x66,0x0f,0x38,0xf8,0x9c,0xa6,0x23,0x01,0x00,0x00]187// X86-32: movdir64b 291(%esi,%eiz,4), %ebx # encoding: [0x66,0x0f,0x38,0xf8,0x9c,0xa6,0x23,0x01,0x00,0x00]188 189movdir64b 291(%rsi, %riz, 4), %rbx190// X86-64: movdir64b 291(%rsi,%riz,4), %rbx # encoding: [0x66,0x0f,0x38,0xf8,0x9c,0xa6,0x23,0x01,0x00,0x00]191 192enqcmd	291(%si), %ecx193// ERR64: error: invalid 16-bit base register194// ERR32: invalid operand195// ERR16: invalid operand196 197enqcmd	291(%esi), %cx198// ERR64: error: invalid operand for instruction199// ERR32: invalid operand200// ERR16: invalid operand201 202enqcmd (%rdx), %r15d203// ERR64: [[#@LINE-1]]:[[#]]: error: invalid operand204 205enqcmd (%edx), %r15206// ERR64: [[#@LINE-1]]:[[#]]: error: invalid operand207 208enqcmd (%eip), %ebx209// X86-64: enqcmd (%eip), %ebx # encoding: [0x67,0xf2,0x0f,0x38,0xf8,0x1d,0x00,0x00,0x00,0x00]210 211enqcmd (%rip), %rbx212// X86-64: enqcmd (%rip), %rbx # encoding: [0xf2,0x0f,0x38,0xf8,0x1d,0x00,0x00,0x00,0x00]213 214enqcmd 291(%esi, %eiz, 4), %ebx215// X86-64: enqcmd 291(%esi,%eiz,4), %ebx # encoding: [0x67,0xf2,0x0f,0x38,0xf8,0x9c,0xa6,0x23,0x01,0x00,0x00]216// X86-32: enqcmd 291(%esi,%eiz,4), %ebx # encoding: [0xf2,0x0f,0x38,0xf8,0x9c,0xa6,0x23,0x01,0x00,0x00]217 218enqcmd 291(%rsi, %riz, 4), %rbx219// X86-64: enqcmd 291(%rsi,%riz,4), %rbx # encoding: [0xf2,0x0f,0x38,0xf8,0x9c,0xa6,0x23,0x01,0x00,0x00]220 221enqcmds	291(%si), %ecx222// ERR64: error: invalid 16-bit base register223// ERR32: invalid operand224// ERR16: invalid operand225 226enqcmds	291(%esi), %cx227// ERR64: error: invalid operand for instruction228// ERR32: invalid operand229// ERR16: invalid operand230 231enqcmds (%rdx), %r15d232// ERR64: [[#@LINE-1]]:[[#]]: error: invalid operand233 234enqcmds (%edx), %r15235// ERR64: [[#@LINE-1]]:[[#]]: error: invalid operand236 237enqcmds (%eip), %ebx238// X86-64: enqcmds (%eip), %ebx # encoding: [0x67,0xf3,0x0f,0x38,0xf8,0x1d,0x00,0x00,0x00,0x00]239 240enqcmds (%rip), %rbx241// X86-64: enqcmds (%rip), %rbx # encoding: [0xf3,0x0f,0x38,0xf8,0x1d,0x00,0x00,0x00,0x00]242 243enqcmds 291(%esi, %eiz, 4), %ebx244// X86-64: enqcmds 291(%esi,%eiz,4), %ebx # encoding: [0x67,0xf3,0x0f,0x38,0xf8,0x9c,0xa6,0x23,0x01,0x00,0x00]245// X86-32: enqcmds 291(%esi,%eiz,4), %ebx # encoding: [0xf3,0x0f,0x38,0xf8,0x9c,0xa6,0x23,0x01,0x00,0x00]246 247enqcmds 291(%rsi, %riz, 4), %rbx248// X86-64: enqcmds 291(%rsi,%riz,4), %rbx # encoding: [0xf3,0x0f,0x38,0xf8,0x9c,0xa6,0x23,0x01,0x00,0x00]249