Implement Intel Transactional Synchronization Extensions
[deliverable/binutils-gdb.git] / gas / testsuite / gas / i386 / hle.s
1 # Check 32bit HLE instructions
2
3 .allow_index_reg
4 .text
5 _start:
6
7 # Tests for op imm8 regb/m8
8 xacquire lock adcb $100,(%ecx)
9 lock xacquire adcb $100,(%ecx)
10 xrelease lock adcb $100,(%ecx)
11 lock xrelease adcb $100,(%ecx)
12 .byte 0xf0; .byte 0xf2; adcb $100,(%ecx)
13 .byte 0xf0; .byte 0xf3; adcb $100,(%ecx)
14 xacquire lock addb $100,(%ecx)
15 lock xacquire addb $100,(%ecx)
16 xrelease lock addb $100,(%ecx)
17 lock xrelease addb $100,(%ecx)
18 .byte 0xf0; .byte 0xf2; addb $100,(%ecx)
19 .byte 0xf0; .byte 0xf3; addb $100,(%ecx)
20 xacquire lock andb $100,(%ecx)
21 lock xacquire andb $100,(%ecx)
22 xrelease lock andb $100,(%ecx)
23 lock xrelease andb $100,(%ecx)
24 .byte 0xf0; .byte 0xf2; andb $100,(%ecx)
25 .byte 0xf0; .byte 0xf3; andb $100,(%ecx)
26 xrelease movb $100,(%ecx)
27 xacquire lock orb $100,(%ecx)
28 lock xacquire orb $100,(%ecx)
29 xrelease lock orb $100,(%ecx)
30 lock xrelease orb $100,(%ecx)
31 .byte 0xf0; .byte 0xf2; orb $100,(%ecx)
32 .byte 0xf0; .byte 0xf3; orb $100,(%ecx)
33 xacquire lock sbbb $100,(%ecx)
34 lock xacquire sbbb $100,(%ecx)
35 xrelease lock sbbb $100,(%ecx)
36 lock xrelease sbbb $100,(%ecx)
37 .byte 0xf0; .byte 0xf2; sbbb $100,(%ecx)
38 .byte 0xf0; .byte 0xf3; sbbb $100,(%ecx)
39 xacquire lock subb $100,(%ecx)
40 lock xacquire subb $100,(%ecx)
41 xrelease lock subb $100,(%ecx)
42 lock xrelease subb $100,(%ecx)
43 .byte 0xf0; .byte 0xf2; subb $100,(%ecx)
44 .byte 0xf0; .byte 0xf3; subb $100,(%ecx)
45 xacquire lock xorb $100,(%ecx)
46 lock xacquire xorb $100,(%ecx)
47 xrelease lock xorb $100,(%ecx)
48 lock xrelease xorb $100,(%ecx)
49 .byte 0xf0; .byte 0xf2; xorb $100,(%ecx)
50 .byte 0xf0; .byte 0xf3; xorb $100,(%ecx)
51
52 # Tests for op imm16 regs/m16
53 xacquire lock adcw $1000,(%ecx)
54 lock xacquire adcw $1000,(%ecx)
55 xrelease lock adcw $1000,(%ecx)
56 lock xrelease adcw $1000,(%ecx)
57 .byte 0xf0; .byte 0xf2; adcw $1000,(%ecx)
58 .byte 0xf0; .byte 0xf3; adcw $1000,(%ecx)
59 xacquire lock addw $1000,(%ecx)
60 lock xacquire addw $1000,(%ecx)
61 xrelease lock addw $1000,(%ecx)
62 lock xrelease addw $1000,(%ecx)
63 .byte 0xf0; .byte 0xf2; addw $1000,(%ecx)
64 .byte 0xf0; .byte 0xf3; addw $1000,(%ecx)
65 xacquire lock andw $1000,(%ecx)
66 lock xacquire andw $1000,(%ecx)
67 xrelease lock andw $1000,(%ecx)
68 lock xrelease andw $1000,(%ecx)
69 .byte 0xf0; .byte 0xf2; andw $1000,(%ecx)
70 .byte 0xf0; .byte 0xf3; andw $1000,(%ecx)
71 xrelease movw $1000,(%ecx)
72 xacquire lock orw $1000,(%ecx)
73 lock xacquire orw $1000,(%ecx)
74 xrelease lock orw $1000,(%ecx)
75 lock xrelease orw $1000,(%ecx)
76 .byte 0xf0; .byte 0xf2; orw $1000,(%ecx)
77 .byte 0xf0; .byte 0xf3; orw $1000,(%ecx)
78 xacquire lock sbbw $1000,(%ecx)
79 lock xacquire sbbw $1000,(%ecx)
80 xrelease lock sbbw $1000,(%ecx)
81 lock xrelease sbbw $1000,(%ecx)
82 .byte 0xf0; .byte 0xf2; sbbw $1000,(%ecx)
83 .byte 0xf0; .byte 0xf3; sbbw $1000,(%ecx)
84 xacquire lock subw $1000,(%ecx)
85 lock xacquire subw $1000,(%ecx)
86 xrelease lock subw $1000,(%ecx)
87 lock xrelease subw $1000,(%ecx)
88 .byte 0xf0; .byte 0xf2; subw $1000,(%ecx)
89 .byte 0xf0; .byte 0xf3; subw $1000,(%ecx)
90 xacquire lock xorw $1000,(%ecx)
91 lock xacquire xorw $1000,(%ecx)
92 xrelease lock xorw $1000,(%ecx)
93 lock xrelease xorw $1000,(%ecx)
94 .byte 0xf0; .byte 0xf2; xorw $1000,(%ecx)
95 .byte 0xf0; .byte 0xf3; xorw $1000,(%ecx)
96
97 # Tests for op imm32 regl/m32
98 xacquire lock adcl $10000000,(%ecx)
99 lock xacquire adcl $10000000,(%ecx)
100 xrelease lock adcl $10000000,(%ecx)
101 lock xrelease adcl $10000000,(%ecx)
102 .byte 0xf0; .byte 0xf2; adcl $10000000,(%ecx)
103 .byte 0xf0; .byte 0xf3; adcl $10000000,(%ecx)
104 xacquire lock addl $10000000,(%ecx)
105 lock xacquire addl $10000000,(%ecx)
106 xrelease lock addl $10000000,(%ecx)
107 lock xrelease addl $10000000,(%ecx)
108 .byte 0xf0; .byte 0xf2; addl $10000000,(%ecx)
109 .byte 0xf0; .byte 0xf3; addl $10000000,(%ecx)
110 xacquire lock andl $10000000,(%ecx)
111 lock xacquire andl $10000000,(%ecx)
112 xrelease lock andl $10000000,(%ecx)
113 lock xrelease andl $10000000,(%ecx)
114 .byte 0xf0; .byte 0xf2; andl $10000000,(%ecx)
115 .byte 0xf0; .byte 0xf3; andl $10000000,(%ecx)
116 xrelease movl $10000000,(%ecx)
117 xacquire lock orl $10000000,(%ecx)
118 lock xacquire orl $10000000,(%ecx)
119 xrelease lock orl $10000000,(%ecx)
120 lock xrelease orl $10000000,(%ecx)
121 .byte 0xf0; .byte 0xf2; orl $10000000,(%ecx)
122 .byte 0xf0; .byte 0xf3; orl $10000000,(%ecx)
123 xacquire lock sbbl $10000000,(%ecx)
124 lock xacquire sbbl $10000000,(%ecx)
125 xrelease lock sbbl $10000000,(%ecx)
126 lock xrelease sbbl $10000000,(%ecx)
127 .byte 0xf0; .byte 0xf2; sbbl $10000000,(%ecx)
128 .byte 0xf0; .byte 0xf3; sbbl $10000000,(%ecx)
129 xacquire lock subl $10000000,(%ecx)
130 lock xacquire subl $10000000,(%ecx)
131 xrelease lock subl $10000000,(%ecx)
132 lock xrelease subl $10000000,(%ecx)
133 .byte 0xf0; .byte 0xf2; subl $10000000,(%ecx)
134 .byte 0xf0; .byte 0xf3; subl $10000000,(%ecx)
135 xacquire lock xorl $10000000,(%ecx)
136 lock xacquire xorl $10000000,(%ecx)
137 xrelease lock xorl $10000000,(%ecx)
138 lock xrelease xorl $10000000,(%ecx)
139 .byte 0xf0; .byte 0xf2; xorl $10000000,(%ecx)
140 .byte 0xf0; .byte 0xf3; xorl $10000000,(%ecx)
141
142 # Tests for op imm8 regs/m16
143 xacquire lock adcw $100,(%ecx)
144 lock xacquire adcw $100,(%ecx)
145 xrelease lock adcw $100,(%ecx)
146 lock xrelease adcw $100,(%ecx)
147 .byte 0xf0; .byte 0xf2; adcw $100,(%ecx)
148 .byte 0xf0; .byte 0xf3; adcw $100,(%ecx)
149 xacquire lock addw $100,(%ecx)
150 lock xacquire addw $100,(%ecx)
151 xrelease lock addw $100,(%ecx)
152 lock xrelease addw $100,(%ecx)
153 .byte 0xf0; .byte 0xf2; addw $100,(%ecx)
154 .byte 0xf0; .byte 0xf3; addw $100,(%ecx)
155 xacquire lock andw $100,(%ecx)
156 lock xacquire andw $100,(%ecx)
157 xrelease lock andw $100,(%ecx)
158 lock xrelease andw $100,(%ecx)
159 .byte 0xf0; .byte 0xf2; andw $100,(%ecx)
160 .byte 0xf0; .byte 0xf3; andw $100,(%ecx)
161 xacquire lock btcw $100,(%ecx)
162 lock xacquire btcw $100,(%ecx)
163 xrelease lock btcw $100,(%ecx)
164 lock xrelease btcw $100,(%ecx)
165 .byte 0xf0; .byte 0xf2; btcw $100,(%ecx)
166 .byte 0xf0; .byte 0xf3; btcw $100,(%ecx)
167 xacquire lock btrw $100,(%ecx)
168 lock xacquire btrw $100,(%ecx)
169 xrelease lock btrw $100,(%ecx)
170 lock xrelease btrw $100,(%ecx)
171 .byte 0xf0; .byte 0xf2; btrw $100,(%ecx)
172 .byte 0xf0; .byte 0xf3; btrw $100,(%ecx)
173 xacquire lock btsw $100,(%ecx)
174 lock xacquire btsw $100,(%ecx)
175 xrelease lock btsw $100,(%ecx)
176 lock xrelease btsw $100,(%ecx)
177 .byte 0xf0; .byte 0xf2; btsw $100,(%ecx)
178 .byte 0xf0; .byte 0xf3; btsw $100,(%ecx)
179 xrelease movw $100,(%ecx)
180 xacquire lock orw $100,(%ecx)
181 lock xacquire orw $100,(%ecx)
182 xrelease lock orw $100,(%ecx)
183 lock xrelease orw $100,(%ecx)
184 .byte 0xf0; .byte 0xf2; orw $100,(%ecx)
185 .byte 0xf0; .byte 0xf3; orw $100,(%ecx)
186 xacquire lock sbbw $100,(%ecx)
187 lock xacquire sbbw $100,(%ecx)
188 xrelease lock sbbw $100,(%ecx)
189 lock xrelease sbbw $100,(%ecx)
190 .byte 0xf0; .byte 0xf2; sbbw $100,(%ecx)
191 .byte 0xf0; .byte 0xf3; sbbw $100,(%ecx)
192 xacquire lock subw $100,(%ecx)
193 lock xacquire subw $100,(%ecx)
194 xrelease lock subw $100,(%ecx)
195 lock xrelease subw $100,(%ecx)
196 .byte 0xf0; .byte 0xf2; subw $100,(%ecx)
197 .byte 0xf0; .byte 0xf3; subw $100,(%ecx)
198 xacquire lock xorw $100,(%ecx)
199 lock xacquire xorw $100,(%ecx)
200 xrelease lock xorw $100,(%ecx)
201 lock xrelease xorw $100,(%ecx)
202 .byte 0xf0; .byte 0xf2; xorw $100,(%ecx)
203 .byte 0xf0; .byte 0xf3; xorw $100,(%ecx)
204
205 # Tests for op imm8 regl/m32
206 xacquire lock adcl $100,(%ecx)
207 lock xacquire adcl $100,(%ecx)
208 xrelease lock adcl $100,(%ecx)
209 lock xrelease adcl $100,(%ecx)
210 .byte 0xf0; .byte 0xf2; adcl $100,(%ecx)
211 .byte 0xf0; .byte 0xf3; adcl $100,(%ecx)
212 xacquire lock addl $100,(%ecx)
213 lock xacquire addl $100,(%ecx)
214 xrelease lock addl $100,(%ecx)
215 lock xrelease addl $100,(%ecx)
216 .byte 0xf0; .byte 0xf2; addl $100,(%ecx)
217 .byte 0xf0; .byte 0xf3; addl $100,(%ecx)
218 xacquire lock andl $100,(%ecx)
219 lock xacquire andl $100,(%ecx)
220 xrelease lock andl $100,(%ecx)
221 lock xrelease andl $100,(%ecx)
222 .byte 0xf0; .byte 0xf2; andl $100,(%ecx)
223 .byte 0xf0; .byte 0xf3; andl $100,(%ecx)
224 xacquire lock btcl $100,(%ecx)
225 lock xacquire btcl $100,(%ecx)
226 xrelease lock btcl $100,(%ecx)
227 lock xrelease btcl $100,(%ecx)
228 .byte 0xf0; .byte 0xf2; btcl $100,(%ecx)
229 .byte 0xf0; .byte 0xf3; btcl $100,(%ecx)
230 xacquire lock btrl $100,(%ecx)
231 lock xacquire btrl $100,(%ecx)
232 xrelease lock btrl $100,(%ecx)
233 lock xrelease btrl $100,(%ecx)
234 .byte 0xf0; .byte 0xf2; btrl $100,(%ecx)
235 .byte 0xf0; .byte 0xf3; btrl $100,(%ecx)
236 xacquire lock btsl $100,(%ecx)
237 lock xacquire btsl $100,(%ecx)
238 xrelease lock btsl $100,(%ecx)
239 lock xrelease btsl $100,(%ecx)
240 .byte 0xf0; .byte 0xf2; btsl $100,(%ecx)
241 .byte 0xf0; .byte 0xf3; btsl $100,(%ecx)
242 xrelease movl $100,(%ecx)
243 xacquire lock orl $100,(%ecx)
244 lock xacquire orl $100,(%ecx)
245 xrelease lock orl $100,(%ecx)
246 lock xrelease orl $100,(%ecx)
247 .byte 0xf0; .byte 0xf2; orl $100,(%ecx)
248 .byte 0xf0; .byte 0xf3; orl $100,(%ecx)
249 xacquire lock sbbl $100,(%ecx)
250 lock xacquire sbbl $100,(%ecx)
251 xrelease lock sbbl $100,(%ecx)
252 lock xrelease sbbl $100,(%ecx)
253 .byte 0xf0; .byte 0xf2; sbbl $100,(%ecx)
254 .byte 0xf0; .byte 0xf3; sbbl $100,(%ecx)
255 xacquire lock subl $100,(%ecx)
256 lock xacquire subl $100,(%ecx)
257 xrelease lock subl $100,(%ecx)
258 lock xrelease subl $100,(%ecx)
259 .byte 0xf0; .byte 0xf2; subl $100,(%ecx)
260 .byte 0xf0; .byte 0xf3; subl $100,(%ecx)
261 xacquire lock xorl $100,(%ecx)
262 lock xacquire xorl $100,(%ecx)
263 xrelease lock xorl $100,(%ecx)
264 lock xrelease xorl $100,(%ecx)
265 .byte 0xf0; .byte 0xf2; xorl $100,(%ecx)
266 .byte 0xf0; .byte 0xf3; xorl $100,(%ecx)
267
268 # Tests for op imm8 regb/m8
269 xacquire lock adcb $100,(%ecx)
270 lock xacquire adcb $100,(%ecx)
271 xrelease lock adcb $100,(%ecx)
272 lock xrelease adcb $100,(%ecx)
273 .byte 0xf0; .byte 0xf2; adcb $100,(%ecx)
274 .byte 0xf0; .byte 0xf3; adcb $100,(%ecx)
275 xacquire lock addb $100,(%ecx)
276 lock xacquire addb $100,(%ecx)
277 xrelease lock addb $100,(%ecx)
278 lock xrelease addb $100,(%ecx)
279 .byte 0xf0; .byte 0xf2; addb $100,(%ecx)
280 .byte 0xf0; .byte 0xf3; addb $100,(%ecx)
281 xacquire lock andb $100,(%ecx)
282 lock xacquire andb $100,(%ecx)
283 xrelease lock andb $100,(%ecx)
284 lock xrelease andb $100,(%ecx)
285 .byte 0xf0; .byte 0xf2; andb $100,(%ecx)
286 .byte 0xf0; .byte 0xf3; andb $100,(%ecx)
287 xrelease movb $100,(%ecx)
288 xacquire lock orb $100,(%ecx)
289 lock xacquire orb $100,(%ecx)
290 xrelease lock orb $100,(%ecx)
291 lock xrelease orb $100,(%ecx)
292 .byte 0xf0; .byte 0xf2; orb $100,(%ecx)
293 .byte 0xf0; .byte 0xf3; orb $100,(%ecx)
294 xacquire lock sbbb $100,(%ecx)
295 lock xacquire sbbb $100,(%ecx)
296 xrelease lock sbbb $100,(%ecx)
297 lock xrelease sbbb $100,(%ecx)
298 .byte 0xf0; .byte 0xf2; sbbb $100,(%ecx)
299 .byte 0xf0; .byte 0xf3; sbbb $100,(%ecx)
300 xacquire lock subb $100,(%ecx)
301 lock xacquire subb $100,(%ecx)
302 xrelease lock subb $100,(%ecx)
303 lock xrelease subb $100,(%ecx)
304 .byte 0xf0; .byte 0xf2; subb $100,(%ecx)
305 .byte 0xf0; .byte 0xf3; subb $100,(%ecx)
306 xacquire lock xorb $100,(%ecx)
307 lock xacquire xorb $100,(%ecx)
308 xrelease lock xorb $100,(%ecx)
309 lock xrelease xorb $100,(%ecx)
310 .byte 0xf0; .byte 0xf2; xorb $100,(%ecx)
311 .byte 0xf0; .byte 0xf3; xorb $100,(%ecx)
312
313 # Tests for op regb regb/m8
314 # Tests for op regb/m8 regb
315 xacquire lock adcb %al,(%ecx)
316 lock xacquire adcb %al,(%ecx)
317 xrelease lock adcb %al,(%ecx)
318 lock xrelease adcb %al,(%ecx)
319 .byte 0xf0; .byte 0xf2; adcb %al,(%ecx)
320 .byte 0xf0; .byte 0xf3; adcb %al,(%ecx)
321 xacquire lock addb %al,(%ecx)
322 lock xacquire addb %al,(%ecx)
323 xrelease lock addb %al,(%ecx)
324 lock xrelease addb %al,(%ecx)
325 .byte 0xf0; .byte 0xf2; addb %al,(%ecx)
326 .byte 0xf0; .byte 0xf3; addb %al,(%ecx)
327 xacquire lock andb %al,(%ecx)
328 lock xacquire andb %al,(%ecx)
329 xrelease lock andb %al,(%ecx)
330 lock xrelease andb %al,(%ecx)
331 .byte 0xf0; .byte 0xf2; andb %al,(%ecx)
332 .byte 0xf0; .byte 0xf3; andb %al,(%ecx)
333 xrelease movb %al,(%ecx)
334 xacquire lock orb %al,(%ecx)
335 lock xacquire orb %al,(%ecx)
336 xrelease lock orb %al,(%ecx)
337 lock xrelease orb %al,(%ecx)
338 .byte 0xf0; .byte 0xf2; orb %al,(%ecx)
339 .byte 0xf0; .byte 0xf3; orb %al,(%ecx)
340 xacquire lock sbbb %al,(%ecx)
341 lock xacquire sbbb %al,(%ecx)
342 xrelease lock sbbb %al,(%ecx)
343 lock xrelease sbbb %al,(%ecx)
344 .byte 0xf0; .byte 0xf2; sbbb %al,(%ecx)
345 .byte 0xf0; .byte 0xf3; sbbb %al,(%ecx)
346 xacquire lock subb %al,(%ecx)
347 lock xacquire subb %al,(%ecx)
348 xrelease lock subb %al,(%ecx)
349 lock xrelease subb %al,(%ecx)
350 .byte 0xf0; .byte 0xf2; subb %al,(%ecx)
351 .byte 0xf0; .byte 0xf3; subb %al,(%ecx)
352 xacquire lock xchgb %al,(%ecx)
353 lock xacquire xchgb %al,(%ecx)
354 xacquire xchgb %al,(%ecx)
355 xrelease lock xchgb %al,(%ecx)
356 lock xrelease xchgb %al,(%ecx)
357 xrelease xchgb %al,(%ecx)
358 .byte 0xf0; .byte 0xf2; xchgb %al,(%ecx)
359 .byte 0xf0; .byte 0xf3; xchgb %al,(%ecx)
360 xacquire lock xorb %al,(%ecx)
361 lock xacquire xorb %al,(%ecx)
362 xrelease lock xorb %al,(%ecx)
363 lock xrelease xorb %al,(%ecx)
364 .byte 0xf0; .byte 0xf2; xorb %al,(%ecx)
365 .byte 0xf0; .byte 0xf3; xorb %al,(%ecx)
366
367 # Tests for op regs regs/m16
368 # Tests for op regs/m16 regs
369 xacquire lock adcw %ax,(%ecx)
370 lock xacquire adcw %ax,(%ecx)
371 xrelease lock adcw %ax,(%ecx)
372 lock xrelease adcw %ax,(%ecx)
373 .byte 0xf0; .byte 0xf2; adcw %ax,(%ecx)
374 .byte 0xf0; .byte 0xf3; adcw %ax,(%ecx)
375 xacquire lock addw %ax,(%ecx)
376 lock xacquire addw %ax,(%ecx)
377 xrelease lock addw %ax,(%ecx)
378 lock xrelease addw %ax,(%ecx)
379 .byte 0xf0; .byte 0xf2; addw %ax,(%ecx)
380 .byte 0xf0; .byte 0xf3; addw %ax,(%ecx)
381 xacquire lock andw %ax,(%ecx)
382 lock xacquire andw %ax,(%ecx)
383 xrelease lock andw %ax,(%ecx)
384 lock xrelease andw %ax,(%ecx)
385 .byte 0xf0; .byte 0xf2; andw %ax,(%ecx)
386 .byte 0xf0; .byte 0xf3; andw %ax,(%ecx)
387 xrelease movw %ax,(%ecx)
388 xacquire lock orw %ax,(%ecx)
389 lock xacquire orw %ax,(%ecx)
390 xrelease lock orw %ax,(%ecx)
391 lock xrelease orw %ax,(%ecx)
392 .byte 0xf0; .byte 0xf2; orw %ax,(%ecx)
393 .byte 0xf0; .byte 0xf3; orw %ax,(%ecx)
394 xacquire lock sbbw %ax,(%ecx)
395 lock xacquire sbbw %ax,(%ecx)
396 xrelease lock sbbw %ax,(%ecx)
397 lock xrelease sbbw %ax,(%ecx)
398 .byte 0xf0; .byte 0xf2; sbbw %ax,(%ecx)
399 .byte 0xf0; .byte 0xf3; sbbw %ax,(%ecx)
400 xacquire lock subw %ax,(%ecx)
401 lock xacquire subw %ax,(%ecx)
402 xrelease lock subw %ax,(%ecx)
403 lock xrelease subw %ax,(%ecx)
404 .byte 0xf0; .byte 0xf2; subw %ax,(%ecx)
405 .byte 0xf0; .byte 0xf3; subw %ax,(%ecx)
406 xacquire lock xchgw %ax,(%ecx)
407 lock xacquire xchgw %ax,(%ecx)
408 xacquire xchgw %ax,(%ecx)
409 xrelease lock xchgw %ax,(%ecx)
410 lock xrelease xchgw %ax,(%ecx)
411 xrelease xchgw %ax,(%ecx)
412 .byte 0xf0; .byte 0xf2; xchgw %ax,(%ecx)
413 .byte 0xf0; .byte 0xf3; xchgw %ax,(%ecx)
414 xacquire lock xorw %ax,(%ecx)
415 lock xacquire xorw %ax,(%ecx)
416 xrelease lock xorw %ax,(%ecx)
417 lock xrelease xorw %ax,(%ecx)
418 .byte 0xf0; .byte 0xf2; xorw %ax,(%ecx)
419 .byte 0xf0; .byte 0xf3; xorw %ax,(%ecx)
420
421 # Tests for op regl regl/m32
422 # Tests for op regl/m32 regl
423 xacquire lock adcl %eax,(%ecx)
424 lock xacquire adcl %eax,(%ecx)
425 xrelease lock adcl %eax,(%ecx)
426 lock xrelease adcl %eax,(%ecx)
427 .byte 0xf0; .byte 0xf2; adcl %eax,(%ecx)
428 .byte 0xf0; .byte 0xf3; adcl %eax,(%ecx)
429 xacquire lock addl %eax,(%ecx)
430 lock xacquire addl %eax,(%ecx)
431 xrelease lock addl %eax,(%ecx)
432 lock xrelease addl %eax,(%ecx)
433 .byte 0xf0; .byte 0xf2; addl %eax,(%ecx)
434 .byte 0xf0; .byte 0xf3; addl %eax,(%ecx)
435 xacquire lock andl %eax,(%ecx)
436 lock xacquire andl %eax,(%ecx)
437 xrelease lock andl %eax,(%ecx)
438 lock xrelease andl %eax,(%ecx)
439 .byte 0xf0; .byte 0xf2; andl %eax,(%ecx)
440 .byte 0xf0; .byte 0xf3; andl %eax,(%ecx)
441 xrelease movl %eax,(%ecx)
442 xacquire lock orl %eax,(%ecx)
443 lock xacquire orl %eax,(%ecx)
444 xrelease lock orl %eax,(%ecx)
445 lock xrelease orl %eax,(%ecx)
446 .byte 0xf0; .byte 0xf2; orl %eax,(%ecx)
447 .byte 0xf0; .byte 0xf3; orl %eax,(%ecx)
448 xacquire lock sbbl %eax,(%ecx)
449 lock xacquire sbbl %eax,(%ecx)
450 xrelease lock sbbl %eax,(%ecx)
451 lock xrelease sbbl %eax,(%ecx)
452 .byte 0xf0; .byte 0xf2; sbbl %eax,(%ecx)
453 .byte 0xf0; .byte 0xf3; sbbl %eax,(%ecx)
454 xacquire lock subl %eax,(%ecx)
455 lock xacquire subl %eax,(%ecx)
456 xrelease lock subl %eax,(%ecx)
457 lock xrelease subl %eax,(%ecx)
458 .byte 0xf0; .byte 0xf2; subl %eax,(%ecx)
459 .byte 0xf0; .byte 0xf3; subl %eax,(%ecx)
460 xacquire lock xchgl %eax,(%ecx)
461 lock xacquire xchgl %eax,(%ecx)
462 xacquire xchgl %eax,(%ecx)
463 xrelease lock xchgl %eax,(%ecx)
464 lock xrelease xchgl %eax,(%ecx)
465 xrelease xchgl %eax,(%ecx)
466 .byte 0xf0; .byte 0xf2; xchgl %eax,(%ecx)
467 .byte 0xf0; .byte 0xf3; xchgl %eax,(%ecx)
468 xacquire lock xorl %eax,(%ecx)
469 lock xacquire xorl %eax,(%ecx)
470 xrelease lock xorl %eax,(%ecx)
471 lock xrelease xorl %eax,(%ecx)
472 .byte 0xf0; .byte 0xf2; xorl %eax,(%ecx)
473 .byte 0xf0; .byte 0xf3; xorl %eax,(%ecx)
474
475 # Tests for op regs, regs/m16
476 xacquire lock btcw %ax,(%ecx)
477 lock xacquire btcw %ax,(%ecx)
478 xrelease lock btcw %ax,(%ecx)
479 lock xrelease btcw %ax,(%ecx)
480 .byte 0xf0; .byte 0xf2; btcw %ax,(%ecx)
481 .byte 0xf0; .byte 0xf3; btcw %ax,(%ecx)
482 xacquire lock btrw %ax,(%ecx)
483 lock xacquire btrw %ax,(%ecx)
484 xrelease lock btrw %ax,(%ecx)
485 lock xrelease btrw %ax,(%ecx)
486 .byte 0xf0; .byte 0xf2; btrw %ax,(%ecx)
487 .byte 0xf0; .byte 0xf3; btrw %ax,(%ecx)
488 xacquire lock btsw %ax,(%ecx)
489 lock xacquire btsw %ax,(%ecx)
490 xrelease lock btsw %ax,(%ecx)
491 lock xrelease btsw %ax,(%ecx)
492 .byte 0xf0; .byte 0xf2; btsw %ax,(%ecx)
493 .byte 0xf0; .byte 0xf3; btsw %ax,(%ecx)
494 xacquire lock cmpxchgw %ax,(%ecx)
495 lock xacquire cmpxchgw %ax,(%ecx)
496 xrelease lock cmpxchgw %ax,(%ecx)
497 lock xrelease cmpxchgw %ax,(%ecx)
498 .byte 0xf0; .byte 0xf2; cmpxchgw %ax,(%ecx)
499 .byte 0xf0; .byte 0xf3; cmpxchgw %ax,(%ecx)
500 xacquire lock xaddw %ax,(%ecx)
501 lock xacquire xaddw %ax,(%ecx)
502 xrelease lock xaddw %ax,(%ecx)
503 lock xrelease xaddw %ax,(%ecx)
504 .byte 0xf0; .byte 0xf2; xaddw %ax,(%ecx)
505 .byte 0xf0; .byte 0xf3; xaddw %ax,(%ecx)
506
507 # Tests for op regl regl/m32
508 xacquire lock btcl %eax,(%ecx)
509 lock xacquire btcl %eax,(%ecx)
510 xrelease lock btcl %eax,(%ecx)
511 lock xrelease btcl %eax,(%ecx)
512 .byte 0xf0; .byte 0xf2; btcl %eax,(%ecx)
513 .byte 0xf0; .byte 0xf3; btcl %eax,(%ecx)
514 xacquire lock btrl %eax,(%ecx)
515 lock xacquire btrl %eax,(%ecx)
516 xrelease lock btrl %eax,(%ecx)
517 lock xrelease btrl %eax,(%ecx)
518 .byte 0xf0; .byte 0xf2; btrl %eax,(%ecx)
519 .byte 0xf0; .byte 0xf3; btrl %eax,(%ecx)
520 xacquire lock btsl %eax,(%ecx)
521 lock xacquire btsl %eax,(%ecx)
522 xrelease lock btsl %eax,(%ecx)
523 lock xrelease btsl %eax,(%ecx)
524 .byte 0xf0; .byte 0xf2; btsl %eax,(%ecx)
525 .byte 0xf0; .byte 0xf3; btsl %eax,(%ecx)
526 xacquire lock cmpxchgl %eax,(%ecx)
527 lock xacquire cmpxchgl %eax,(%ecx)
528 xrelease lock cmpxchgl %eax,(%ecx)
529 lock xrelease cmpxchgl %eax,(%ecx)
530 .byte 0xf0; .byte 0xf2; cmpxchgl %eax,(%ecx)
531 .byte 0xf0; .byte 0xf3; cmpxchgl %eax,(%ecx)
532 xacquire lock xaddl %eax,(%ecx)
533 lock xacquire xaddl %eax,(%ecx)
534 xrelease lock xaddl %eax,(%ecx)
535 lock xrelease xaddl %eax,(%ecx)
536 .byte 0xf0; .byte 0xf2; xaddl %eax,(%ecx)
537 .byte 0xf0; .byte 0xf3; xaddl %eax,(%ecx)
538
539 # Tests for op regb/m8
540 xacquire lock decb (%ecx)
541 lock xacquire decb (%ecx)
542 xrelease lock decb (%ecx)
543 lock xrelease decb (%ecx)
544 .byte 0xf0; .byte 0xf2; decb (%ecx)
545 .byte 0xf0; .byte 0xf3; decb (%ecx)
546 xacquire lock incb (%ecx)
547 lock xacquire incb (%ecx)
548 xrelease lock incb (%ecx)
549 lock xrelease incb (%ecx)
550 .byte 0xf0; .byte 0xf2; incb (%ecx)
551 .byte 0xf0; .byte 0xf3; incb (%ecx)
552 xacquire lock negb (%ecx)
553 lock xacquire negb (%ecx)
554 xrelease lock negb (%ecx)
555 lock xrelease negb (%ecx)
556 .byte 0xf0; .byte 0xf2; negb (%ecx)
557 .byte 0xf0; .byte 0xf3; negb (%ecx)
558 xacquire lock notb (%ecx)
559 lock xacquire notb (%ecx)
560 xrelease lock notb (%ecx)
561 lock xrelease notb (%ecx)
562 .byte 0xf0; .byte 0xf2; notb (%ecx)
563 .byte 0xf0; .byte 0xf3; notb (%ecx)
564
565 # Tests for op regs/m16
566 xacquire lock decw (%ecx)
567 lock xacquire decw (%ecx)
568 xrelease lock decw (%ecx)
569 lock xrelease decw (%ecx)
570 .byte 0xf0; .byte 0xf2; decw (%ecx)
571 .byte 0xf0; .byte 0xf3; decw (%ecx)
572 xacquire lock incw (%ecx)
573 lock xacquire incw (%ecx)
574 xrelease lock incw (%ecx)
575 lock xrelease incw (%ecx)
576 .byte 0xf0; .byte 0xf2; incw (%ecx)
577 .byte 0xf0; .byte 0xf3; incw (%ecx)
578 xacquire lock negw (%ecx)
579 lock xacquire negw (%ecx)
580 xrelease lock negw (%ecx)
581 lock xrelease negw (%ecx)
582 .byte 0xf0; .byte 0xf2; negw (%ecx)
583 .byte 0xf0; .byte 0xf3; negw (%ecx)
584 xacquire lock notw (%ecx)
585 lock xacquire notw (%ecx)
586 xrelease lock notw (%ecx)
587 lock xrelease notw (%ecx)
588 .byte 0xf0; .byte 0xf2; notw (%ecx)
589 .byte 0xf0; .byte 0xf3; notw (%ecx)
590
591 # Tests for op regl/m32
592 xacquire lock decl (%ecx)
593 lock xacquire decl (%ecx)
594 xrelease lock decl (%ecx)
595 lock xrelease decl (%ecx)
596 .byte 0xf0; .byte 0xf2; decl (%ecx)
597 .byte 0xf0; .byte 0xf3; decl (%ecx)
598 xacquire lock incl (%ecx)
599 lock xacquire incl (%ecx)
600 xrelease lock incl (%ecx)
601 lock xrelease incl (%ecx)
602 .byte 0xf0; .byte 0xf2; incl (%ecx)
603 .byte 0xf0; .byte 0xf3; incl (%ecx)
604 xacquire lock negl (%ecx)
605 lock xacquire negl (%ecx)
606 xrelease lock negl (%ecx)
607 lock xrelease negl (%ecx)
608 .byte 0xf0; .byte 0xf2; negl (%ecx)
609 .byte 0xf0; .byte 0xf3; negl (%ecx)
610 xacquire lock notl (%ecx)
611 lock xacquire notl (%ecx)
612 xrelease lock notl (%ecx)
613 lock xrelease notl (%ecx)
614 .byte 0xf0; .byte 0xf2; notl (%ecx)
615 .byte 0xf0; .byte 0xf3; notl (%ecx)
616
617 # Tests for op m64
618 xacquire lock cmpxchg8bq (%ecx)
619 lock xacquire cmpxchg8bq (%ecx)
620 xrelease lock cmpxchg8bq (%ecx)
621 lock xrelease cmpxchg8bq (%ecx)
622 .byte 0xf0; .byte 0xf2; cmpxchg8bq (%ecx)
623 .byte 0xf0; .byte 0xf3; cmpxchg8bq (%ecx)
624
625 # Tests for op regb, regb/m8
626 xacquire lock cmpxchgb %cl,(%ecx)
627 lock xacquire cmpxchgb %cl,(%ecx)
628 xrelease lock cmpxchgb %cl,(%ecx)
629 lock xrelease cmpxchgb %cl,(%ecx)
630 .byte 0xf0; .byte 0xf2; cmpxchgb %cl,(%ecx)
631 .byte 0xf0; .byte 0xf3; cmpxchgb %cl,(%ecx)
632 xacquire lock xaddb %cl,(%ecx)
633 lock xacquire xaddb %cl,(%ecx)
634 xrelease lock xaddb %cl,(%ecx)
635 lock xrelease xaddb %cl,(%ecx)
636 .byte 0xf0; .byte 0xf2; xaddb %cl,(%ecx)
637 .byte 0xf0; .byte 0xf3; xaddb %cl,(%ecx)
638
639 .intel_syntax noprefix
640
641 # Tests for op imm8 regb/m8
642 xacquire lock adc BYTE PTR [ecx],100
643 lock xacquire adc BYTE PTR [ecx],100
644 xrelease lock adc BYTE PTR [ecx],100
645 lock xrelease adc BYTE PTR [ecx],100
646 .byte 0xf0; .byte 0xf2; adc BYTE PTR [ecx],100
647 .byte 0xf0; .byte 0xf3; adc BYTE PTR [ecx],100
648 xacquire lock add BYTE PTR [ecx],100
649 lock xacquire add BYTE PTR [ecx],100
650 xrelease lock add BYTE PTR [ecx],100
651 lock xrelease add BYTE PTR [ecx],100
652 .byte 0xf0; .byte 0xf2; add BYTE PTR [ecx],100
653 .byte 0xf0; .byte 0xf3; add BYTE PTR [ecx],100
654 xacquire lock and BYTE PTR [ecx],100
655 lock xacquire and BYTE PTR [ecx],100
656 xrelease lock and BYTE PTR [ecx],100
657 lock xrelease and BYTE PTR [ecx],100
658 .byte 0xf0; .byte 0xf2; and BYTE PTR [ecx],100
659 .byte 0xf0; .byte 0xf3; and BYTE PTR [ecx],100
660 xrelease mov BYTE PTR [ecx],100
661 xacquire lock or BYTE PTR [ecx],100
662 lock xacquire or BYTE PTR [ecx],100
663 xrelease lock or BYTE PTR [ecx],100
664 lock xrelease or BYTE PTR [ecx],100
665 .byte 0xf0; .byte 0xf2; or BYTE PTR [ecx],100
666 .byte 0xf0; .byte 0xf3; or BYTE PTR [ecx],100
667 xacquire lock sbb BYTE PTR [ecx],100
668 lock xacquire sbb BYTE PTR [ecx],100
669 xrelease lock sbb BYTE PTR [ecx],100
670 lock xrelease sbb BYTE PTR [ecx],100
671 .byte 0xf0; .byte 0xf2; sbb BYTE PTR [ecx],100
672 .byte 0xf0; .byte 0xf3; sbb BYTE PTR [ecx],100
673 xacquire lock sub BYTE PTR [ecx],100
674 lock xacquire sub BYTE PTR [ecx],100
675 xrelease lock sub BYTE PTR [ecx],100
676 lock xrelease sub BYTE PTR [ecx],100
677 .byte 0xf0; .byte 0xf2; sub BYTE PTR [ecx],100
678 .byte 0xf0; .byte 0xf3; sub BYTE PTR [ecx],100
679 xacquire lock xor BYTE PTR [ecx],100
680 lock xacquire xor BYTE PTR [ecx],100
681 xrelease lock xor BYTE PTR [ecx],100
682 lock xrelease xor BYTE PTR [ecx],100
683 .byte 0xf0; .byte 0xf2; xor BYTE PTR [ecx],100
684 .byte 0xf0; .byte 0xf3; xor BYTE PTR [ecx],100
685
686 # Tests for op imm16 regs/m16
687 xacquire lock adc WORD PTR [ecx],1000
688 lock xacquire adc WORD PTR [ecx],1000
689 xrelease lock adc WORD PTR [ecx],1000
690 lock xrelease adc WORD PTR [ecx],1000
691 .byte 0xf0; .byte 0xf2; adc WORD PTR [ecx],1000
692 .byte 0xf0; .byte 0xf3; adc WORD PTR [ecx],1000
693 xacquire lock add WORD PTR [ecx],1000
694 lock xacquire add WORD PTR [ecx],1000
695 xrelease lock add WORD PTR [ecx],1000
696 lock xrelease add WORD PTR [ecx],1000
697 .byte 0xf0; .byte 0xf2; add WORD PTR [ecx],1000
698 .byte 0xf0; .byte 0xf3; add WORD PTR [ecx],1000
699 xacquire lock and WORD PTR [ecx],1000
700 lock xacquire and WORD PTR [ecx],1000
701 xrelease lock and WORD PTR [ecx],1000
702 lock xrelease and WORD PTR [ecx],1000
703 .byte 0xf0; .byte 0xf2; and WORD PTR [ecx],1000
704 .byte 0xf0; .byte 0xf3; and WORD PTR [ecx],1000
705 xrelease mov WORD PTR [ecx],1000
706 xacquire lock or WORD PTR [ecx],1000
707 lock xacquire or WORD PTR [ecx],1000
708 xrelease lock or WORD PTR [ecx],1000
709 lock xrelease or WORD PTR [ecx],1000
710 .byte 0xf0; .byte 0xf2; or WORD PTR [ecx],1000
711 .byte 0xf0; .byte 0xf3; or WORD PTR [ecx],1000
712 xacquire lock sbb WORD PTR [ecx],1000
713 lock xacquire sbb WORD PTR [ecx],1000
714 xrelease lock sbb WORD PTR [ecx],1000
715 lock xrelease sbb WORD PTR [ecx],1000
716 .byte 0xf0; .byte 0xf2; sbb WORD PTR [ecx],1000
717 .byte 0xf0; .byte 0xf3; sbb WORD PTR [ecx],1000
718 xacquire lock sub WORD PTR [ecx],1000
719 lock xacquire sub WORD PTR [ecx],1000
720 xrelease lock sub WORD PTR [ecx],1000
721 lock xrelease sub WORD PTR [ecx],1000
722 .byte 0xf0; .byte 0xf2; sub WORD PTR [ecx],1000
723 .byte 0xf0; .byte 0xf3; sub WORD PTR [ecx],1000
724 xacquire lock xor WORD PTR [ecx],1000
725 lock xacquire xor WORD PTR [ecx],1000
726 xrelease lock xor WORD PTR [ecx],1000
727 lock xrelease xor WORD PTR [ecx],1000
728 .byte 0xf0; .byte 0xf2; xor WORD PTR [ecx],1000
729 .byte 0xf0; .byte 0xf3; xor WORD PTR [ecx],1000
730
731 # Tests for op imm32 regl/m32
732 xacquire lock adc DWORD PTR [ecx],10000000
733 lock xacquire adc DWORD PTR [ecx],10000000
734 xrelease lock adc DWORD PTR [ecx],10000000
735 lock xrelease adc DWORD PTR [ecx],10000000
736 .byte 0xf0; .byte 0xf2; adc DWORD PTR [ecx],10000000
737 .byte 0xf0; .byte 0xf3; adc DWORD PTR [ecx],10000000
738 xacquire lock add DWORD PTR [ecx],10000000
739 lock xacquire add DWORD PTR [ecx],10000000
740 xrelease lock add DWORD PTR [ecx],10000000
741 lock xrelease add DWORD PTR [ecx],10000000
742 .byte 0xf0; .byte 0xf2; add DWORD PTR [ecx],10000000
743 .byte 0xf0; .byte 0xf3; add DWORD PTR [ecx],10000000
744 xacquire lock and DWORD PTR [ecx],10000000
745 lock xacquire and DWORD PTR [ecx],10000000
746 xrelease lock and DWORD PTR [ecx],10000000
747 lock xrelease and DWORD PTR [ecx],10000000
748 .byte 0xf0; .byte 0xf2; and DWORD PTR [ecx],10000000
749 .byte 0xf0; .byte 0xf3; and DWORD PTR [ecx],10000000
750 xrelease mov DWORD PTR [ecx],10000000
751 xacquire lock or DWORD PTR [ecx],10000000
752 lock xacquire or DWORD PTR [ecx],10000000
753 xrelease lock or DWORD PTR [ecx],10000000
754 lock xrelease or DWORD PTR [ecx],10000000
755 .byte 0xf0; .byte 0xf2; or DWORD PTR [ecx],10000000
756 .byte 0xf0; .byte 0xf3; or DWORD PTR [ecx],10000000
757 xacquire lock sbb DWORD PTR [ecx],10000000
758 lock xacquire sbb DWORD PTR [ecx],10000000
759 xrelease lock sbb DWORD PTR [ecx],10000000
760 lock xrelease sbb DWORD PTR [ecx],10000000
761 .byte 0xf0; .byte 0xf2; sbb DWORD PTR [ecx],10000000
762 .byte 0xf0; .byte 0xf3; sbb DWORD PTR [ecx],10000000
763 xacquire lock sub DWORD PTR [ecx],10000000
764 lock xacquire sub DWORD PTR [ecx],10000000
765 xrelease lock sub DWORD PTR [ecx],10000000
766 lock xrelease sub DWORD PTR [ecx],10000000
767 .byte 0xf0; .byte 0xf2; sub DWORD PTR [ecx],10000000
768 .byte 0xf0; .byte 0xf3; sub DWORD PTR [ecx],10000000
769 xacquire lock xor DWORD PTR [ecx],10000000
770 lock xacquire xor DWORD PTR [ecx],10000000
771 xrelease lock xor DWORD PTR [ecx],10000000
772 lock xrelease xor DWORD PTR [ecx],10000000
773 .byte 0xf0; .byte 0xf2; xor DWORD PTR [ecx],10000000
774 .byte 0xf0; .byte 0xf3; xor DWORD PTR [ecx],10000000
775
776 # Tests for op imm8 regs/m16
777 xacquire lock adc WORD PTR [ecx],100
778 lock xacquire adc WORD PTR [ecx],100
779 xrelease lock adc WORD PTR [ecx],100
780 lock xrelease adc WORD PTR [ecx],100
781 .byte 0xf0; .byte 0xf2; adc WORD PTR [ecx],100
782 .byte 0xf0; .byte 0xf3; adc WORD PTR [ecx],100
783 xacquire lock add WORD PTR [ecx],100
784 lock xacquire add WORD PTR [ecx],100
785 xrelease lock add WORD PTR [ecx],100
786 lock xrelease add WORD PTR [ecx],100
787 .byte 0xf0; .byte 0xf2; add WORD PTR [ecx],100
788 .byte 0xf0; .byte 0xf3; add WORD PTR [ecx],100
789 xacquire lock and WORD PTR [ecx],100
790 lock xacquire and WORD PTR [ecx],100
791 xrelease lock and WORD PTR [ecx],100
792 lock xrelease and WORD PTR [ecx],100
793 .byte 0xf0; .byte 0xf2; and WORD PTR [ecx],100
794 .byte 0xf0; .byte 0xf3; and WORD PTR [ecx],100
795 xacquire lock btc WORD PTR [ecx],100
796 lock xacquire btc WORD PTR [ecx],100
797 xrelease lock btc WORD PTR [ecx],100
798 lock xrelease btc WORD PTR [ecx],100
799 .byte 0xf0; .byte 0xf2; btc WORD PTR [ecx],100
800 .byte 0xf0; .byte 0xf3; btc WORD PTR [ecx],100
801 xacquire lock btr WORD PTR [ecx],100
802 lock xacquire btr WORD PTR [ecx],100
803 xrelease lock btr WORD PTR [ecx],100
804 lock xrelease btr WORD PTR [ecx],100
805 .byte 0xf0; .byte 0xf2; btr WORD PTR [ecx],100
806 .byte 0xf0; .byte 0xf3; btr WORD PTR [ecx],100
807 xacquire lock bts WORD PTR [ecx],100
808 lock xacquire bts WORD PTR [ecx],100
809 xrelease lock bts WORD PTR [ecx],100
810 lock xrelease bts WORD PTR [ecx],100
811 .byte 0xf0; .byte 0xf2; bts WORD PTR [ecx],100
812 .byte 0xf0; .byte 0xf3; bts WORD PTR [ecx],100
813 xrelease mov WORD PTR [ecx],100
814 xacquire lock or WORD PTR [ecx],100
815 lock xacquire or WORD PTR [ecx],100
816 xrelease lock or WORD PTR [ecx],100
817 lock xrelease or WORD PTR [ecx],100
818 .byte 0xf0; .byte 0xf2; or WORD PTR [ecx],100
819 .byte 0xf0; .byte 0xf3; or WORD PTR [ecx],100
820 xacquire lock sbb WORD PTR [ecx],100
821 lock xacquire sbb WORD PTR [ecx],100
822 xrelease lock sbb WORD PTR [ecx],100
823 lock xrelease sbb WORD PTR [ecx],100
824 .byte 0xf0; .byte 0xf2; sbb WORD PTR [ecx],100
825 .byte 0xf0; .byte 0xf3; sbb WORD PTR [ecx],100
826 xacquire lock sub WORD PTR [ecx],100
827 lock xacquire sub WORD PTR [ecx],100
828 xrelease lock sub WORD PTR [ecx],100
829 lock xrelease sub WORD PTR [ecx],100
830 .byte 0xf0; .byte 0xf2; sub WORD PTR [ecx],100
831 .byte 0xf0; .byte 0xf3; sub WORD PTR [ecx],100
832 xacquire lock xor WORD PTR [ecx],100
833 lock xacquire xor WORD PTR [ecx],100
834 xrelease lock xor WORD PTR [ecx],100
835 lock xrelease xor WORD PTR [ecx],100
836 .byte 0xf0; .byte 0xf2; xor WORD PTR [ecx],100
837 .byte 0xf0; .byte 0xf3; xor WORD PTR [ecx],100
838
839 # Tests for op imm8 regl/m32
840 xacquire lock adc DWORD PTR [ecx],100
841 lock xacquire adc DWORD PTR [ecx],100
842 xrelease lock adc DWORD PTR [ecx],100
843 lock xrelease adc DWORD PTR [ecx],100
844 .byte 0xf0; .byte 0xf2; adc DWORD PTR [ecx],100
845 .byte 0xf0; .byte 0xf3; adc DWORD PTR [ecx],100
846 xacquire lock add DWORD PTR [ecx],100
847 lock xacquire add DWORD PTR [ecx],100
848 xrelease lock add DWORD PTR [ecx],100
849 lock xrelease add DWORD PTR [ecx],100
850 .byte 0xf0; .byte 0xf2; add DWORD PTR [ecx],100
851 .byte 0xf0; .byte 0xf3; add DWORD PTR [ecx],100
852 xacquire lock and DWORD PTR [ecx],100
853 lock xacquire and DWORD PTR [ecx],100
854 xrelease lock and DWORD PTR [ecx],100
855 lock xrelease and DWORD PTR [ecx],100
856 .byte 0xf0; .byte 0xf2; and DWORD PTR [ecx],100
857 .byte 0xf0; .byte 0xf3; and DWORD PTR [ecx],100
858 xacquire lock btc DWORD PTR [ecx],100
859 lock xacquire btc DWORD PTR [ecx],100
860 xrelease lock btc DWORD PTR [ecx],100
861 lock xrelease btc DWORD PTR [ecx],100
862 .byte 0xf0; .byte 0xf2; btc DWORD PTR [ecx],100
863 .byte 0xf0; .byte 0xf3; btc DWORD PTR [ecx],100
864 xacquire lock btr DWORD PTR [ecx],100
865 lock xacquire btr DWORD PTR [ecx],100
866 xrelease lock btr DWORD PTR [ecx],100
867 lock xrelease btr DWORD PTR [ecx],100
868 .byte 0xf0; .byte 0xf2; btr DWORD PTR [ecx],100
869 .byte 0xf0; .byte 0xf3; btr DWORD PTR [ecx],100
870 xacquire lock bts DWORD PTR [ecx],100
871 lock xacquire bts DWORD PTR [ecx],100
872 xrelease lock bts DWORD PTR [ecx],100
873 lock xrelease bts DWORD PTR [ecx],100
874 .byte 0xf0; .byte 0xf2; bts DWORD PTR [ecx],100
875 .byte 0xf0; .byte 0xf3; bts DWORD PTR [ecx],100
876 xrelease mov DWORD PTR [ecx],100
877 xacquire lock or DWORD PTR [ecx],100
878 lock xacquire or DWORD PTR [ecx],100
879 xrelease lock or DWORD PTR [ecx],100
880 lock xrelease or DWORD PTR [ecx],100
881 .byte 0xf0; .byte 0xf2; or DWORD PTR [ecx],100
882 .byte 0xf0; .byte 0xf3; or DWORD PTR [ecx],100
883 xacquire lock sbb DWORD PTR [ecx],100
884 lock xacquire sbb DWORD PTR [ecx],100
885 xrelease lock sbb DWORD PTR [ecx],100
886 lock xrelease sbb DWORD PTR [ecx],100
887 .byte 0xf0; .byte 0xf2; sbb DWORD PTR [ecx],100
888 .byte 0xf0; .byte 0xf3; sbb DWORD PTR [ecx],100
889 xacquire lock sub DWORD PTR [ecx],100
890 lock xacquire sub DWORD PTR [ecx],100
891 xrelease lock sub DWORD PTR [ecx],100
892 lock xrelease sub DWORD PTR [ecx],100
893 .byte 0xf0; .byte 0xf2; sub DWORD PTR [ecx],100
894 .byte 0xf0; .byte 0xf3; sub DWORD PTR [ecx],100
895 xacquire lock xor DWORD PTR [ecx],100
896 lock xacquire xor DWORD PTR [ecx],100
897 xrelease lock xor DWORD PTR [ecx],100
898 lock xrelease xor DWORD PTR [ecx],100
899 .byte 0xf0; .byte 0xf2; xor DWORD PTR [ecx],100
900 .byte 0xf0; .byte 0xf3; xor DWORD PTR [ecx],100
901
902 # Tests for op imm8 regb/m8
903 xacquire lock adc BYTE PTR [ecx],100
904 lock xacquire adc BYTE PTR [ecx],100
905 xrelease lock adc BYTE PTR [ecx],100
906 lock xrelease adc BYTE PTR [ecx],100
907 .byte 0xf0; .byte 0xf2; adc BYTE PTR [ecx],100
908 .byte 0xf0; .byte 0xf3; adc BYTE PTR [ecx],100
909 xacquire lock add BYTE PTR [ecx],100
910 lock xacquire add BYTE PTR [ecx],100
911 xrelease lock add BYTE PTR [ecx],100
912 lock xrelease add BYTE PTR [ecx],100
913 .byte 0xf0; .byte 0xf2; add BYTE PTR [ecx],100
914 .byte 0xf0; .byte 0xf3; add BYTE PTR [ecx],100
915 xacquire lock and BYTE PTR [ecx],100
916 lock xacquire and BYTE PTR [ecx],100
917 xrelease lock and BYTE PTR [ecx],100
918 lock xrelease and BYTE PTR [ecx],100
919 .byte 0xf0; .byte 0xf2; and BYTE PTR [ecx],100
920 .byte 0xf0; .byte 0xf3; and BYTE PTR [ecx],100
921 xrelease mov BYTE PTR [ecx],100
922 xacquire lock or BYTE PTR [ecx],100
923 lock xacquire or BYTE PTR [ecx],100
924 xrelease lock or BYTE PTR [ecx],100
925 lock xrelease or BYTE PTR [ecx],100
926 .byte 0xf0; .byte 0xf2; or BYTE PTR [ecx],100
927 .byte 0xf0; .byte 0xf3; or BYTE PTR [ecx],100
928 xacquire lock sbb BYTE PTR [ecx],100
929 lock xacquire sbb BYTE PTR [ecx],100
930 xrelease lock sbb BYTE PTR [ecx],100
931 lock xrelease sbb BYTE PTR [ecx],100
932 .byte 0xf0; .byte 0xf2; sbb BYTE PTR [ecx],100
933 .byte 0xf0; .byte 0xf3; sbb BYTE PTR [ecx],100
934 xacquire lock sub BYTE PTR [ecx],100
935 lock xacquire sub BYTE PTR [ecx],100
936 xrelease lock sub BYTE PTR [ecx],100
937 lock xrelease sub BYTE PTR [ecx],100
938 .byte 0xf0; .byte 0xf2; sub BYTE PTR [ecx],100
939 .byte 0xf0; .byte 0xf3; sub BYTE PTR [ecx],100
940 xacquire lock xor BYTE PTR [ecx],100
941 lock xacquire xor BYTE PTR [ecx],100
942 xrelease lock xor BYTE PTR [ecx],100
943 lock xrelease xor BYTE PTR [ecx],100
944 .byte 0xf0; .byte 0xf2; xor BYTE PTR [ecx],100
945 .byte 0xf0; .byte 0xf3; xor BYTE PTR [ecx],100
946
947 # Tests for op regb regb/m8
948 # Tests for op regb/m8 regb
949 xacquire lock adc BYTE PTR [ecx],al
950 lock xacquire adc BYTE PTR [ecx],al
951 xrelease lock adc BYTE PTR [ecx],al
952 lock xrelease adc BYTE PTR [ecx],al
953 .byte 0xf0; .byte 0xf2; adc BYTE PTR [ecx],al
954 .byte 0xf0; .byte 0xf3; adc BYTE PTR [ecx],al
955 xacquire lock add BYTE PTR [ecx],al
956 lock xacquire add BYTE PTR [ecx],al
957 xrelease lock add BYTE PTR [ecx],al
958 lock xrelease add BYTE PTR [ecx],al
959 .byte 0xf0; .byte 0xf2; add BYTE PTR [ecx],al
960 .byte 0xf0; .byte 0xf3; add BYTE PTR [ecx],al
961 xacquire lock and BYTE PTR [ecx],al
962 lock xacquire and BYTE PTR [ecx],al
963 xrelease lock and BYTE PTR [ecx],al
964 lock xrelease and BYTE PTR [ecx],al
965 .byte 0xf0; .byte 0xf2; and BYTE PTR [ecx],al
966 .byte 0xf0; .byte 0xf3; and BYTE PTR [ecx],al
967 xrelease mov BYTE PTR [ecx],al
968 xacquire lock or BYTE PTR [ecx],al
969 lock xacquire or BYTE PTR [ecx],al
970 xrelease lock or BYTE PTR [ecx],al
971 lock xrelease or BYTE PTR [ecx],al
972 .byte 0xf0; .byte 0xf2; or BYTE PTR [ecx],al
973 .byte 0xf0; .byte 0xf3; or BYTE PTR [ecx],al
974 xacquire lock sbb BYTE PTR [ecx],al
975 lock xacquire sbb BYTE PTR [ecx],al
976 xrelease lock sbb BYTE PTR [ecx],al
977 lock xrelease sbb BYTE PTR [ecx],al
978 .byte 0xf0; .byte 0xf2; sbb BYTE PTR [ecx],al
979 .byte 0xf0; .byte 0xf3; sbb BYTE PTR [ecx],al
980 xacquire lock sub BYTE PTR [ecx],al
981 lock xacquire sub BYTE PTR [ecx],al
982 xrelease lock sub BYTE PTR [ecx],al
983 lock xrelease sub BYTE PTR [ecx],al
984 .byte 0xf0; .byte 0xf2; sub BYTE PTR [ecx],al
985 .byte 0xf0; .byte 0xf3; sub BYTE PTR [ecx],al
986 xacquire lock xchg BYTE PTR [ecx],al
987 lock xacquire xchg BYTE PTR [ecx],al
988 xacquire xchg BYTE PTR [ecx],al
989 xrelease lock xchg BYTE PTR [ecx],al
990 lock xrelease xchg BYTE PTR [ecx],al
991 xrelease xchg BYTE PTR [ecx],al
992 .byte 0xf0; .byte 0xf2; xchg BYTE PTR [ecx],al
993 .byte 0xf0; .byte 0xf3; xchg BYTE PTR [ecx],al
994 xacquire lock xor BYTE PTR [ecx],al
995 lock xacquire xor BYTE PTR [ecx],al
996 xrelease lock xor BYTE PTR [ecx],al
997 lock xrelease xor BYTE PTR [ecx],al
998 .byte 0xf0; .byte 0xf2; xor BYTE PTR [ecx],al
999 .byte 0xf0; .byte 0xf3; xor BYTE PTR [ecx],al
1000
1001 # Tests for op regs regs/m16
1002 # Tests for op regs/m16 regs
1003 xacquire lock adc WORD PTR [ecx],ax
1004 lock xacquire adc WORD PTR [ecx],ax
1005 xrelease lock adc WORD PTR [ecx],ax
1006 lock xrelease adc WORD PTR [ecx],ax
1007 .byte 0xf0; .byte 0xf2; adc WORD PTR [ecx],ax
1008 .byte 0xf0; .byte 0xf3; adc WORD PTR [ecx],ax
1009 xacquire lock add WORD PTR [ecx],ax
1010 lock xacquire add WORD PTR [ecx],ax
1011 xrelease lock add WORD PTR [ecx],ax
1012 lock xrelease add WORD PTR [ecx],ax
1013 .byte 0xf0; .byte 0xf2; add WORD PTR [ecx],ax
1014 .byte 0xf0; .byte 0xf3; add WORD PTR [ecx],ax
1015 xacquire lock and WORD PTR [ecx],ax
1016 lock xacquire and WORD PTR [ecx],ax
1017 xrelease lock and WORD PTR [ecx],ax
1018 lock xrelease and WORD PTR [ecx],ax
1019 .byte 0xf0; .byte 0xf2; and WORD PTR [ecx],ax
1020 .byte 0xf0; .byte 0xf3; and WORD PTR [ecx],ax
1021 xrelease mov WORD PTR [ecx],ax
1022 xacquire lock or WORD PTR [ecx],ax
1023 lock xacquire or WORD PTR [ecx],ax
1024 xrelease lock or WORD PTR [ecx],ax
1025 lock xrelease or WORD PTR [ecx],ax
1026 .byte 0xf0; .byte 0xf2; or WORD PTR [ecx],ax
1027 .byte 0xf0; .byte 0xf3; or WORD PTR [ecx],ax
1028 xacquire lock sbb WORD PTR [ecx],ax
1029 lock xacquire sbb WORD PTR [ecx],ax
1030 xrelease lock sbb WORD PTR [ecx],ax
1031 lock xrelease sbb WORD PTR [ecx],ax
1032 .byte 0xf0; .byte 0xf2; sbb WORD PTR [ecx],ax
1033 .byte 0xf0; .byte 0xf3; sbb WORD PTR [ecx],ax
1034 xacquire lock sub WORD PTR [ecx],ax
1035 lock xacquire sub WORD PTR [ecx],ax
1036 xrelease lock sub WORD PTR [ecx],ax
1037 lock xrelease sub WORD PTR [ecx],ax
1038 .byte 0xf0; .byte 0xf2; sub WORD PTR [ecx],ax
1039 .byte 0xf0; .byte 0xf3; sub WORD PTR [ecx],ax
1040 xacquire lock xchg WORD PTR [ecx],ax
1041 lock xacquire xchg WORD PTR [ecx],ax
1042 xacquire xchg WORD PTR [ecx],ax
1043 xrelease lock xchg WORD PTR [ecx],ax
1044 lock xrelease xchg WORD PTR [ecx],ax
1045 xrelease xchg WORD PTR [ecx],ax
1046 .byte 0xf0; .byte 0xf2; xchg WORD PTR [ecx],ax
1047 .byte 0xf0; .byte 0xf3; xchg WORD PTR [ecx],ax
1048 xacquire lock xor WORD PTR [ecx],ax
1049 lock xacquire xor WORD PTR [ecx],ax
1050 xrelease lock xor WORD PTR [ecx],ax
1051 lock xrelease xor WORD PTR [ecx],ax
1052 .byte 0xf0; .byte 0xf2; xor WORD PTR [ecx],ax
1053 .byte 0xf0; .byte 0xf3; xor WORD PTR [ecx],ax
1054
1055 # Tests for op regl regl/m32
1056 # Tests for op regl/m32 regl
1057 xacquire lock adc DWORD PTR [ecx],eax
1058 lock xacquire adc DWORD PTR [ecx],eax
1059 xrelease lock adc DWORD PTR [ecx],eax
1060 lock xrelease adc DWORD PTR [ecx],eax
1061 .byte 0xf0; .byte 0xf2; adc DWORD PTR [ecx],eax
1062 .byte 0xf0; .byte 0xf3; adc DWORD PTR [ecx],eax
1063 xacquire lock add DWORD PTR [ecx],eax
1064 lock xacquire add DWORD PTR [ecx],eax
1065 xrelease lock add DWORD PTR [ecx],eax
1066 lock xrelease add DWORD PTR [ecx],eax
1067 .byte 0xf0; .byte 0xf2; add DWORD PTR [ecx],eax
1068 .byte 0xf0; .byte 0xf3; add DWORD PTR [ecx],eax
1069 xacquire lock and DWORD PTR [ecx],eax
1070 lock xacquire and DWORD PTR [ecx],eax
1071 xrelease lock and DWORD PTR [ecx],eax
1072 lock xrelease and DWORD PTR [ecx],eax
1073 .byte 0xf0; .byte 0xf2; and DWORD PTR [ecx],eax
1074 .byte 0xf0; .byte 0xf3; and DWORD PTR [ecx],eax
1075 xrelease mov DWORD PTR [ecx],eax
1076 xacquire lock or DWORD PTR [ecx],eax
1077 lock xacquire or DWORD PTR [ecx],eax
1078 xrelease lock or DWORD PTR [ecx],eax
1079 lock xrelease or DWORD PTR [ecx],eax
1080 .byte 0xf0; .byte 0xf2; or DWORD PTR [ecx],eax
1081 .byte 0xf0; .byte 0xf3; or DWORD PTR [ecx],eax
1082 xacquire lock sbb DWORD PTR [ecx],eax
1083 lock xacquire sbb DWORD PTR [ecx],eax
1084 xrelease lock sbb DWORD PTR [ecx],eax
1085 lock xrelease sbb DWORD PTR [ecx],eax
1086 .byte 0xf0; .byte 0xf2; sbb DWORD PTR [ecx],eax
1087 .byte 0xf0; .byte 0xf3; sbb DWORD PTR [ecx],eax
1088 xacquire lock sub DWORD PTR [ecx],eax
1089 lock xacquire sub DWORD PTR [ecx],eax
1090 xrelease lock sub DWORD PTR [ecx],eax
1091 lock xrelease sub DWORD PTR [ecx],eax
1092 .byte 0xf0; .byte 0xf2; sub DWORD PTR [ecx],eax
1093 .byte 0xf0; .byte 0xf3; sub DWORD PTR [ecx],eax
1094 xacquire lock xchg DWORD PTR [ecx],eax
1095 lock xacquire xchg DWORD PTR [ecx],eax
1096 xacquire xchg DWORD PTR [ecx],eax
1097 xrelease lock xchg DWORD PTR [ecx],eax
1098 lock xrelease xchg DWORD PTR [ecx],eax
1099 xrelease xchg DWORD PTR [ecx],eax
1100 .byte 0xf0; .byte 0xf2; xchg DWORD PTR [ecx],eax
1101 .byte 0xf0; .byte 0xf3; xchg DWORD PTR [ecx],eax
1102 xacquire lock xor DWORD PTR [ecx],eax
1103 lock xacquire xor DWORD PTR [ecx],eax
1104 xrelease lock xor DWORD PTR [ecx],eax
1105 lock xrelease xor DWORD PTR [ecx],eax
1106 .byte 0xf0; .byte 0xf2; xor DWORD PTR [ecx],eax
1107 .byte 0xf0; .byte 0xf3; xor DWORD PTR [ecx],eax
1108
1109 # Tests for op regs, regs/m16
1110 xacquire lock btc WORD PTR [ecx],ax
1111 lock xacquire btc WORD PTR [ecx],ax
1112 xrelease lock btc WORD PTR [ecx],ax
1113 lock xrelease btc WORD PTR [ecx],ax
1114 .byte 0xf0; .byte 0xf2; btc WORD PTR [ecx],ax
1115 .byte 0xf0; .byte 0xf3; btc WORD PTR [ecx],ax
1116 xacquire lock btr WORD PTR [ecx],ax
1117 lock xacquire btr WORD PTR [ecx],ax
1118 xrelease lock btr WORD PTR [ecx],ax
1119 lock xrelease btr WORD PTR [ecx],ax
1120 .byte 0xf0; .byte 0xf2; btr WORD PTR [ecx],ax
1121 .byte 0xf0; .byte 0xf3; btr WORD PTR [ecx],ax
1122 xacquire lock bts WORD PTR [ecx],ax
1123 lock xacquire bts WORD PTR [ecx],ax
1124 xrelease lock bts WORD PTR [ecx],ax
1125 lock xrelease bts WORD PTR [ecx],ax
1126 .byte 0xf0; .byte 0xf2; bts WORD PTR [ecx],ax
1127 .byte 0xf0; .byte 0xf3; bts WORD PTR [ecx],ax
1128 xacquire lock cmpxchg WORD PTR [ecx],ax
1129 lock xacquire cmpxchg WORD PTR [ecx],ax
1130 xrelease lock cmpxchg WORD PTR [ecx],ax
1131 lock xrelease cmpxchg WORD PTR [ecx],ax
1132 .byte 0xf0; .byte 0xf2; cmpxchg WORD PTR [ecx],ax
1133 .byte 0xf0; .byte 0xf3; cmpxchg WORD PTR [ecx],ax
1134 xacquire lock xadd WORD PTR [ecx],ax
1135 lock xacquire xadd WORD PTR [ecx],ax
1136 xrelease lock xadd WORD PTR [ecx],ax
1137 lock xrelease xadd WORD PTR [ecx],ax
1138 .byte 0xf0; .byte 0xf2; xadd WORD PTR [ecx],ax
1139 .byte 0xf0; .byte 0xf3; xadd WORD PTR [ecx],ax
1140
1141 # Tests for op regl regl/m32
1142 xacquire lock btc DWORD PTR [ecx],eax
1143 lock xacquire btc DWORD PTR [ecx],eax
1144 xrelease lock btc DWORD PTR [ecx],eax
1145 lock xrelease btc DWORD PTR [ecx],eax
1146 .byte 0xf0; .byte 0xf2; btc DWORD PTR [ecx],eax
1147 .byte 0xf0; .byte 0xf3; btc DWORD PTR [ecx],eax
1148 xacquire lock btr DWORD PTR [ecx],eax
1149 lock xacquire btr DWORD PTR [ecx],eax
1150 xrelease lock btr DWORD PTR [ecx],eax
1151 lock xrelease btr DWORD PTR [ecx],eax
1152 .byte 0xf0; .byte 0xf2; btr DWORD PTR [ecx],eax
1153 .byte 0xf0; .byte 0xf3; btr DWORD PTR [ecx],eax
1154 xacquire lock bts DWORD PTR [ecx],eax
1155 lock xacquire bts DWORD PTR [ecx],eax
1156 xrelease lock bts DWORD PTR [ecx],eax
1157 lock xrelease bts DWORD PTR [ecx],eax
1158 .byte 0xf0; .byte 0xf2; bts DWORD PTR [ecx],eax
1159 .byte 0xf0; .byte 0xf3; bts DWORD PTR [ecx],eax
1160 xacquire lock cmpxchg DWORD PTR [ecx],eax
1161 lock xacquire cmpxchg DWORD PTR [ecx],eax
1162 xrelease lock cmpxchg DWORD PTR [ecx],eax
1163 lock xrelease cmpxchg DWORD PTR [ecx],eax
1164 .byte 0xf0; .byte 0xf2; cmpxchg DWORD PTR [ecx],eax
1165 .byte 0xf0; .byte 0xf3; cmpxchg DWORD PTR [ecx],eax
1166 xacquire lock xadd DWORD PTR [ecx],eax
1167 lock xacquire xadd DWORD PTR [ecx],eax
1168 xrelease lock xadd DWORD PTR [ecx],eax
1169 lock xrelease xadd DWORD PTR [ecx],eax
1170 .byte 0xf0; .byte 0xf2; xadd DWORD PTR [ecx],eax
1171 .byte 0xf0; .byte 0xf3; xadd DWORD PTR [ecx],eax
1172
1173 # Tests for op regb/m8
1174 xacquire lock dec BYTE PTR [ecx]
1175 lock xacquire dec BYTE PTR [ecx]
1176 xrelease lock dec BYTE PTR [ecx]
1177 lock xrelease dec BYTE PTR [ecx]
1178 .byte 0xf0; .byte 0xf2; dec BYTE PTR [ecx]
1179 .byte 0xf0; .byte 0xf3; dec BYTE PTR [ecx]
1180 xacquire lock inc BYTE PTR [ecx]
1181 lock xacquire inc BYTE PTR [ecx]
1182 xrelease lock inc BYTE PTR [ecx]
1183 lock xrelease inc BYTE PTR [ecx]
1184 .byte 0xf0; .byte 0xf2; inc BYTE PTR [ecx]
1185 .byte 0xf0; .byte 0xf3; inc BYTE PTR [ecx]
1186 xacquire lock neg BYTE PTR [ecx]
1187 lock xacquire neg BYTE PTR [ecx]
1188 xrelease lock neg BYTE PTR [ecx]
1189 lock xrelease neg BYTE PTR [ecx]
1190 .byte 0xf0; .byte 0xf2; neg BYTE PTR [ecx]
1191 .byte 0xf0; .byte 0xf3; neg BYTE PTR [ecx]
1192 xacquire lock not BYTE PTR [ecx]
1193 lock xacquire not BYTE PTR [ecx]
1194 xrelease lock not BYTE PTR [ecx]
1195 lock xrelease not BYTE PTR [ecx]
1196 .byte 0xf0; .byte 0xf2; not BYTE PTR [ecx]
1197 .byte 0xf0; .byte 0xf3; not BYTE PTR [ecx]
1198
1199 # Tests for op regs/m16
1200 xacquire lock dec WORD PTR [ecx]
1201 lock xacquire dec WORD PTR [ecx]
1202 xrelease lock dec WORD PTR [ecx]
1203 lock xrelease dec WORD PTR [ecx]
1204 .byte 0xf0; .byte 0xf2; dec WORD PTR [ecx]
1205 .byte 0xf0; .byte 0xf3; dec WORD PTR [ecx]
1206 xacquire lock inc WORD PTR [ecx]
1207 lock xacquire inc WORD PTR [ecx]
1208 xrelease lock inc WORD PTR [ecx]
1209 lock xrelease inc WORD PTR [ecx]
1210 .byte 0xf0; .byte 0xf2; inc WORD PTR [ecx]
1211 .byte 0xf0; .byte 0xf3; inc WORD PTR [ecx]
1212 xacquire lock neg WORD PTR [ecx]
1213 lock xacquire neg WORD PTR [ecx]
1214 xrelease lock neg WORD PTR [ecx]
1215 lock xrelease neg WORD PTR [ecx]
1216 .byte 0xf0; .byte 0xf2; neg WORD PTR [ecx]
1217 .byte 0xf0; .byte 0xf3; neg WORD PTR [ecx]
1218 xacquire lock not WORD PTR [ecx]
1219 lock xacquire not WORD PTR [ecx]
1220 xrelease lock not WORD PTR [ecx]
1221 lock xrelease not WORD PTR [ecx]
1222 .byte 0xf0; .byte 0xf2; not WORD PTR [ecx]
1223 .byte 0xf0; .byte 0xf3; not WORD PTR [ecx]
1224
1225 # Tests for op regl/m32
1226 xacquire lock dec DWORD PTR [ecx]
1227 lock xacquire dec DWORD PTR [ecx]
1228 xrelease lock dec DWORD PTR [ecx]
1229 lock xrelease dec DWORD PTR [ecx]
1230 .byte 0xf0; .byte 0xf2; dec DWORD PTR [ecx]
1231 .byte 0xf0; .byte 0xf3; dec DWORD PTR [ecx]
1232 xacquire lock inc DWORD PTR [ecx]
1233 lock xacquire inc DWORD PTR [ecx]
1234 xrelease lock inc DWORD PTR [ecx]
1235 lock xrelease inc DWORD PTR [ecx]
1236 .byte 0xf0; .byte 0xf2; inc DWORD PTR [ecx]
1237 .byte 0xf0; .byte 0xf3; inc DWORD PTR [ecx]
1238 xacquire lock neg DWORD PTR [ecx]
1239 lock xacquire neg DWORD PTR [ecx]
1240 xrelease lock neg DWORD PTR [ecx]
1241 lock xrelease neg DWORD PTR [ecx]
1242 .byte 0xf0; .byte 0xf2; neg DWORD PTR [ecx]
1243 .byte 0xf0; .byte 0xf3; neg DWORD PTR [ecx]
1244 xacquire lock not DWORD PTR [ecx]
1245 lock xacquire not DWORD PTR [ecx]
1246 xrelease lock not DWORD PTR [ecx]
1247 lock xrelease not DWORD PTR [ecx]
1248 .byte 0xf0; .byte 0xf2; not DWORD PTR [ecx]
1249 .byte 0xf0; .byte 0xf3; not DWORD PTR [ecx]
1250
1251 # Tests for op m64
1252 xacquire lock cmpxchg8b QWORD PTR [ecx]
1253 lock xacquire cmpxchg8b QWORD PTR [ecx]
1254 xrelease lock cmpxchg8b QWORD PTR [ecx]
1255 lock xrelease cmpxchg8b QWORD PTR [ecx]
1256 .byte 0xf0; .byte 0xf2; cmpxchg8b QWORD PTR [ecx]
1257 .byte 0xf0; .byte 0xf3; cmpxchg8b QWORD PTR [ecx]
1258
1259 # Tests for op regb, regb/m8
1260 xacquire lock cmpxchg BYTE PTR [ecx],cl
1261 lock xacquire cmpxchg BYTE PTR [ecx],cl
1262 xrelease lock cmpxchg BYTE PTR [ecx],cl
1263 lock xrelease cmpxchg BYTE PTR [ecx],cl
1264 .byte 0xf0; .byte 0xf2; cmpxchg BYTE PTR [ecx],cl
1265 .byte 0xf0; .byte 0xf3; cmpxchg BYTE PTR [ecx],cl
1266 xacquire lock xadd BYTE PTR [ecx],cl
1267 lock xacquire xadd BYTE PTR [ecx],cl
1268 xrelease lock xadd BYTE PTR [ecx],cl
1269 lock xrelease xadd BYTE PTR [ecx],cl
1270 .byte 0xf0; .byte 0xf2; xadd BYTE PTR [ecx],cl
1271 .byte 0xf0; .byte 0xf3; xadd BYTE PTR [ecx],cl
This page took 0.066352 seconds and 4 git commands to generate.