1.text ; foo: addr16 fstcw %es:(%si)
2 fstsw; fstsw %ax;
3 addr16 fstsw %ax ;addr16 rep cmpsw %es:(%di),%ss:(%si)
4
5 es fwait
6
7	fwait
8	movl $0,%gs:fpu_owner_task
9
10	.byte 0x66
11	.byte 0xf2
12	.byte 0x0f
13	.byte 0x38
14	.byte 0x17
15
16	.byte 0xf2
17	.byte 0x66
18	.byte 0x0f
19	.byte 0x54
20
21	.byte 0xf2
22	.byte 0x0f
23	.byte 0x54
24
25# data16 movsd %xmm4,(%edx)
26	.byte 0xf2
27	.byte 0x66
28	.byte 0x0f
29	.byte 0x11
30	.byte 0x22
31
32# data16 movsd %xmm4,(%bp,%si)
33	.byte 0xf2
34	.byte 0x67
35	.byte 0x66
36	.byte 0x0f
37	.byte 0x11
38	.byte 0x22
39
40# lock data16 movsd %xmm4,(%bp,%si)
41	.byte 0xf2
42	.byte 0x67
43	.byte 0xf0
44	.byte 0x66
45	.byte 0x0f
46	.byte 0x11
47	.byte 0x22
48
49# data16 movss %xmm4,(%edx)
50	.byte 0xf3
51	.byte 0x66
52	.byte 0x0f
53	.byte 0x11
54	.byte 0x22
55
56# lock data16 movss %xmm4,(%bp,%si)
57	.byte 0xf3
58	.byte 0x67
59	.byte 0xf0
60	.byte 0x66
61	.byte 0x0f
62	.byte 0x11
63	.byte 0x22
64
65# repz data16 movsd %xmm4,(%bp,%si)
66	.byte 0xf3
67	.byte 0x67
68	.byte 0xf2
69	.byte 0x66
70	.byte 0x0f
71	.byte 0x11
72	.byte 0x22
73
74# data16 movss %xmm4,%ds:(%edx)
75	.byte 0xf3
76	.byte 0x66
77	.byte 0x3e
78	.byte 0x0f
79	.byte 0x11
80	.byte 0x22
81
82# data16 movsd %xmm4,%ss:(%edx)
83	.byte 0xf2
84	.byte 0x66
85	.byte 0x36
86	.byte 0x0f
87	.byte 0x11
88	.byte 0x22
89
90# repz lock data16 movsd %xmm4,%ss:(%edx)
91	.byte 0xf3
92	.byte 0xf0
93	.byte 0xf2
94	.byte 0x66
95	.byte 0x36
96	.byte 0x0f
97	.byte 0x11
98	.byte 0x22
99
100# data16 ds movsd %xmm4,%ss:(%edx)
101	.byte 0xf2
102	.byte 0x66
103	.byte 0x3e
104	.byte 0x36
105	.byte 0x0f
106	.byte 0x11
107	.byte 0x22
108
109# data16 ds movsd %xmm4,%ss:(%bp,%si)
110	.byte 0xf2
111	.byte 0x67
112	.byte 0x66
113	.byte 0x3e
114	.byte 0x36
115	.byte 0x0f
116	.byte 0x11
117	.byte 0x22
118
119# lock data16 ds movsd %xmm4,%ss:(%bp,%si)
120	.byte 0xf2
121	.byte 0x67
122	.byte 0xf0
123	.byte 0x66
124	.byte 0x3e
125	.byte 0x36
126	.byte 0x0f
127	.byte 0x11
128	.byte 0x22
129
130# data16 ds movss %xmm4,%ss:(%edx)
131	.byte 0xf3
132	.byte 0x66
133	.byte 0x3e
134	.byte 0x36
135	.byte 0x0f
136	.byte 0x11
137	.byte 0x22
138
139# lock data16 ds movss %xmm4,%ss:(%edx)
140	.byte 0xf3
141	.byte 0xf0
142	.byte 0x66
143	.byte 0x3e
144	.byte 0x36
145	.byte 0x0f
146	.byte 0x11
147	.byte 0x22
148
149# repz data16 ds movsd %xmm4,%ss:(%bp,%si)
150	.byte 0xf3
151	.byte 0x67
152	.byte 0xf2
153	.byte 0x66
154	.byte 0x3e
155	.byte 0x36
156	.byte 0x0f
157	.byte 0x11
158	.byte 0x22
159
160# repnz; xchg %ax,%ax
161	.byte 0xf2
162	.byte 0x66
163	.byte 0x90
164
165# repnz; addr16 xchg %ax,%ax
166	.byte 0xf2
167	.byte 0x67
168	.byte 0x66
169	.byte 0x90
170
171# repnz; addr16 lock xchg %ax,%ax
172	.byte 0xf2
173	.byte 0x67
174	.byte 0xf0
175	.byte 0x66
176	.byte 0x90
177
178# data16 pause
179	.byte 0xf3
180	.byte 0x66
181	.byte 0x90
182
183# addr16 lock data16 pause
184	.byte 0xf3
185	.byte 0x67
186	.byte 0xf0
187	.byte 0x66
188	.byte 0x90
189
190# repz; addr16; repnz; xchg %ax,%ax
191	.byte 0xf3
192	.byte 0x67
193	.byte 0xf2
194	.byte 0x66
195	.byte 0x90
196
197# repnz; ds nop
198	.byte 0xf2
199	.byte 0x3e
200	.byte 0x90
201
202# repnz; lock addr16 ds nop
203	.byte 0xf2
204	.byte 0xf0
205	.byte 0x67
206	.byte 0x3e
207	.byte 0x90
208
209# ds pause
210	.byte 0xf3
211	.byte 0x3e
212	.byte 0x90
213
214# data16 ds pause
215	.byte 0xf3
216	.byte 0x66
217	.byte 0x3e
218	.byte 0x90
219
220# lock ds pause
221	.byte 0xf3
222	.byte 0xf0
223	.byte 0x3e
224	.byte 0x90
225
226# lock addr16 ds pause
227	.byte 0xf3
228	.byte 0xf0
229	.byte 0x67
230	.byte 0x3e
231	.byte 0x90
232
233# repz; repnz; addr16 ds nop
234	.byte 0xf3
235	.byte 0xf2
236	.byte 0x67
237	.byte 0x3e
238	.byte 0x90
239
240# lock ss xchg %ax,%ax
241	.byte 0x66
242	.byte 0xf0
243	.byte 0x36
244	.byte 0x90
245
246# repnz; ss nop
247	.byte 0xf2
248	.byte 0x36
249	.byte 0x90
250
251# repnz; ss xchg %ax,%ax
252	.byte 0xf2
253	.byte 0x66
254	.byte 0x36
255	.byte 0x90
256
257# repnz; lock ss nop
258	.byte 0xf2
259	.byte 0xf0
260	.byte 0x36
261	.byte 0x90
262
263# repnz; lock addr16 ss nop
264	.byte 0xf2
265	.byte 0xf0
266	.byte 0x67
267	.byte 0x36
268	.byte 0x90
269
270# ss pause
271	.byte 0xf3
272	.byte 0x36
273	.byte 0x90
274
275# addr16 ss pause
276	.byte 0xf3
277	.byte 0x67
278	.byte 0x36
279	.byte 0x90
280
281# lock addr16 ss pause
282	.byte 0xf3
283	.byte 0xf0
284	.byte 0x67
285	.byte 0x36
286	.byte 0x90
287
288# repz; repnz; ss nop
289	.byte 0xf3
290	.byte 0xf2
291	.byte 0x36
292	.byte 0x90
293
294# repz; repnz; addr16 ss nop
295	.byte 0xf3
296	.byte 0xf2
297	.byte 0x67
298	.byte 0x36
299	.byte 0x90
300
301# repz; lock; repnz; ss xchg %ax,%ax
302	.byte 0xf3
303	.byte 0xf0
304	.byte 0xf2
305	.byte 0x66
306	.byte 0x36
307	.byte 0x90
308
309# ds ss xchg %ax,%ax
310	.byte 0x66
311	.byte 0x3e
312	.byte 0x36
313	.byte 0x90
314
315# addr16 ds ss xchg %ax,%ax
316	.byte 0x67
317	.byte 0x66
318	.byte 0x3e
319	.byte 0x36
320	.byte 0x90
321
322# addr16 lock ds ss xchg %ax,%ax
323	.byte 0x67
324	.byte 0xf0
325	.byte 0x66
326	.byte 0x3e
327	.byte 0x36
328	.byte 0x90
329
330# data16 ds ss pause
331	.byte 0xf3
332	.byte 0x66
333	.byte 0x3e
334	.byte 0x36
335	.byte 0x90
336
337# lock data16 ds ss pause
338	.byte 0xf3
339	.byte 0xf0
340	.byte 0x66
341	.byte 0x3e
342	.byte 0x36
343	.byte 0x90
344
345# repz; repnz; addr16 ds ss nop
346	.byte 0xf3
347	.byte 0xf2
348	.byte 0x67
349	.byte 0x3e
350	.byte 0x36
351	.byte 0x90
352
353# repz; addr16; repnz; ds ss xchg %ax,%ax
354	.byte 0xf3
355	.byte 0x67
356	.byte 0xf2
357	.byte 0x66
358	.byte 0x3e
359	.byte 0x36
360	.byte 0x90
361
362# repz; rdseed %eax
363	.byte 0xf3
364	.byte 0x0f
365	.byte 0xc7
366	.byte 0xf8
367
368	nop
369
370# repz; rdrand %eax
371	.byte 0xf3
372	.byte 0x0f
373	.byte 0xc7
374	.byte 0xf0
375
376	nop
377
378# repnz; rdseed %eax
379	.byte 0xf2
380	.byte 0x0f
381	.byte 0xc7
382	.byte 0xf8
383
384	nop
385
386# repnz; rdrand %eax
387	.byte 0xf2
388	.byte 0x0f
389	.byte 0xc7
390	.byte 0xf0
391
392	nop
393
394	repz; movaps %xmm7, %xmm7
395	int $3
396
397# "repz" vmovaps %xmm7, %xmm7
398	.byte 0xc5
399	.byte 0xfa
400	.byte 0x28
401	.byte 0xff
402
403	int $3
404
405# "repnz" {vex3} vmovaps %xmm7, %xmm7
406	.byte 0xc4
407	.byte 0xe1
408	.byte 0x7b
409	.byte 0x28
410	.byte 0xff
411
412	int $3
413
414# "EVEX.W1" vmovaps %xmm7, %xmm7
415	.byte 0x62
416	.byte 0xf1
417	.byte 0xfc
418	.byte 0x08
419	.byte 0x28
420	.byte 0xff
421
422	int $3
423
424# "repz" vmovaps %xmm7, %xmm7
425	.byte 0x62
426	.byte 0xf1
427	.byte 0x7e
428	.byte 0x08
429	.byte 0x28
430	.byte 0xff
431
432	int $3
433
434# "EVEX.W0" vmovapd %xmm7, %xmm7
435	.byte 0x62
436	.byte 0xf1
437	.byte 0x7d
438	.byte 0x08
439	.byte 0x28
440	.byte 0xff
441
442	int $3
443
444# "repnz" vmovapd %xmm7, %xmm7
445	.byte 0x62
446	.byte 0xf1
447	.byte 0xff
448	.byte 0x08
449	.byte 0x28
450	.byte 0xff
451
452	int $3
453
454	.byte 0x66; vmovaps %xmm0, %xmm0
455	repz; {vex3} vmovaps %xmm0, %xmm0
456	repnz; vmovaps %xmm0, %xmm0
457	lock; {evex} vmovaps %xmm0, %xmm0
458
459	vcvtpd2dqx 0x20(%eax),%xmm0
460	vcvtpd2dq 0x20(%eax){1to2},%xmm0
461	vcvtpd2dqx 0x20(%eax),%xmm0
462
463# Get a good alignment.
464 .p2align	4,0
465