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