1
# Check 32bit HLE instructions
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
639
.intel_syntax noprefix
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
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
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
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
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
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
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
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
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
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
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
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]
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]
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]
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]
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