Restore "call|jmp [xtrn]" in x86 assembler.
[binutils.git] / gas / testsuite / gas / i386 / intelok.s
blobeae9c2d50923e1067bb1436a917d0556ca9fd7bd
1 .intel_syntax noprefix
2 .text
3 start:
5 # operand sizes
7 add al, [eax]
8 add al, byte ptr [eax]
9 add ax, [eax]
10 add ax, word ptr [eax]
11 add eax, [eax]
12 add eax, dword ptr [eax]
13 add byte ptr [eax], 1
14 add dword ptr [eax], 1
15 add word ptr [eax], 1
16 addpd xmm0, [eax]
17 addpd xmm0, xmmword ptr [eax]
18 addps xmm0, [eax]
19 addps xmm0, xmmword ptr [eax]
20 addsd xmm0, [eax]
21 addsd xmm0, qword ptr [eax]
22 addss xmm0, [eax]
23 addss xmm0, dword ptr [eax]
24 bound ax, dword ptr [ecx]
25 bound eax, qword ptr [ecx]
26 call word ptr [eax]
27 call dword ptr [eax]
28 call fword ptr [eax]
29 cmps [esi], byte ptr es:[edi]
30 cmps dword ptr [esi], es:[edi]
31 cmps word ptr [esi], word ptr es:[edi]
32 cmpxchg8b qword ptr [eax]
33 fadd dword ptr [eax]
34 fadd qword ptr [eax]
35 fbld [eax]
36 fbld tbyte ptr [eax]
37 fbstp [eax]
38 fbstp tbyte ptr [eax]
39 fiadd dword ptr [eax]
40 fiadd word ptr [eax]
41 fild dword ptr [eax]
42 fild qword ptr [eax]
43 fild word ptr [eax]
44 fist dword ptr [eax]
45 fist word ptr [eax]
46 fistp dword ptr [eax]
47 fistp qword ptr [eax]
48 fistp word ptr [eax]
49 fisttp dword ptr [eax]
50 fisttp qword ptr [eax]
51 fisttp word ptr [eax]
52 fld dword ptr [eax]
53 fld qword ptr [eax]
54 fld tbyte ptr [eax]
55 fldcw [eax]
56 fldcw word ptr [eax]
57 fldenv [eax]
58 fldenvd [eax]
59 fldenvw [eax]
60 fst dword ptr [eax]
61 fst qword ptr [eax]
62 fstp dword ptr [eax]
63 fstp qword ptr [eax]
64 fstp tbyte ptr [eax]
65 lds ax, [eax]
66 lds eax, [eax]
67 lds ax, dword ptr [eax]
68 lds eax, fword ptr [eax]
69 lea eax, [eax]
70 lea eax, byte ptr [eax]
71 lea eax, dword ptr [eax]
72 lea eax, fword ptr [eax]
73 lea eax, qword ptr [eax]
74 lea eax, tbyte ptr [eax]
75 lea eax, word ptr [eax]
76 lea eax, xmmword ptr [eax]
77 lgdt [eax]
78 lgdtd [eax]
79 lgdtw [eax]
80 movs es:[edi], byte ptr [esi]
81 movs dword ptr es:[edi], [esi]
82 movs word ptr es:[edi], word ptr [esi]
83 movsx eax, byte ptr [eax]
84 movsx eax, word ptr [eax]
85 paddb mm0, [eax]
86 paddb mm0, qword ptr [eax]
87 paddb xmm0, [eax]
88 paddb xmm0, xmmword ptr [eax]
89 pinsrw mm0, word ptr [eax], 3
90 pinsrw xmm0, word ptr [eax], 7
91 push dword ptr [eax]
92 xlat [ebx]
93 xlat byte ptr [ebx]
94 xlatb
96 # memory operands
98 mov eax, dword ptr [byte+eax]
99 mov eax, dword ptr byte[eax]
100 mov eax, [dword+eax]
101 mov eax, dword[eax]
102 mov eax, [fword+eax]
103 mov eax, fword[eax]
104 mov eax, [qword+eax+dword]
105 mov eax, qword[eax+dword]
106 mov eax, [tbyte+eax+dword*2]
107 mov eax, tbyte[eax+dword*2]
108 mov eax, [word+eax*dword]
109 mov eax, word[eax*dword]
110 movzx eax, word ptr byte ptr [eax]
111 movzx eax, byte ptr [word ptr [eax]]
112 movzx eax, word ptr es:[eax]
113 movzx eax, byte ptr [fs:[eax]]
114 movzx eax, gs:word ptr [eax]
116 mov eax, FLAT:1
117 mov eax, FLAT:[1]
118 mov eax, gs:1
119 mov eax, gs:[1]
120 mov eax, x
121 mov eax, FLAT:x
122 mov eax, gs:x
123 mov eax, [x]
125 mov eax, [eax*1]
126 mov eax, [eax*+1]
127 mov eax, [+1*eax]
128 mov eax, [eax*+2]
129 mov eax, [+2*eax]
130 mov eax, [ecx*dword]
131 mov eax, [dword*ecx]
132 mov eax, 1[eax]
133 mov eax, [eax]+1
134 mov eax, [eax - 5 + ecx]
135 mov eax, [eax + 5 and 3 + ecx]
136 mov eax, [eax + 5 * 3 + ecx]
137 mov eax, [oword][eax]
138 mov eax, [eax][oword]
139 mov eax, xmmword[eax][ecx]
140 mov eax, [eax]+[ecx]
141 mov eax, [eax]+1[ecx]
142 mov eax, [eax+2[ecx]]
143 mov eax, [eax][ecx]+3
144 mov eax, [4][eax][ecx]
145 mov eax, [eax][5][ecx]
146 mov eax, [eax][ecx][6]
147 mov eax, [eax+ecx*(2+2)+7]
148 mov eax, [eax+(ecx+2)*4]
149 mov eax, [[eax]]
150 mov eax, [eax[ecx]]
151 mov eax, [[eax][ecx]]
152 mov eax, es:[eax]
153 mov eax, fs:gs:[eax]
155 # expressions
157 push + 1
158 push - 1
159 push not 1
160 push 1 + 1
161 push 2 - 1
162 push 2 * 2
163 push 3 / 2
164 push 3 mod 2
165 push 4 shl 1
166 push 5 shr 2
167 push 6 and 3
168 push 7 xor 4
169 push 8 or 5
171 push +dword
172 push -dword
173 push not dword
174 push not +dword
175 push not -dword
176 push not not dword
178 # offset expressions
180 mov eax, 1
181 mov eax, [1]
182 mov eax, dword ptr 1
183 mov eax, dword ptr [1]
184 mov eax, offset x
185 mov eax, offset flat:x
186 mov eax, offset gs:x
187 mov eax, offset [x]
188 mov eax, offset flat:[x]
189 mov eax, offset gs:[x]
190 mov eax, [offset x]
191 mov eax, [offset [x]]
192 mov eax, dword ptr [offset [x]]
193 mov eax, FLAT:[offset [x]]
194 mov eax, gs:[offset [x]]
195 mov eax, offset [dword ptr [x]]
196 mov eax, offset [gs:[x]]
197 mov eax, [eax + offset x]
198 mov eax, [eax + offset 1]
199 mov eax, [offset x + eax]
200 mov eax, [offset 1 + eax]
201 mov eax, offset x + 1[eax]
202 mov eax, [eax] + offset x
203 mov eax, [eax] + offset 1
204 mov eax, offset x + [1]
205 mov eax, [offset x] - [1]
206 mov eax, offset x + es:[2]
207 mov eax, offset x + offset es:[3]
208 mov eax, [4] + offset x
209 mov eax, [5] + [offset x]
210 mov eax, ss:[6] + offset x
211 mov eax, ss:[7] + [offset x]
213 # other operands
214 call 3:5
215 jmp 5:[3]
216 call dword ptr xtrn
217 jmp word ptr xtrn
218 call [xtrn]
219 jmp [xtrn]