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 xrelease movb %al,0x12345678 335 xacquire lock orb %al,(%ecx) 336 lock xacquire orb %al,(%ecx) 337 xrelease lock orb %al,(%ecx) 338 lock xrelease orb %al,(%ecx) 339 .byte 0xf0; .byte 0xf2; orb %al,(%ecx) 340 .byte 0xf0; .byte 0xf3; orb %al,(%ecx) 341 xacquire lock sbbb %al,(%ecx) 342 lock xacquire sbbb %al,(%ecx) 343 xrelease lock sbbb %al,(%ecx) 344 lock xrelease sbbb %al,(%ecx) 345 .byte 0xf0; .byte 0xf2; sbbb %al,(%ecx) 346 .byte 0xf0; .byte 0xf3; sbbb %al,(%ecx) 347 xacquire lock subb %al,(%ecx) 348 lock xacquire subb %al,(%ecx) 349 xrelease lock subb %al,(%ecx) 350 lock xrelease subb %al,(%ecx) 351 .byte 0xf0; .byte 0xf2; subb %al,(%ecx) 352 .byte 0xf0; .byte 0xf3; subb %al,(%ecx) 353 xacquire lock xchgb %al,(%ecx) 354 lock xacquire xchgb %al,(%ecx) 355 xacquire xchgb %al,(%ecx) 356 xrelease lock xchgb %al,(%ecx) 357 lock xrelease xchgb %al,(%ecx) 358 xrelease xchgb %al,(%ecx) 359 .byte 0xf0; .byte 0xf2; xchgb %al,(%ecx) 360 .byte 0xf0; .byte 0xf3; xchgb %al,(%ecx) 361 xacquire lock xorb %al,(%ecx) 362 lock xacquire xorb %al,(%ecx) 363 xrelease lock xorb %al,(%ecx) 364 lock xrelease xorb %al,(%ecx) 365 .byte 0xf0; .byte 0xf2; xorb %al,(%ecx) 366 .byte 0xf0; .byte 0xf3; xorb %al,(%ecx) 367 368# Tests for op regs regs/m16 369# Tests for op regs/m16 regs 370 xacquire lock adcw %ax,(%ecx) 371 lock xacquire adcw %ax,(%ecx) 372 xrelease lock adcw %ax,(%ecx) 373 lock xrelease adcw %ax,(%ecx) 374 .byte 0xf0; .byte 0xf2; adcw %ax,(%ecx) 375 .byte 0xf0; .byte 0xf3; adcw %ax,(%ecx) 376 xacquire lock addw %ax,(%ecx) 377 lock xacquire addw %ax,(%ecx) 378 xrelease lock addw %ax,(%ecx) 379 lock xrelease addw %ax,(%ecx) 380 .byte 0xf0; .byte 0xf2; addw %ax,(%ecx) 381 .byte 0xf0; .byte 0xf3; addw %ax,(%ecx) 382 xacquire lock andw %ax,(%ecx) 383 lock xacquire andw %ax,(%ecx) 384 xrelease lock andw %ax,(%ecx) 385 lock xrelease andw %ax,(%ecx) 386 .byte 0xf0; .byte 0xf2; andw %ax,(%ecx) 387 .byte 0xf0; .byte 0xf3; andw %ax,(%ecx) 388 xrelease movw %ax,(%ecx) 389 xrelease movw %ax,0x12345678 390 xacquire lock orw %ax,(%ecx) 391 lock xacquire orw %ax,(%ecx) 392 xrelease lock orw %ax,(%ecx) 393 lock xrelease orw %ax,(%ecx) 394 .byte 0xf0; .byte 0xf2; orw %ax,(%ecx) 395 .byte 0xf0; .byte 0xf3; orw %ax,(%ecx) 396 xacquire lock sbbw %ax,(%ecx) 397 lock xacquire sbbw %ax,(%ecx) 398 xrelease lock sbbw %ax,(%ecx) 399 lock xrelease sbbw %ax,(%ecx) 400 .byte 0xf0; .byte 0xf2; sbbw %ax,(%ecx) 401 .byte 0xf0; .byte 0xf3; sbbw %ax,(%ecx) 402 xacquire lock subw %ax,(%ecx) 403 lock xacquire subw %ax,(%ecx) 404 xrelease lock subw %ax,(%ecx) 405 lock xrelease subw %ax,(%ecx) 406 .byte 0xf0; .byte 0xf2; subw %ax,(%ecx) 407 .byte 0xf0; .byte 0xf3; subw %ax,(%ecx) 408 xacquire lock xchgw %ax,(%ecx) 409 lock xacquire xchgw %ax,(%ecx) 410 xacquire xchgw %ax,(%ecx) 411 xrelease lock xchgw %ax,(%ecx) 412 lock xrelease xchgw %ax,(%ecx) 413 xrelease xchgw %ax,(%ecx) 414 .byte 0xf0; .byte 0xf2; xchgw %ax,(%ecx) 415 .byte 0xf0; .byte 0xf3; xchgw %ax,(%ecx) 416 xacquire lock xorw %ax,(%ecx) 417 lock xacquire xorw %ax,(%ecx) 418 xrelease lock xorw %ax,(%ecx) 419 lock xrelease xorw %ax,(%ecx) 420 .byte 0xf0; .byte 0xf2; xorw %ax,(%ecx) 421 .byte 0xf0; .byte 0xf3; xorw %ax,(%ecx) 422 423# Tests for op regl regl/m32 424# Tests for op regl/m32 regl 425 xacquire lock adcl %eax,(%ecx) 426 lock xacquire adcl %eax,(%ecx) 427 xrelease lock adcl %eax,(%ecx) 428 lock xrelease adcl %eax,(%ecx) 429 .byte 0xf0; .byte 0xf2; adcl %eax,(%ecx) 430 .byte 0xf0; .byte 0xf3; adcl %eax,(%ecx) 431 xacquire lock addl %eax,(%ecx) 432 lock xacquire addl %eax,(%ecx) 433 xrelease lock addl %eax,(%ecx) 434 lock xrelease addl %eax,(%ecx) 435 .byte 0xf0; .byte 0xf2; addl %eax,(%ecx) 436 .byte 0xf0; .byte 0xf3; addl %eax,(%ecx) 437 xacquire lock andl %eax,(%ecx) 438 lock xacquire andl %eax,(%ecx) 439 xrelease lock andl %eax,(%ecx) 440 lock xrelease andl %eax,(%ecx) 441 .byte 0xf0; .byte 0xf2; andl %eax,(%ecx) 442 .byte 0xf0; .byte 0xf3; andl %eax,(%ecx) 443 xrelease movl %eax,(%ecx) 444 xrelease movl %eax,0x12345678 445 xacquire lock orl %eax,(%ecx) 446 lock xacquire orl %eax,(%ecx) 447 xrelease lock orl %eax,(%ecx) 448 lock xrelease orl %eax,(%ecx) 449 .byte 0xf0; .byte 0xf2; orl %eax,(%ecx) 450 .byte 0xf0; .byte 0xf3; orl %eax,(%ecx) 451 xacquire lock sbbl %eax,(%ecx) 452 lock xacquire sbbl %eax,(%ecx) 453 xrelease lock sbbl %eax,(%ecx) 454 lock xrelease sbbl %eax,(%ecx) 455 .byte 0xf0; .byte 0xf2; sbbl %eax,(%ecx) 456 .byte 0xf0; .byte 0xf3; sbbl %eax,(%ecx) 457 xacquire lock subl %eax,(%ecx) 458 lock xacquire subl %eax,(%ecx) 459 xrelease lock subl %eax,(%ecx) 460 lock xrelease subl %eax,(%ecx) 461 .byte 0xf0; .byte 0xf2; subl %eax,(%ecx) 462 .byte 0xf0; .byte 0xf3; subl %eax,(%ecx) 463 xacquire lock xchgl %eax,(%ecx) 464 lock xacquire xchgl %eax,(%ecx) 465 xacquire xchgl %eax,(%ecx) 466 xrelease lock xchgl %eax,(%ecx) 467 lock xrelease xchgl %eax,(%ecx) 468 xrelease xchgl %eax,(%ecx) 469 .byte 0xf0; .byte 0xf2; xchgl %eax,(%ecx) 470 .byte 0xf0; .byte 0xf3; xchgl %eax,(%ecx) 471 xacquire lock xorl %eax,(%ecx) 472 lock xacquire xorl %eax,(%ecx) 473 xrelease lock xorl %eax,(%ecx) 474 lock xrelease xorl %eax,(%ecx) 475 .byte 0xf0; .byte 0xf2; xorl %eax,(%ecx) 476 .byte 0xf0; .byte 0xf3; xorl %eax,(%ecx) 477 478# Tests for op regs, regs/m16 479 xacquire lock btcw %ax,(%ecx) 480 lock xacquire btcw %ax,(%ecx) 481 xrelease lock btcw %ax,(%ecx) 482 lock xrelease btcw %ax,(%ecx) 483 .byte 0xf0; .byte 0xf2; btcw %ax,(%ecx) 484 .byte 0xf0; .byte 0xf3; btcw %ax,(%ecx) 485 xacquire lock btrw %ax,(%ecx) 486 lock xacquire btrw %ax,(%ecx) 487 xrelease lock btrw %ax,(%ecx) 488 lock xrelease btrw %ax,(%ecx) 489 .byte 0xf0; .byte 0xf2; btrw %ax,(%ecx) 490 .byte 0xf0; .byte 0xf3; btrw %ax,(%ecx) 491 xacquire lock btsw %ax,(%ecx) 492 lock xacquire btsw %ax,(%ecx) 493 xrelease lock btsw %ax,(%ecx) 494 lock xrelease btsw %ax,(%ecx) 495 .byte 0xf0; .byte 0xf2; btsw %ax,(%ecx) 496 .byte 0xf0; .byte 0xf3; btsw %ax,(%ecx) 497 xacquire lock cmpxchgw %ax,(%ecx) 498 lock xacquire cmpxchgw %ax,(%ecx) 499 xrelease lock cmpxchgw %ax,(%ecx) 500 lock xrelease cmpxchgw %ax,(%ecx) 501 .byte 0xf0; .byte 0xf2; cmpxchgw %ax,(%ecx) 502 .byte 0xf0; .byte 0xf3; cmpxchgw %ax,(%ecx) 503 xacquire lock xaddw %ax,(%ecx) 504 lock xacquire xaddw %ax,(%ecx) 505 xrelease lock xaddw %ax,(%ecx) 506 lock xrelease xaddw %ax,(%ecx) 507 .byte 0xf0; .byte 0xf2; xaddw %ax,(%ecx) 508 .byte 0xf0; .byte 0xf3; xaddw %ax,(%ecx) 509 510# Tests for op regl regl/m32 511 xacquire lock btcl %eax,(%ecx) 512 lock xacquire btcl %eax,(%ecx) 513 xrelease lock btcl %eax,(%ecx) 514 lock xrelease btcl %eax,(%ecx) 515 .byte 0xf0; .byte 0xf2; btcl %eax,(%ecx) 516 .byte 0xf0; .byte 0xf3; btcl %eax,(%ecx) 517 xacquire lock btrl %eax,(%ecx) 518 lock xacquire btrl %eax,(%ecx) 519 xrelease lock btrl %eax,(%ecx) 520 lock xrelease btrl %eax,(%ecx) 521 .byte 0xf0; .byte 0xf2; btrl %eax,(%ecx) 522 .byte 0xf0; .byte 0xf3; btrl %eax,(%ecx) 523 xacquire lock btsl %eax,(%ecx) 524 lock xacquire btsl %eax,(%ecx) 525 xrelease lock btsl %eax,(%ecx) 526 lock xrelease btsl %eax,(%ecx) 527 .byte 0xf0; .byte 0xf2; btsl %eax,(%ecx) 528 .byte 0xf0; .byte 0xf3; btsl %eax,(%ecx) 529 xacquire lock cmpxchgl %eax,(%ecx) 530 lock xacquire cmpxchgl %eax,(%ecx) 531 xrelease lock cmpxchgl %eax,(%ecx) 532 lock xrelease cmpxchgl %eax,(%ecx) 533 .byte 0xf0; .byte 0xf2; cmpxchgl %eax,(%ecx) 534 .byte 0xf0; .byte 0xf3; cmpxchgl %eax,(%ecx) 535 xacquire lock xaddl %eax,(%ecx) 536 lock xacquire xaddl %eax,(%ecx) 537 xrelease lock xaddl %eax,(%ecx) 538 lock xrelease xaddl %eax,(%ecx) 539 .byte 0xf0; .byte 0xf2; xaddl %eax,(%ecx) 540 .byte 0xf0; .byte 0xf3; xaddl %eax,(%ecx) 541 542# Tests for op regb/m8 543 xacquire lock decb (%ecx) 544 lock xacquire decb (%ecx) 545 xrelease lock decb (%ecx) 546 lock xrelease decb (%ecx) 547 .byte 0xf0; .byte 0xf2; decb (%ecx) 548 .byte 0xf0; .byte 0xf3; decb (%ecx) 549 xacquire lock incb (%ecx) 550 lock xacquire incb (%ecx) 551 xrelease lock incb (%ecx) 552 lock xrelease incb (%ecx) 553 .byte 0xf0; .byte 0xf2; incb (%ecx) 554 .byte 0xf0; .byte 0xf3; incb (%ecx) 555 xacquire lock negb (%ecx) 556 lock xacquire negb (%ecx) 557 xrelease lock negb (%ecx) 558 lock xrelease negb (%ecx) 559 .byte 0xf0; .byte 0xf2; negb (%ecx) 560 .byte 0xf0; .byte 0xf3; negb (%ecx) 561 xacquire lock notb (%ecx) 562 lock xacquire notb (%ecx) 563 xrelease lock notb (%ecx) 564 lock xrelease notb (%ecx) 565 .byte 0xf0; .byte 0xf2; notb (%ecx) 566 .byte 0xf0; .byte 0xf3; notb (%ecx) 567 568# Tests for op regs/m16 569 xacquire lock decw (%ecx) 570 lock xacquire decw (%ecx) 571 xrelease lock decw (%ecx) 572 lock xrelease decw (%ecx) 573 .byte 0xf0; .byte 0xf2; decw (%ecx) 574 .byte 0xf0; .byte 0xf3; decw (%ecx) 575 xacquire lock incw (%ecx) 576 lock xacquire incw (%ecx) 577 xrelease lock incw (%ecx) 578 lock xrelease incw (%ecx) 579 .byte 0xf0; .byte 0xf2; incw (%ecx) 580 .byte 0xf0; .byte 0xf3; incw (%ecx) 581 xacquire lock negw (%ecx) 582 lock xacquire negw (%ecx) 583 xrelease lock negw (%ecx) 584 lock xrelease negw (%ecx) 585 .byte 0xf0; .byte 0xf2; negw (%ecx) 586 .byte 0xf0; .byte 0xf3; negw (%ecx) 587 xacquire lock notw (%ecx) 588 lock xacquire notw (%ecx) 589 xrelease lock notw (%ecx) 590 lock xrelease notw (%ecx) 591 .byte 0xf0; .byte 0xf2; notw (%ecx) 592 .byte 0xf0; .byte 0xf3; notw (%ecx) 593 594# Tests for op regl/m32 595 xacquire lock decl (%ecx) 596 lock xacquire decl (%ecx) 597 xrelease lock decl (%ecx) 598 lock xrelease decl (%ecx) 599 .byte 0xf0; .byte 0xf2; decl (%ecx) 600 .byte 0xf0; .byte 0xf3; decl (%ecx) 601 xacquire lock incl (%ecx) 602 lock xacquire incl (%ecx) 603 xrelease lock incl (%ecx) 604 lock xrelease incl (%ecx) 605 .byte 0xf0; .byte 0xf2; incl (%ecx) 606 .byte 0xf0; .byte 0xf3; incl (%ecx) 607 xacquire lock negl (%ecx) 608 lock xacquire negl (%ecx) 609 xrelease lock negl (%ecx) 610 lock xrelease negl (%ecx) 611 .byte 0xf0; .byte 0xf2; negl (%ecx) 612 .byte 0xf0; .byte 0xf3; negl (%ecx) 613 xacquire lock notl (%ecx) 614 lock xacquire notl (%ecx) 615 xrelease lock notl (%ecx) 616 lock xrelease notl (%ecx) 617 .byte 0xf0; .byte 0xf2; notl (%ecx) 618 .byte 0xf0; .byte 0xf3; notl (%ecx) 619 620# Tests for op m64 621 xacquire lock cmpxchg8bq (%ecx) 622 lock xacquire cmpxchg8bq (%ecx) 623 xrelease lock cmpxchg8bq (%ecx) 624 lock xrelease cmpxchg8bq (%ecx) 625 .byte 0xf0; .byte 0xf2; cmpxchg8bq (%ecx) 626 .byte 0xf0; .byte 0xf3; cmpxchg8bq (%ecx) 627 628# Tests for op regb, regb/m8 629 xacquire lock cmpxchgb %cl,(%ecx) 630 lock xacquire cmpxchgb %cl,(%ecx) 631 xrelease lock cmpxchgb %cl,(%ecx) 632 lock xrelease cmpxchgb %cl,(%ecx) 633 .byte 0xf0; .byte 0xf2; cmpxchgb %cl,(%ecx) 634 .byte 0xf0; .byte 0xf3; cmpxchgb %cl,(%ecx) 635 xacquire lock xaddb %cl,(%ecx) 636 lock xacquire xaddb %cl,(%ecx) 637 xrelease lock xaddb %cl,(%ecx) 638 lock xrelease xaddb %cl,(%ecx) 639 .byte 0xf0; .byte 0xf2; xaddb %cl,(%ecx) 640 .byte 0xf0; .byte 0xf3; xaddb %cl,(%ecx) 641 642 .intel_syntax noprefix 643 644# Tests for op imm8 regb/m8 645 xacquire lock adc BYTE PTR [ecx],100 646 lock xacquire adc BYTE PTR [ecx],100 647 xrelease lock adc BYTE PTR [ecx],100 648 lock xrelease adc BYTE PTR [ecx],100 649 .byte 0xf0; .byte 0xf2; adc BYTE PTR [ecx],100 650 .byte 0xf0; .byte 0xf3; adc BYTE PTR [ecx],100 651 xacquire lock add BYTE PTR [ecx],100 652 lock xacquire add BYTE PTR [ecx],100 653 xrelease lock add BYTE PTR [ecx],100 654 lock xrelease add BYTE PTR [ecx],100 655 .byte 0xf0; .byte 0xf2; add BYTE PTR [ecx],100 656 .byte 0xf0; .byte 0xf3; add BYTE PTR [ecx],100 657 xacquire lock and BYTE PTR [ecx],100 658 lock xacquire and BYTE PTR [ecx],100 659 xrelease lock and BYTE PTR [ecx],100 660 lock xrelease and BYTE PTR [ecx],100 661 .byte 0xf0; .byte 0xf2; and BYTE PTR [ecx],100 662 .byte 0xf0; .byte 0xf3; and BYTE PTR [ecx],100 663 xrelease mov BYTE PTR [ecx],100 664 xacquire lock or BYTE PTR [ecx],100 665 lock xacquire or BYTE PTR [ecx],100 666 xrelease lock or BYTE PTR [ecx],100 667 lock xrelease or BYTE PTR [ecx],100 668 .byte 0xf0; .byte 0xf2; or BYTE PTR [ecx],100 669 .byte 0xf0; .byte 0xf3; or BYTE PTR [ecx],100 670 xacquire lock sbb BYTE PTR [ecx],100 671 lock xacquire sbb BYTE PTR [ecx],100 672 xrelease lock sbb BYTE PTR [ecx],100 673 lock xrelease sbb BYTE PTR [ecx],100 674 .byte 0xf0; .byte 0xf2; sbb BYTE PTR [ecx],100 675 .byte 0xf0; .byte 0xf3; sbb BYTE PTR [ecx],100 676 xacquire lock sub BYTE PTR [ecx],100 677 lock xacquire sub BYTE PTR [ecx],100 678 xrelease lock sub BYTE PTR [ecx],100 679 lock xrelease sub BYTE PTR [ecx],100 680 .byte 0xf0; .byte 0xf2; sub BYTE PTR [ecx],100 681 .byte 0xf0; .byte 0xf3; sub BYTE PTR [ecx],100 682 xacquire lock xor BYTE PTR [ecx],100 683 lock xacquire xor BYTE PTR [ecx],100 684 xrelease lock xor BYTE PTR [ecx],100 685 lock xrelease xor BYTE PTR [ecx],100 686 .byte 0xf0; .byte 0xf2; xor BYTE PTR [ecx],100 687 .byte 0xf0; .byte 0xf3; xor BYTE PTR [ecx],100 688 689# Tests for op imm16 regs/m16 690 xacquire lock adc WORD PTR [ecx],1000 691 lock xacquire adc WORD PTR [ecx],1000 692 xrelease lock adc WORD PTR [ecx],1000 693 lock xrelease adc WORD PTR [ecx],1000 694 .byte 0xf0; .byte 0xf2; adc WORD PTR [ecx],1000 695 .byte 0xf0; .byte 0xf3; adc WORD PTR [ecx],1000 696 xacquire lock add WORD PTR [ecx],1000 697 lock xacquire add WORD PTR [ecx],1000 698 xrelease lock add WORD PTR [ecx],1000 699 lock xrelease add WORD PTR [ecx],1000 700 .byte 0xf0; .byte 0xf2; add WORD PTR [ecx],1000 701 .byte 0xf0; .byte 0xf3; add WORD PTR [ecx],1000 702 xacquire lock and WORD PTR [ecx],1000 703 lock xacquire and WORD PTR [ecx],1000 704 xrelease lock and WORD PTR [ecx],1000 705 lock xrelease and WORD PTR [ecx],1000 706 .byte 0xf0; .byte 0xf2; and WORD PTR [ecx],1000 707 .byte 0xf0; .byte 0xf3; and WORD PTR [ecx],1000 708 xrelease mov WORD PTR [ecx],1000 709 xacquire lock or WORD PTR [ecx],1000 710 lock xacquire or WORD PTR [ecx],1000 711 xrelease lock or WORD PTR [ecx],1000 712 lock xrelease or WORD PTR [ecx],1000 713 .byte 0xf0; .byte 0xf2; or WORD PTR [ecx],1000 714 .byte 0xf0; .byte 0xf3; or WORD PTR [ecx],1000 715 xacquire lock sbb WORD PTR [ecx],1000 716 lock xacquire sbb WORD PTR [ecx],1000 717 xrelease lock sbb WORD PTR [ecx],1000 718 lock xrelease sbb WORD PTR [ecx],1000 719 .byte 0xf0; .byte 0xf2; sbb WORD PTR [ecx],1000 720 .byte 0xf0; .byte 0xf3; sbb WORD PTR [ecx],1000 721 xacquire lock sub WORD PTR [ecx],1000 722 lock xacquire sub WORD PTR [ecx],1000 723 xrelease lock sub WORD PTR [ecx],1000 724 lock xrelease sub WORD PTR [ecx],1000 725 .byte 0xf0; .byte 0xf2; sub WORD PTR [ecx],1000 726 .byte 0xf0; .byte 0xf3; sub WORD PTR [ecx],1000 727 xacquire lock xor WORD PTR [ecx],1000 728 lock xacquire xor WORD PTR [ecx],1000 729 xrelease lock xor WORD PTR [ecx],1000 730 lock xrelease xor WORD PTR [ecx],1000 731 .byte 0xf0; .byte 0xf2; xor WORD PTR [ecx],1000 732 .byte 0xf0; .byte 0xf3; xor WORD PTR [ecx],1000 733 734# Tests for op imm32 regl/m32 735 xacquire lock adc DWORD PTR [ecx],10000000 736 lock xacquire adc DWORD PTR [ecx],10000000 737 xrelease lock adc DWORD PTR [ecx],10000000 738 lock xrelease adc DWORD PTR [ecx],10000000 739 .byte 0xf0; .byte 0xf2; adc DWORD PTR [ecx],10000000 740 .byte 0xf0; .byte 0xf3; adc DWORD PTR [ecx],10000000 741 xacquire lock add DWORD PTR [ecx],10000000 742 lock xacquire add DWORD PTR [ecx],10000000 743 xrelease lock add DWORD PTR [ecx],10000000 744 lock xrelease add DWORD PTR [ecx],10000000 745 .byte 0xf0; .byte 0xf2; add DWORD PTR [ecx],10000000 746 .byte 0xf0; .byte 0xf3; add DWORD PTR [ecx],10000000 747 xacquire lock and DWORD PTR [ecx],10000000 748 lock xacquire and DWORD PTR [ecx],10000000 749 xrelease lock and DWORD PTR [ecx],10000000 750 lock xrelease and DWORD PTR [ecx],10000000 751 .byte 0xf0; .byte 0xf2; and DWORD PTR [ecx],10000000 752 .byte 0xf0; .byte 0xf3; and DWORD PTR [ecx],10000000 753 xrelease mov DWORD PTR [ecx],10000000 754 xacquire lock or DWORD PTR [ecx],10000000 755 lock xacquire or DWORD PTR [ecx],10000000 756 xrelease lock or DWORD PTR [ecx],10000000 757 lock xrelease or DWORD PTR [ecx],10000000 758 .byte 0xf0; .byte 0xf2; or DWORD PTR [ecx],10000000 759 .byte 0xf0; .byte 0xf3; or DWORD PTR [ecx],10000000 760 xacquire lock sbb DWORD PTR [ecx],10000000 761 lock xacquire sbb DWORD PTR [ecx],10000000 762 xrelease lock sbb DWORD PTR [ecx],10000000 763 lock xrelease sbb DWORD PTR [ecx],10000000 764 .byte 0xf0; .byte 0xf2; sbb DWORD PTR [ecx],10000000 765 .byte 0xf0; .byte 0xf3; sbb DWORD PTR [ecx],10000000 766 xacquire lock sub DWORD PTR [ecx],10000000 767 lock xacquire sub DWORD PTR [ecx],10000000 768 xrelease lock sub DWORD PTR [ecx],10000000 769 lock xrelease sub DWORD PTR [ecx],10000000 770 .byte 0xf0; .byte 0xf2; sub DWORD PTR [ecx],10000000 771 .byte 0xf0; .byte 0xf3; sub DWORD PTR [ecx],10000000 772 xacquire lock xor DWORD PTR [ecx],10000000 773 lock xacquire xor DWORD PTR [ecx],10000000 774 xrelease lock xor DWORD PTR [ecx],10000000 775 lock xrelease xor DWORD PTR [ecx],10000000 776 .byte 0xf0; .byte 0xf2; xor DWORD PTR [ecx],10000000 777 .byte 0xf0; .byte 0xf3; xor DWORD PTR [ecx],10000000 778 779# Tests for op imm8 regs/m16 780 xacquire lock adc WORD PTR [ecx],100 781 lock xacquire adc WORD PTR [ecx],100 782 xrelease lock adc WORD PTR [ecx],100 783 lock xrelease adc WORD PTR [ecx],100 784 .byte 0xf0; .byte 0xf2; adc WORD PTR [ecx],100 785 .byte 0xf0; .byte 0xf3; adc WORD PTR [ecx],100 786 xacquire lock add WORD PTR [ecx],100 787 lock xacquire add WORD PTR [ecx],100 788 xrelease lock add WORD PTR [ecx],100 789 lock xrelease add WORD PTR [ecx],100 790 .byte 0xf0; .byte 0xf2; add WORD PTR [ecx],100 791 .byte 0xf0; .byte 0xf3; add WORD PTR [ecx],100 792 xacquire lock and WORD PTR [ecx],100 793 lock xacquire and WORD PTR [ecx],100 794 xrelease lock and WORD PTR [ecx],100 795 lock xrelease and WORD PTR [ecx],100 796 .byte 0xf0; .byte 0xf2; and WORD PTR [ecx],100 797 .byte 0xf0; .byte 0xf3; and WORD PTR [ecx],100 798 xacquire lock btc WORD PTR [ecx],100 799 lock xacquire btc WORD PTR [ecx],100 800 xrelease lock btc WORD PTR [ecx],100 801 lock xrelease btc WORD PTR [ecx],100 802 .byte 0xf0; .byte 0xf2; btc WORD PTR [ecx],100 803 .byte 0xf0; .byte 0xf3; btc WORD PTR [ecx],100 804 xacquire lock btr WORD PTR [ecx],100 805 lock xacquire btr WORD PTR [ecx],100 806 xrelease lock btr WORD PTR [ecx],100 807 lock xrelease btr WORD PTR [ecx],100 808 .byte 0xf0; .byte 0xf2; btr WORD PTR [ecx],100 809 .byte 0xf0; .byte 0xf3; btr WORD PTR [ecx],100 810 xacquire lock bts WORD PTR [ecx],100 811 lock xacquire bts WORD PTR [ecx],100 812 xrelease lock bts WORD PTR [ecx],100 813 lock xrelease bts WORD PTR [ecx],100 814 .byte 0xf0; .byte 0xf2; bts WORD PTR [ecx],100 815 .byte 0xf0; .byte 0xf3; bts WORD PTR [ecx],100 816 xrelease mov WORD PTR [ecx],100 817 xacquire lock or WORD PTR [ecx],100 818 lock xacquire or WORD PTR [ecx],100 819 xrelease lock or WORD PTR [ecx],100 820 lock xrelease or WORD PTR [ecx],100 821 .byte 0xf0; .byte 0xf2; or WORD PTR [ecx],100 822 .byte 0xf0; .byte 0xf3; or WORD PTR [ecx],100 823 xacquire lock sbb WORD PTR [ecx],100 824 lock xacquire sbb WORD PTR [ecx],100 825 xrelease lock sbb WORD PTR [ecx],100 826 lock xrelease sbb WORD PTR [ecx],100 827 .byte 0xf0; .byte 0xf2; sbb WORD PTR [ecx],100 828 .byte 0xf0; .byte 0xf3; sbb WORD PTR [ecx],100 829 xacquire lock sub WORD PTR [ecx],100 830 lock xacquire sub WORD PTR [ecx],100 831 xrelease lock sub WORD PTR [ecx],100 832 lock xrelease sub WORD PTR [ecx],100 833 .byte 0xf0; .byte 0xf2; sub WORD PTR [ecx],100 834 .byte 0xf0; .byte 0xf3; sub WORD PTR [ecx],100 835 xacquire lock xor WORD PTR [ecx],100 836 lock xacquire xor WORD PTR [ecx],100 837 xrelease lock xor WORD PTR [ecx],100 838 lock xrelease xor WORD PTR [ecx],100 839 .byte 0xf0; .byte 0xf2; xor WORD PTR [ecx],100 840 .byte 0xf0; .byte 0xf3; xor WORD PTR [ecx],100 841 842# Tests for op imm8 regl/m32 843 xacquire lock adc DWORD PTR [ecx],100 844 lock xacquire adc DWORD PTR [ecx],100 845 xrelease lock adc DWORD PTR [ecx],100 846 lock xrelease adc DWORD PTR [ecx],100 847 .byte 0xf0; .byte 0xf2; adc DWORD PTR [ecx],100 848 .byte 0xf0; .byte 0xf3; adc DWORD PTR [ecx],100 849 xacquire lock add DWORD PTR [ecx],100 850 lock xacquire add DWORD PTR [ecx],100 851 xrelease lock add DWORD PTR [ecx],100 852 lock xrelease add DWORD PTR [ecx],100 853 .byte 0xf0; .byte 0xf2; add DWORD PTR [ecx],100 854 .byte 0xf0; .byte 0xf3; add DWORD PTR [ecx],100 855 xacquire lock and DWORD PTR [ecx],100 856 lock xacquire and DWORD PTR [ecx],100 857 xrelease lock and DWORD PTR [ecx],100 858 lock xrelease and DWORD PTR [ecx],100 859 .byte 0xf0; .byte 0xf2; and DWORD PTR [ecx],100 860 .byte 0xf0; .byte 0xf3; and DWORD PTR [ecx],100 861 xacquire lock btc DWORD PTR [ecx],100 862 lock xacquire btc DWORD PTR [ecx],100 863 xrelease lock btc DWORD PTR [ecx],100 864 lock xrelease btc DWORD PTR [ecx],100 865 .byte 0xf0; .byte 0xf2; btc DWORD PTR [ecx],100 866 .byte 0xf0; .byte 0xf3; btc DWORD PTR [ecx],100 867 xacquire lock btr DWORD PTR [ecx],100 868 lock xacquire btr DWORD PTR [ecx],100 869 xrelease lock btr DWORD PTR [ecx],100 870 lock xrelease btr DWORD PTR [ecx],100 871 .byte 0xf0; .byte 0xf2; btr DWORD PTR [ecx],100 872 .byte 0xf0; .byte 0xf3; btr DWORD PTR [ecx],100 873 xacquire lock bts DWORD PTR [ecx],100 874 lock xacquire bts DWORD PTR [ecx],100 875 xrelease lock bts DWORD PTR [ecx],100 876 lock xrelease bts DWORD PTR [ecx],100 877 .byte 0xf0; .byte 0xf2; bts DWORD PTR [ecx],100 878 .byte 0xf0; .byte 0xf3; bts DWORD PTR [ecx],100 879 xrelease mov DWORD PTR [ecx],100 880 xacquire lock or DWORD PTR [ecx],100 881 lock xacquire or DWORD PTR [ecx],100 882 xrelease lock or DWORD PTR [ecx],100 883 lock xrelease or DWORD PTR [ecx],100 884 .byte 0xf0; .byte 0xf2; or DWORD PTR [ecx],100 885 .byte 0xf0; .byte 0xf3; or DWORD PTR [ecx],100 886 xacquire lock sbb DWORD PTR [ecx],100 887 lock xacquire sbb DWORD PTR [ecx],100 888 xrelease lock sbb DWORD PTR [ecx],100 889 lock xrelease sbb DWORD PTR [ecx],100 890 .byte 0xf0; .byte 0xf2; sbb DWORD PTR [ecx],100 891 .byte 0xf0; .byte 0xf3; sbb DWORD PTR [ecx],100 892 xacquire lock sub DWORD PTR [ecx],100 893 lock xacquire sub DWORD PTR [ecx],100 894 xrelease lock sub DWORD PTR [ecx],100 895 lock xrelease sub DWORD PTR [ecx],100 896 .byte 0xf0; .byte 0xf2; sub DWORD PTR [ecx],100 897 .byte 0xf0; .byte 0xf3; sub DWORD PTR [ecx],100 898 xacquire lock xor DWORD PTR [ecx],100 899 lock xacquire xor DWORD PTR [ecx],100 900 xrelease lock xor DWORD PTR [ecx],100 901 lock xrelease xor DWORD PTR [ecx],100 902 .byte 0xf0; .byte 0xf2; xor DWORD PTR [ecx],100 903 .byte 0xf0; .byte 0xf3; xor DWORD PTR [ecx],100 904 905# Tests for op imm8 regb/m8 906 xacquire lock adc BYTE PTR [ecx],100 907 lock xacquire adc BYTE PTR [ecx],100 908 xrelease lock adc BYTE PTR [ecx],100 909 lock xrelease adc BYTE PTR [ecx],100 910 .byte 0xf0; .byte 0xf2; adc BYTE PTR [ecx],100 911 .byte 0xf0; .byte 0xf3; adc BYTE PTR [ecx],100 912 xacquire lock add BYTE PTR [ecx],100 913 lock xacquire add BYTE PTR [ecx],100 914 xrelease lock add BYTE PTR [ecx],100 915 lock xrelease add BYTE PTR [ecx],100 916 .byte 0xf0; .byte 0xf2; add BYTE PTR [ecx],100 917 .byte 0xf0; .byte 0xf3; add BYTE PTR [ecx],100 918 xacquire lock and BYTE PTR [ecx],100 919 lock xacquire and BYTE PTR [ecx],100 920 xrelease lock and BYTE PTR [ecx],100 921 lock xrelease and BYTE PTR [ecx],100 922 .byte 0xf0; .byte 0xf2; and BYTE PTR [ecx],100 923 .byte 0xf0; .byte 0xf3; and BYTE PTR [ecx],100 924 xrelease mov BYTE PTR [ecx],100 925 xacquire lock or BYTE PTR [ecx],100 926 lock xacquire or BYTE PTR [ecx],100 927 xrelease lock or BYTE PTR [ecx],100 928 lock xrelease or BYTE PTR [ecx],100 929 .byte 0xf0; .byte 0xf2; or BYTE PTR [ecx],100 930 .byte 0xf0; .byte 0xf3; or BYTE PTR [ecx],100 931 xacquire lock sbb BYTE PTR [ecx],100 932 lock xacquire sbb BYTE PTR [ecx],100 933 xrelease lock sbb BYTE PTR [ecx],100 934 lock xrelease sbb BYTE PTR [ecx],100 935 .byte 0xf0; .byte 0xf2; sbb BYTE PTR [ecx],100 936 .byte 0xf0; .byte 0xf3; sbb BYTE PTR [ecx],100 937 xacquire lock sub BYTE PTR [ecx],100 938 lock xacquire sub BYTE PTR [ecx],100 939 xrelease lock sub BYTE PTR [ecx],100 940 lock xrelease sub BYTE PTR [ecx],100 941 .byte 0xf0; .byte 0xf2; sub BYTE PTR [ecx],100 942 .byte 0xf0; .byte 0xf3; sub BYTE PTR [ecx],100 943 xacquire lock xor BYTE PTR [ecx],100 944 lock xacquire xor BYTE PTR [ecx],100 945 xrelease lock xor BYTE PTR [ecx],100 946 lock xrelease xor BYTE PTR [ecx],100 947 .byte 0xf0; .byte 0xf2; xor BYTE PTR [ecx],100 948 .byte 0xf0; .byte 0xf3; xor BYTE PTR [ecx],100 949 950# Tests for op regb regb/m8 951# Tests for op regb/m8 regb 952 xacquire lock adc BYTE PTR [ecx],al 953 lock xacquire adc BYTE PTR [ecx],al 954 xrelease lock adc BYTE PTR [ecx],al 955 lock xrelease adc BYTE PTR [ecx],al 956 .byte 0xf0; .byte 0xf2; adc BYTE PTR [ecx],al 957 .byte 0xf0; .byte 0xf3; adc BYTE PTR [ecx],al 958 xacquire lock add BYTE PTR [ecx],al 959 lock xacquire add BYTE PTR [ecx],al 960 xrelease lock add BYTE PTR [ecx],al 961 lock xrelease add BYTE PTR [ecx],al 962 .byte 0xf0; .byte 0xf2; add BYTE PTR [ecx],al 963 .byte 0xf0; .byte 0xf3; add BYTE PTR [ecx],al 964 xacquire lock and BYTE PTR [ecx],al 965 lock xacquire and BYTE PTR [ecx],al 966 xrelease lock and BYTE PTR [ecx],al 967 lock xrelease and BYTE PTR [ecx],al 968 .byte 0xf0; .byte 0xf2; and BYTE PTR [ecx],al 969 .byte 0xf0; .byte 0xf3; and BYTE PTR [ecx],al 970 xrelease mov BYTE PTR [ecx],al 971 xacquire lock or BYTE PTR [ecx],al 972 lock xacquire or BYTE PTR [ecx],al 973 xrelease lock or BYTE PTR [ecx],al 974 lock xrelease or BYTE PTR [ecx],al 975 .byte 0xf0; .byte 0xf2; or BYTE PTR [ecx],al 976 .byte 0xf0; .byte 0xf3; or BYTE PTR [ecx],al 977 xacquire lock sbb BYTE PTR [ecx],al 978 lock xacquire sbb BYTE PTR [ecx],al 979 xrelease lock sbb BYTE PTR [ecx],al 980 lock xrelease sbb BYTE PTR [ecx],al 981 .byte 0xf0; .byte 0xf2; sbb BYTE PTR [ecx],al 982 .byte 0xf0; .byte 0xf3; sbb BYTE PTR [ecx],al 983 xacquire lock sub BYTE PTR [ecx],al 984 lock xacquire sub BYTE PTR [ecx],al 985 xrelease lock sub BYTE PTR [ecx],al 986 lock xrelease sub BYTE PTR [ecx],al 987 .byte 0xf0; .byte 0xf2; sub BYTE PTR [ecx],al 988 .byte 0xf0; .byte 0xf3; sub BYTE PTR [ecx],al 989 xacquire lock xchg BYTE PTR [ecx],al 990 lock xacquire xchg BYTE PTR [ecx],al 991 xacquire xchg BYTE PTR [ecx],al 992 xrelease lock xchg BYTE PTR [ecx],al 993 lock xrelease xchg BYTE PTR [ecx],al 994 xrelease xchg BYTE PTR [ecx],al 995 .byte 0xf0; .byte 0xf2; xchg BYTE PTR [ecx],al 996 .byte 0xf0; .byte 0xf3; xchg BYTE PTR [ecx],al 997 xacquire lock xor BYTE PTR [ecx],al 998 lock xacquire xor BYTE PTR [ecx],al 999 xrelease lock xor BYTE PTR [ecx],al 1000 lock xrelease xor BYTE PTR [ecx],al 1001 .byte 0xf0; .byte 0xf2; xor BYTE PTR [ecx],al 1002 .byte 0xf0; .byte 0xf3; xor BYTE PTR [ecx],al 1003 1004# Tests for op regs regs/m16 1005# Tests for op regs/m16 regs 1006 xacquire lock adc WORD PTR [ecx],ax 1007 lock xacquire adc WORD PTR [ecx],ax 1008 xrelease lock adc WORD PTR [ecx],ax 1009 lock xrelease adc WORD PTR [ecx],ax 1010 .byte 0xf0; .byte 0xf2; adc WORD PTR [ecx],ax 1011 .byte 0xf0; .byte 0xf3; adc WORD PTR [ecx],ax 1012 xacquire lock add WORD PTR [ecx],ax 1013 lock xacquire add WORD PTR [ecx],ax 1014 xrelease lock add WORD PTR [ecx],ax 1015 lock xrelease add WORD PTR [ecx],ax 1016 .byte 0xf0; .byte 0xf2; add WORD PTR [ecx],ax 1017 .byte 0xf0; .byte 0xf3; add WORD PTR [ecx],ax 1018 xacquire lock and WORD PTR [ecx],ax 1019 lock xacquire and WORD PTR [ecx],ax 1020 xrelease lock and WORD PTR [ecx],ax 1021 lock xrelease and WORD PTR [ecx],ax 1022 .byte 0xf0; .byte 0xf2; and WORD PTR [ecx],ax 1023 .byte 0xf0; .byte 0xf3; and WORD PTR [ecx],ax 1024 xrelease mov WORD PTR [ecx],ax 1025 xacquire lock or WORD PTR [ecx],ax 1026 lock xacquire or WORD PTR [ecx],ax 1027 xrelease lock or WORD PTR [ecx],ax 1028 lock xrelease or WORD PTR [ecx],ax 1029 .byte 0xf0; .byte 0xf2; or WORD PTR [ecx],ax 1030 .byte 0xf0; .byte 0xf3; or WORD PTR [ecx],ax 1031 xacquire lock sbb WORD PTR [ecx],ax 1032 lock xacquire sbb WORD PTR [ecx],ax 1033 xrelease lock sbb WORD PTR [ecx],ax 1034 lock xrelease sbb WORD PTR [ecx],ax 1035 .byte 0xf0; .byte 0xf2; sbb WORD PTR [ecx],ax 1036 .byte 0xf0; .byte 0xf3; sbb WORD PTR [ecx],ax 1037 xacquire lock sub WORD PTR [ecx],ax 1038 lock xacquire sub WORD PTR [ecx],ax 1039 xrelease lock sub WORD PTR [ecx],ax 1040 lock xrelease sub WORD PTR [ecx],ax 1041 .byte 0xf0; .byte 0xf2; sub WORD PTR [ecx],ax 1042 .byte 0xf0; .byte 0xf3; sub WORD PTR [ecx],ax 1043 xacquire lock xchg WORD PTR [ecx],ax 1044 lock xacquire xchg WORD PTR [ecx],ax 1045 xacquire xchg WORD PTR [ecx],ax 1046 xrelease lock xchg WORD PTR [ecx],ax 1047 lock xrelease xchg WORD PTR [ecx],ax 1048 xrelease xchg WORD PTR [ecx],ax 1049 .byte 0xf0; .byte 0xf2; xchg WORD PTR [ecx],ax 1050 .byte 0xf0; .byte 0xf3; xchg WORD PTR [ecx],ax 1051 xacquire lock xor WORD PTR [ecx],ax 1052 lock xacquire xor WORD PTR [ecx],ax 1053 xrelease lock xor WORD PTR [ecx],ax 1054 lock xrelease xor WORD PTR [ecx],ax 1055 .byte 0xf0; .byte 0xf2; xor WORD PTR [ecx],ax 1056 .byte 0xf0; .byte 0xf3; xor WORD PTR [ecx],ax 1057 1058# Tests for op regl regl/m32 1059# Tests for op regl/m32 regl 1060 xacquire lock adc DWORD PTR [ecx],eax 1061 lock xacquire adc DWORD PTR [ecx],eax 1062 xrelease lock adc DWORD PTR [ecx],eax 1063 lock xrelease adc DWORD PTR [ecx],eax 1064 .byte 0xf0; .byte 0xf2; adc DWORD PTR [ecx],eax 1065 .byte 0xf0; .byte 0xf3; adc DWORD PTR [ecx],eax 1066 xacquire lock add DWORD PTR [ecx],eax 1067 lock xacquire add DWORD PTR [ecx],eax 1068 xrelease lock add DWORD PTR [ecx],eax 1069 lock xrelease add DWORD PTR [ecx],eax 1070 .byte 0xf0; .byte 0xf2; add DWORD PTR [ecx],eax 1071 .byte 0xf0; .byte 0xf3; add DWORD PTR [ecx],eax 1072 xacquire lock and DWORD PTR [ecx],eax 1073 lock xacquire and DWORD PTR [ecx],eax 1074 xrelease lock and DWORD PTR [ecx],eax 1075 lock xrelease and DWORD PTR [ecx],eax 1076 .byte 0xf0; .byte 0xf2; and DWORD PTR [ecx],eax 1077 .byte 0xf0; .byte 0xf3; and DWORD PTR [ecx],eax 1078 xrelease mov DWORD PTR [ecx],eax 1079 xacquire lock or DWORD PTR [ecx],eax 1080 lock xacquire or DWORD PTR [ecx],eax 1081 xrelease lock or DWORD PTR [ecx],eax 1082 lock xrelease or DWORD PTR [ecx],eax 1083 .byte 0xf0; .byte 0xf2; or DWORD PTR [ecx],eax 1084 .byte 0xf0; .byte 0xf3; or DWORD PTR [ecx],eax 1085 xacquire lock sbb DWORD PTR [ecx],eax 1086 lock xacquire sbb DWORD PTR [ecx],eax 1087 xrelease lock sbb DWORD PTR [ecx],eax 1088 lock xrelease sbb DWORD PTR [ecx],eax 1089 .byte 0xf0; .byte 0xf2; sbb DWORD PTR [ecx],eax 1090 .byte 0xf0; .byte 0xf3; sbb DWORD PTR [ecx],eax 1091 xacquire lock sub DWORD PTR [ecx],eax 1092 lock xacquire sub DWORD PTR [ecx],eax 1093 xrelease lock sub DWORD PTR [ecx],eax 1094 lock xrelease sub DWORD PTR [ecx],eax 1095 .byte 0xf0; .byte 0xf2; sub DWORD PTR [ecx],eax 1096 .byte 0xf0; .byte 0xf3; sub DWORD PTR [ecx],eax 1097 xacquire lock xchg DWORD PTR [ecx],eax 1098 lock xacquire xchg DWORD PTR [ecx],eax 1099 xacquire xchg DWORD PTR [ecx],eax 1100 xrelease lock xchg DWORD PTR [ecx],eax 1101 lock xrelease xchg DWORD PTR [ecx],eax 1102 xrelease xchg DWORD PTR [ecx],eax 1103 .byte 0xf0; .byte 0xf2; xchg DWORD PTR [ecx],eax 1104 .byte 0xf0; .byte 0xf3; xchg DWORD PTR [ecx],eax 1105 xacquire lock xor DWORD PTR [ecx],eax 1106 lock xacquire xor DWORD PTR [ecx],eax 1107 xrelease lock xor DWORD PTR [ecx],eax 1108 lock xrelease xor DWORD PTR [ecx],eax 1109 .byte 0xf0; .byte 0xf2; xor DWORD PTR [ecx],eax 1110 .byte 0xf0; .byte 0xf3; xor DWORD PTR [ecx],eax 1111 1112# Tests for op regs, regs/m16 1113 xacquire lock btc WORD PTR [ecx],ax 1114 lock xacquire btc WORD PTR [ecx],ax 1115 xrelease lock btc WORD PTR [ecx],ax 1116 lock xrelease btc WORD PTR [ecx],ax 1117 .byte 0xf0; .byte 0xf2; btc WORD PTR [ecx],ax 1118 .byte 0xf0; .byte 0xf3; btc WORD PTR [ecx],ax 1119 xacquire lock btr WORD PTR [ecx],ax 1120 lock xacquire btr WORD PTR [ecx],ax 1121 xrelease lock btr WORD PTR [ecx],ax 1122 lock xrelease btr WORD PTR [ecx],ax 1123 .byte 0xf0; .byte 0xf2; btr WORD PTR [ecx],ax 1124 .byte 0xf0; .byte 0xf3; btr WORD PTR [ecx],ax 1125 xacquire lock bts WORD PTR [ecx],ax 1126 lock xacquire bts WORD PTR [ecx],ax 1127 xrelease lock bts WORD PTR [ecx],ax 1128 lock xrelease bts WORD PTR [ecx],ax 1129 .byte 0xf0; .byte 0xf2; bts WORD PTR [ecx],ax 1130 .byte 0xf0; .byte 0xf3; bts WORD PTR [ecx],ax 1131 xacquire lock cmpxchg WORD PTR [ecx],ax 1132 lock xacquire cmpxchg WORD PTR [ecx],ax 1133 xrelease lock cmpxchg WORD PTR [ecx],ax 1134 lock xrelease cmpxchg WORD PTR [ecx],ax 1135 .byte 0xf0; .byte 0xf2; cmpxchg WORD PTR [ecx],ax 1136 .byte 0xf0; .byte 0xf3; cmpxchg WORD PTR [ecx],ax 1137 xacquire lock xadd WORD PTR [ecx],ax 1138 lock xacquire xadd WORD PTR [ecx],ax 1139 xrelease lock xadd WORD PTR [ecx],ax 1140 lock xrelease xadd WORD PTR [ecx],ax 1141 .byte 0xf0; .byte 0xf2; xadd WORD PTR [ecx],ax 1142 .byte 0xf0; .byte 0xf3; xadd WORD PTR [ecx],ax 1143 1144# Tests for op regl regl/m32 1145 xacquire lock btc DWORD PTR [ecx],eax 1146 lock xacquire btc DWORD PTR [ecx],eax 1147 xrelease lock btc DWORD PTR [ecx],eax 1148 lock xrelease btc DWORD PTR [ecx],eax 1149 .byte 0xf0; .byte 0xf2; btc DWORD PTR [ecx],eax 1150 .byte 0xf0; .byte 0xf3; btc DWORD PTR [ecx],eax 1151 xacquire lock btr DWORD PTR [ecx],eax 1152 lock xacquire btr DWORD PTR [ecx],eax 1153 xrelease lock btr DWORD PTR [ecx],eax 1154 lock xrelease btr DWORD PTR [ecx],eax 1155 .byte 0xf0; .byte 0xf2; btr DWORD PTR [ecx],eax 1156 .byte 0xf0; .byte 0xf3; btr DWORD PTR [ecx],eax 1157 xacquire lock bts DWORD PTR [ecx],eax 1158 lock xacquire bts DWORD PTR [ecx],eax 1159 xrelease lock bts DWORD PTR [ecx],eax 1160 lock xrelease bts DWORD PTR [ecx],eax 1161 .byte 0xf0; .byte 0xf2; bts DWORD PTR [ecx],eax 1162 .byte 0xf0; .byte 0xf3; bts DWORD PTR [ecx],eax 1163 xacquire lock cmpxchg DWORD PTR [ecx],eax 1164 lock xacquire cmpxchg DWORD PTR [ecx],eax 1165 xrelease lock cmpxchg DWORD PTR [ecx],eax 1166 lock xrelease cmpxchg DWORD PTR [ecx],eax 1167 .byte 0xf0; .byte 0xf2; cmpxchg DWORD PTR [ecx],eax 1168 .byte 0xf0; .byte 0xf3; cmpxchg DWORD PTR [ecx],eax 1169 xacquire lock xadd DWORD PTR [ecx],eax 1170 lock xacquire xadd DWORD PTR [ecx],eax 1171 xrelease lock xadd DWORD PTR [ecx],eax 1172 lock xrelease xadd DWORD PTR [ecx],eax 1173 .byte 0xf0; .byte 0xf2; xadd DWORD PTR [ecx],eax 1174 .byte 0xf0; .byte 0xf3; xadd DWORD PTR [ecx],eax 1175 1176# Tests for op regb/m8 1177 xacquire lock dec BYTE PTR [ecx] 1178 lock xacquire dec BYTE PTR [ecx] 1179 xrelease lock dec BYTE PTR [ecx] 1180 lock xrelease dec BYTE PTR [ecx] 1181 .byte 0xf0; .byte 0xf2; dec BYTE PTR [ecx] 1182 .byte 0xf0; .byte 0xf3; dec BYTE PTR [ecx] 1183 xacquire lock inc BYTE PTR [ecx] 1184 lock xacquire inc BYTE PTR [ecx] 1185 xrelease lock inc BYTE PTR [ecx] 1186 lock xrelease inc BYTE PTR [ecx] 1187 .byte 0xf0; .byte 0xf2; inc BYTE PTR [ecx] 1188 .byte 0xf0; .byte 0xf3; inc BYTE PTR [ecx] 1189 xacquire lock neg BYTE PTR [ecx] 1190 lock xacquire neg BYTE PTR [ecx] 1191 xrelease lock neg BYTE PTR [ecx] 1192 lock xrelease neg BYTE PTR [ecx] 1193 .byte 0xf0; .byte 0xf2; neg BYTE PTR [ecx] 1194 .byte 0xf0; .byte 0xf3; neg BYTE PTR [ecx] 1195 xacquire lock not BYTE PTR [ecx] 1196 lock xacquire not BYTE PTR [ecx] 1197 xrelease lock not BYTE PTR [ecx] 1198 lock xrelease not BYTE PTR [ecx] 1199 .byte 0xf0; .byte 0xf2; not BYTE PTR [ecx] 1200 .byte 0xf0; .byte 0xf3; not BYTE PTR [ecx] 1201 1202# Tests for op regs/m16 1203 xacquire lock dec WORD PTR [ecx] 1204 lock xacquire dec WORD PTR [ecx] 1205 xrelease lock dec WORD PTR [ecx] 1206 lock xrelease dec WORD PTR [ecx] 1207 .byte 0xf0; .byte 0xf2; dec WORD PTR [ecx] 1208 .byte 0xf0; .byte 0xf3; dec WORD PTR [ecx] 1209 xacquire lock inc WORD PTR [ecx] 1210 lock xacquire inc WORD PTR [ecx] 1211 xrelease lock inc WORD PTR [ecx] 1212 lock xrelease inc WORD PTR [ecx] 1213 .byte 0xf0; .byte 0xf2; inc WORD PTR [ecx] 1214 .byte 0xf0; .byte 0xf3; inc WORD PTR [ecx] 1215 xacquire lock neg WORD PTR [ecx] 1216 lock xacquire neg WORD PTR [ecx] 1217 xrelease lock neg WORD PTR [ecx] 1218 lock xrelease neg WORD PTR [ecx] 1219 .byte 0xf0; .byte 0xf2; neg WORD PTR [ecx] 1220 .byte 0xf0; .byte 0xf3; neg WORD PTR [ecx] 1221 xacquire lock not WORD PTR [ecx] 1222 lock xacquire not WORD PTR [ecx] 1223 xrelease lock not WORD PTR [ecx] 1224 lock xrelease not WORD PTR [ecx] 1225 .byte 0xf0; .byte 0xf2; not WORD PTR [ecx] 1226 .byte 0xf0; .byte 0xf3; not WORD PTR [ecx] 1227 1228# Tests for op regl/m32 1229 xacquire lock dec DWORD PTR [ecx] 1230 lock xacquire dec DWORD PTR [ecx] 1231 xrelease lock dec DWORD PTR [ecx] 1232 lock xrelease dec DWORD PTR [ecx] 1233 .byte 0xf0; .byte 0xf2; dec DWORD PTR [ecx] 1234 .byte 0xf0; .byte 0xf3; dec DWORD PTR [ecx] 1235 xacquire lock inc DWORD PTR [ecx] 1236 lock xacquire inc DWORD PTR [ecx] 1237 xrelease lock inc DWORD PTR [ecx] 1238 lock xrelease inc DWORD PTR [ecx] 1239 .byte 0xf0; .byte 0xf2; inc DWORD PTR [ecx] 1240 .byte 0xf0; .byte 0xf3; inc DWORD PTR [ecx] 1241 xacquire lock neg DWORD PTR [ecx] 1242 lock xacquire neg DWORD PTR [ecx] 1243 xrelease lock neg DWORD PTR [ecx] 1244 lock xrelease neg DWORD PTR [ecx] 1245 .byte 0xf0; .byte 0xf2; neg DWORD PTR [ecx] 1246 .byte 0xf0; .byte 0xf3; neg DWORD PTR [ecx] 1247 xacquire lock not DWORD PTR [ecx] 1248 lock xacquire not DWORD PTR [ecx] 1249 xrelease lock not DWORD PTR [ecx] 1250 lock xrelease not DWORD PTR [ecx] 1251 .byte 0xf0; .byte 0xf2; not DWORD PTR [ecx] 1252 .byte 0xf0; .byte 0xf3; not DWORD PTR [ecx] 1253 1254# Tests for op m64 1255 xacquire lock cmpxchg8b QWORD PTR [ecx] 1256 lock xacquire cmpxchg8b QWORD PTR [ecx] 1257 xrelease lock cmpxchg8b QWORD PTR [ecx] 1258 lock xrelease cmpxchg8b QWORD PTR [ecx] 1259 .byte 0xf0; .byte 0xf2; cmpxchg8b QWORD PTR [ecx] 1260 .byte 0xf0; .byte 0xf3; cmpxchg8b QWORD PTR [ecx] 1261 1262# Tests for op regb, regb/m8 1263 xacquire lock cmpxchg BYTE PTR [ecx],cl 1264 lock xacquire cmpxchg BYTE PTR [ecx],cl 1265 xrelease lock cmpxchg BYTE PTR [ecx],cl 1266 lock xrelease cmpxchg BYTE PTR [ecx],cl 1267 .byte 0xf0; .byte 0xf2; cmpxchg BYTE PTR [ecx],cl 1268 .byte 0xf0; .byte 0xf3; cmpxchg BYTE PTR [ecx],cl 1269 xacquire lock xadd BYTE PTR [ecx],cl 1270 lock xacquire xadd BYTE PTR [ecx],cl 1271 xrelease lock xadd BYTE PTR [ecx],cl 1272 lock xrelease xadd BYTE PTR [ecx],cl 1273 .byte 0xf0; .byte 0xf2; xadd BYTE PTR [ecx],cl 1274 .byte 0xf0; .byte 0xf3; xadd BYTE PTR [ecx],cl 1275