2 # All the following should be illegal for x86-64
8 bound
%eax
,(%rax
) # illegal
9 calll
*%eax
# 32-bit data size not allowed
10 calll
*(%ax
) # 32-bit data size not allowed
11 calll
*(%eax
) # 32-bit data size not allowed
12 calll
*(%r8) # 32-bit data size not allowed
13 calll
*(%rax
) # 32-bit data size not allowed
14 callw
*%ax
# 16-bit data size not allowed
15 callw
*(%ax
) # 16-bit data size not allowed
16 callw
*(%eax
) # 16-bit data size not allowed
17 callw
*(%r8) # 16-bit data size not allowed
18 callw
*(%rax
) # 16-bit data size not allowed
19 callq
*(%ax
) # no 16-bit addressing
22 enterl $
0,$
0 # can't have 32-bit stack operands
24 foo
: jcxz foo
# No prefix exists to select CX as a counter
25 jmpl
*%eax
# 32-bit data size not allowed
26 jmpl
*(%ax
) # 32-bit data size not allowed
27 jmpl
*(%eax
) # 32-bit data size not allowed
28 jmpl
*(%r8) # 32-bit data size not allowed
29 jmpl
*(%rax
) # 32-bit data size not allowed
30 jmpw
*%ax
# 16-bit data size not allowed
31 jmpw
*(%ax
) # 16-bit data size not allowed
32 jmpw
*(%eax
) # 16-bit data size not allowed
33 jmpw
*(%r8) # 16-bit data size not allowed
34 jmpw
*(%rax
) # 16-bit data size not allowed
35 jmpq
*(%ax
) # no 16-bit addressing
36 lcalll $
0,$
0 # illegal
37 lcallq $
0,$
0 # illegal
38 ldsl
%eax
,(%rax
) # illegal
39 ldsq
%rax
,(%rax
) # illegal
40 lesl
%eax
,(%rax
) # illegal
41 lesq
%rax
,(%rax
) # illegal
44 ljmpq
*(%rax
) # 64-bit data size not allowed
45 loopw foo
# No prefix exists to select CX as a counter
46 loopew foo
# No prefix exists to select CX as a counter
47 loopnew foo
# No prefix exists to select CX as a counter
48 loopnzw foo
# No prefix exists to select CX as a counter
49 loopzw foo
# No prefix exists to select CX as a counter
50 leavel
# can't have 32-bit stack operands
55 popl
%eax
# can't have 32-bit stack operands
61 pushl
%eax
# can't have 32-bit stack operands
62 pushfl
# can't have 32-bit stack operands
63 popfl
# can't have 32-bit stack operands
64 retl
# can't have 32-bit stack operands
65 insertq $
4,$
2,%xmm2
,%ebx
# The last operand must be XMM register.
76 .intel_syntax noprefix
77 cmpxchg16b dword ptr
[rax
] # Must be oword
78 movq xmm1
, XMMWORD PTR
[rsp
]
79 movq xmm1
, DWORD PTR
[rsp
]
80 movq xmm1
, WORD PTR
[rsp
]
81 movq xmm1
, BYTE PTR
[rsp
]
82 movq XMMWORD PTR
[rsp
],xmm1
83 movq DWORD PTR
[rsp
],xmm1
84 movq WORD PTR
[rsp
],xmm1
85 movq BYTE PTR
[rsp
],xmm1
98 movnti word ptr
[rax
], ax
99 calld eax
# 32-bit data size not allowed
100 calld
[ax
] # 32-bit data size not allowed
101 calld
[eax
] # 32-bit data size not allowed
102 calld
[r8] # 32-bit data size not allowed
103 calld
[rax
] # 32-bit data size not allowed
104 callw ax
# 16-bit data size not allowed
105 callw
[ax
] # 16-bit data size not allowed
106 callw
[eax
] # 16-bit data size not allowed
107 callw
[r8] # 16-bit data size not allowed
108 callw
[rax
] # 16-bit data size not allowed
109 callq
[ax
] # no 16-bit addressing
110 jmpd eax
# 32-bit data size not allowed
111 jmpd
[ax
] # 32-bit data size not allowed
112 jmpd
[eax
] # 32-bit data size not allowed
113 jmpd
[r8] # 32-bit data size not allowed
114 jmpd
[rax
] # 32-bit data size not allowed
115 jmpw ax
# 16-bit data size not allowed
116 jmpw
[ax
] # 16-bit data size not allowed
117 jmpw
[eax
] # 16-bit data size not allowed
118 jmpw
[r8] # 16-bit data size not allowed
119 jmpw
[rax
] # 16-bit data size not allowed
120 jmpq
[ax
] # no 16-bit addressing