x86/Intel: support "mmword ptr"
[deliverable/binutils-gdb.git] / gas / testsuite / gas / i386 / intelok.s
1 .intel_syntax noprefix
2 .text
3 start:
4
5 # operand sizes
6
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, mmword ptr [eax]
87 paddb mm0, qword ptr [eax]
88 paddb xmm0, [eax]
89 paddb xmm0, xmmword ptr [eax]
90 paddb xmm0, oword ptr [eax]
91 pinsrw mm0, word ptr [eax], 3
92 pinsrw xmm0, word ptr [eax], 7
93 push dword ptr [eax]
94 xlat [ebx]
95 xlat byte ptr [ebx]
96 xlatb
97
98 # memory operands
99
100 mov eax, dword ptr [byte+eax]
101 mov eax, dword ptr byte[eax]
102 mov eax, [dword+eax]
103 mov eax, dword[eax]
104 mov eax, [fword+eax]
105 mov eax, fword[eax]
106 mov eax, [qword+eax+dword]
107 mov eax, qword[eax+dword]
108 mov eax, [tbyte+eax+dword*2]
109 mov eax, tbyte[eax+dword*2]
110 mov eax, [word+eax*dword]
111 mov eax, word[eax*dword]
112 movzx eax, word ptr byte ptr [eax]
113 movzx eax, byte ptr [word ptr [eax]]
114 movzx eax, word ptr es:[eax]
115 movzx eax, byte ptr [fs:[eax]]
116 movzx eax, gs:word ptr [eax]
117
118 mov eax, FLAT:1
119 mov eax, FLAT:[1]
120 mov eax, gs:1
121 mov eax, gs:[1]
122 mov eax, x
123 mov eax, FLAT:x
124 mov eax, gs:x
125 mov eax, [x]
126
127 mov eax, [eax*1]
128 mov eax, [eax*+1]
129 mov eax, [+1*eax]
130 mov eax, [eax*+2]
131 mov eax, [+2*eax]
132 mov eax, [ecx*dword]
133 mov eax, [dword*ecx]
134 mov eax, 1[eax]
135 mov eax, [eax]+1
136 mov eax, [eax - 5 + ecx]
137 mov eax, [eax + 5 and 3 + ecx]
138 mov eax, [eax + 5 * 3 + ecx]
139 mov eax, [oword][eax]
140 mov eax, [eax][oword]
141 mov eax, xmmword[eax][ecx]
142 mov eax, [eax]+[ecx]
143 mov eax, [eax]+1[ecx]
144 mov eax, [eax+2[ecx]]
145 mov eax, [eax][ecx]+3
146 mov eax, [4][eax][ecx]
147 mov eax, [eax][5][ecx]
148 mov eax, [eax][ecx][6]
149 mov eax, [eax+ecx*(2+2)+7]
150 mov eax, [eax+(ecx+2)*4]
151 mov eax, [[eax]]
152 mov eax, [eax[ecx]]
153 mov eax, [[eax][ecx]]
154 mov eax, es:[eax]
155 mov eax, fs:gs:[eax]
156
157 # expressions
158
159 push + 1
160 push - 1
161 push not 1
162 push 1 + 1
163 push 2 - 1
164 push 2 * 2
165 push 3 / 2
166 push 3 mod 2
167 push 4 shl 1
168 push 5 shr 2
169 push 6 and 3
170 push 7 xor 4
171 push 8 or 5
172
173 push +dword
174 push -dword
175 push not dword
176 push not +dword
177 push not -dword
178 push not not dword
179
180 # offset expressions
181
182 mov eax, 1
183 mov eax, [1]
184 mov eax, dword ptr 1
185 mov eax, dword ptr [1]
186 mov eax, offset x
187 mov eax, offset flat:x
188 mov eax, offset gs:x
189 mov eax, offset [x]
190 mov eax, offset flat:[x]
191 mov eax, offset gs:[x]
192 mov eax, [offset x]
193 mov eax, [offset [x]]
194 mov eax, dword ptr [offset [x]]
195 mov eax, FLAT:[offset [x]]
196 mov eax, gs:[offset [x]]
197 mov eax, offset [dword ptr [x]]
198 mov eax, offset [gs:[x]]
199 mov eax, [eax + offset x]
200 mov eax, [eax + offset 1]
201 mov eax, [offset x + eax]
202 mov eax, [offset 1 + eax]
203 mov eax, offset x + 1[eax]
204 mov eax, [eax] + offset x
205 mov eax, [eax] + offset 1
206 mov eax, offset x + [1]
207 mov eax, [offset x] - [1]
208 mov eax, offset x + es:[2]
209 mov eax, offset x + offset es:[3]
210 mov eax, [4] + offset x
211 mov eax, [5] + [offset x]
212 mov eax, ss:[6] + offset x
213 mov eax, ss:[7] + [offset x]
214
215 # other operands
216 call 3:5
217 jmp 5:[3]
218 call dword ptr xtrn
219 jmp word ptr xtrn
220 call [xtrn]
221 jmp [xtrn]
This page took 0.036445 seconds and 5 git commands to generate.