Upload Tizen:Base source
[external/binutils.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, 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
95
96         # memory operands
97
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]
115
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]
124
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]
154
155         # expressions
156
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
170
171         push    +dword
172         push    -dword
173         push    not dword
174         push    not +dword
175         push    not -dword
176         push    not not dword
177
178         # offset expressions
179
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]
212
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]