blob: 85c3582d4b2501805b5cdb4545ec72a1a151515b [file] [log] [blame]
.text
.allow_index_reg
# All the following should be illegal for x86-64
aaa # illegal
aad # illegal
aam # illegal
aas # illegal
arpl %ax,%ax # illegal
bound %eax,(%rax) # illegal
calll *%eax # 32-bit data size not allowed
calll *(%ax) # 32-bit data size not allowed
calll *(%eax) # 32-bit data size not allowed
calll *(%r8) # 32-bit data size not allowed
calll *(%rax) # 32-bit data size not allowed
callq *(%ax) # no 16-bit addressing
daa # illegal
das # illegal
enterl $0,$0 # can't have 32-bit stack operands
into # illegal
foo: jcxz foo # No prefix exists to select CX as a counter
jmpl *%eax # 32-bit data size not allowed
jmpl *(%ax) # 32-bit data size not allowed
jmpl *(%eax) # 32-bit data size not allowed
jmpl *(%r8) # 32-bit data size not allowed
jmpl *(%rax) # 32-bit data size not allowed
jmpq *(%ax) # no 16-bit addressing
lcalll $0,$0 # illegal
lcallq $0,$0 # illegal
ldsl %eax,(%rax) # illegal
ldsq %rax,(%rax) # illegal
lesl %eax,(%rax) # illegal
lesq %rax,(%rax) # illegal
ljmpl $0,$0 # illegal
ljmpq $0,$0 # illegal
ljmpq *(%rax) # 64-bit data size not allowed
loopw foo # No prefix exists to select CX as a counter
loopew foo # No prefix exists to select CX as a counter
loopnew foo # No prefix exists to select CX as a counter
loopnzw foo # No prefix exists to select CX as a counter
loopzw foo # No prefix exists to select CX as a counter
leavel # can't have 32-bit stack operands
pop %ds # illegal
pop %es # illegal
pop %ss # illegal
popa # illegal
popl %eax # can't have 32-bit stack operands
push %cs # illegal
push %ds # illegal
push %es # illegal
push %ss # illegal
pusha # illegal
pushl %eax # can't have 32-bit stack operands
pushfl # can't have 32-bit stack operands
popfl # can't have 32-bit stack operands
retl # can't have 32-bit stack operands
insertq $4,$2,%xmm2,%ebx # The last operand must be XMM register.
fnstsw %eax
fnstsw %al
fstsw %eax
fstsw %al
in $8,%rax
out %rax,$8
movzxl (%rax),%rax
movnti %ax, (%rax)
movntiw %ax, (%rax)
mov 0x80000000(%rax),%ebx
mov 0x80000000,%ebx
add (%rip,%rsi), %eax
add (%rsi,%rip), %eax
add (,%rip), %eax
add (%eip,%esi), %eax
add (%esi,%eip), %eax
add (,%eip), %eax
add (%rsi,%esi), %eax
add (%esi,%rsi), %eax
add (%eiz), %eax
add (%riz), %eax
add (%rax), %riz
add (%rax), %eiz
.intel_syntax noprefix
cmpxchg16b dword ptr [rax] # Must be oword
movq xmm1, XMMWORD PTR [rsp]
movq xmm1, DWORD PTR [rsp]
movq xmm1, WORD PTR [rsp]
movq xmm1, BYTE PTR [rsp]
movq XMMWORD PTR [rsp],xmm1
movq DWORD PTR [rsp],xmm1
movq WORD PTR [rsp],xmm1
movq BYTE PTR [rsp],xmm1
fnstsw eax
fnstsw al
fstsw eax
fstsw al
in rax,8
out 8,rax
movsx ax, [rax]
movsx eax, [rax]
movsx rax, [rax]
movzx ax, [rax]
movzx eax, [rax]
movzx rax, [rax]
movnti word ptr [rax], ax
calld eax # 32-bit data size not allowed
calld [ax] # 32-bit data size not allowed
calld [eax] # 32-bit data size not allowed
calld [r8] # 32-bit data size not allowed
calld [rax] # 32-bit data size not allowed
callq [ax] # no 16-bit addressing
jmpd eax # 32-bit data size not allowed
jmpd [ax] # 32-bit data size not allowed
jmpd [eax] # 32-bit data size not allowed
jmpd [r8] # 32-bit data size not allowed
jmpd [rax] # 32-bit data size not allowed
jmpq [ax] # no 16-bit addressing
mov eax,[rax+0x876543210] # out of range displacement
.att_syntax prefix
movsd (%rsi), %ss:(%rdi), %ss:(%rax)