1# Check 64bit HLE instructions 2 3 .allow_index_reg 4 .text 5_start: 6 7 8# Tests for op imm32 rax 9 10# Tests for op imm8 regb/m8 11 xacquire lock adcb $100,(%rcx) 12 lock xacquire adcb $100,(%rcx) 13 xrelease lock adcb $100,(%rcx) 14 lock xrelease adcb $100,(%rcx) 15 .byte 0xf0; .byte 0xf2; adcb $100,(%rcx) 16 .byte 0xf0; .byte 0xf3; adcb $100,(%rcx) 17 xacquire lock addb $100,(%rcx) 18 lock xacquire addb $100,(%rcx) 19 xrelease lock addb $100,(%rcx) 20 lock xrelease addb $100,(%rcx) 21 .byte 0xf0; .byte 0xf2; addb $100,(%rcx) 22 .byte 0xf0; .byte 0xf3; addb $100,(%rcx) 23 xacquire lock andb $100,(%rcx) 24 lock xacquire andb $100,(%rcx) 25 xrelease lock andb $100,(%rcx) 26 lock xrelease andb $100,(%rcx) 27 .byte 0xf0; .byte 0xf2; andb $100,(%rcx) 28 .byte 0xf0; .byte 0xf3; andb $100,(%rcx) 29 xrelease movb $100,(%rcx) 30 xacquire lock orb $100,(%rcx) 31 lock xacquire orb $100,(%rcx) 32 xrelease lock orb $100,(%rcx) 33 lock xrelease orb $100,(%rcx) 34 .byte 0xf0; .byte 0xf2; orb $100,(%rcx) 35 .byte 0xf0; .byte 0xf3; orb $100,(%rcx) 36 xacquire lock sbbb $100,(%rcx) 37 lock xacquire sbbb $100,(%rcx) 38 xrelease lock sbbb $100,(%rcx) 39 lock xrelease sbbb $100,(%rcx) 40 .byte 0xf0; .byte 0xf2; sbbb $100,(%rcx) 41 .byte 0xf0; .byte 0xf3; sbbb $100,(%rcx) 42 xacquire lock subb $100,(%rcx) 43 lock xacquire subb $100,(%rcx) 44 xrelease lock subb $100,(%rcx) 45 lock xrelease subb $100,(%rcx) 46 .byte 0xf0; .byte 0xf2; subb $100,(%rcx) 47 .byte 0xf0; .byte 0xf3; subb $100,(%rcx) 48 xacquire lock xorb $100,(%rcx) 49 lock xacquire xorb $100,(%rcx) 50 xrelease lock xorb $100,(%rcx) 51 lock xrelease xorb $100,(%rcx) 52 .byte 0xf0; .byte 0xf2; xorb $100,(%rcx) 53 .byte 0xf0; .byte 0xf3; xorb $100,(%rcx) 54 55# Tests for op imm16 regs/m16 56 xacquire lock adcw $1000,(%rcx) 57 lock xacquire adcw $1000,(%rcx) 58 xrelease lock adcw $1000,(%rcx) 59 lock xrelease adcw $1000,(%rcx) 60 .byte 0xf0; .byte 0xf2; adcw $1000,(%rcx) 61 .byte 0xf0; .byte 0xf3; adcw $1000,(%rcx) 62 xacquire lock addw $1000,(%rcx) 63 lock xacquire addw $1000,(%rcx) 64 xrelease lock addw $1000,(%rcx) 65 lock xrelease addw $1000,(%rcx) 66 .byte 0xf0; .byte 0xf2; addw $1000,(%rcx) 67 .byte 0xf0; .byte 0xf3; addw $1000,(%rcx) 68 xacquire lock andw $1000,(%rcx) 69 lock xacquire andw $1000,(%rcx) 70 xrelease lock andw $1000,(%rcx) 71 lock xrelease andw $1000,(%rcx) 72 .byte 0xf0; .byte 0xf2; andw $1000,(%rcx) 73 .byte 0xf0; .byte 0xf3; andw $1000,(%rcx) 74 xrelease movw $1000,(%rcx) 75 xacquire lock orw $1000,(%rcx) 76 lock xacquire orw $1000,(%rcx) 77 xrelease lock orw $1000,(%rcx) 78 lock xrelease orw $1000,(%rcx) 79 .byte 0xf0; .byte 0xf2; orw $1000,(%rcx) 80 .byte 0xf0; .byte 0xf3; orw $1000,(%rcx) 81 xacquire lock sbbw $1000,(%rcx) 82 lock xacquire sbbw $1000,(%rcx) 83 xrelease lock sbbw $1000,(%rcx) 84 lock xrelease sbbw $1000,(%rcx) 85 .byte 0xf0; .byte 0xf2; sbbw $1000,(%rcx) 86 .byte 0xf0; .byte 0xf3; sbbw $1000,(%rcx) 87 xacquire lock subw $1000,(%rcx) 88 lock xacquire subw $1000,(%rcx) 89 xrelease lock subw $1000,(%rcx) 90 lock xrelease subw $1000,(%rcx) 91 .byte 0xf0; .byte 0xf2; subw $1000,(%rcx) 92 .byte 0xf0; .byte 0xf3; subw $1000,(%rcx) 93 xacquire lock xorw $1000,(%rcx) 94 lock xacquire xorw $1000,(%rcx) 95 xrelease lock xorw $1000,(%rcx) 96 lock xrelease xorw $1000,(%rcx) 97 .byte 0xf0; .byte 0xf2; xorw $1000,(%rcx) 98 .byte 0xf0; .byte 0xf3; xorw $1000,(%rcx) 99 100# Tests for op imm32 regl/m32 101 xacquire lock adcl $10000000,(%rcx) 102 lock xacquire adcl $10000000,(%rcx) 103 xrelease lock adcl $10000000,(%rcx) 104 lock xrelease adcl $10000000,(%rcx) 105 .byte 0xf0; .byte 0xf2; adcl $10000000,(%rcx) 106 .byte 0xf0; .byte 0xf3; adcl $10000000,(%rcx) 107 xacquire lock addl $10000000,(%rcx) 108 lock xacquire addl $10000000,(%rcx) 109 xrelease lock addl $10000000,(%rcx) 110 lock xrelease addl $10000000,(%rcx) 111 .byte 0xf0; .byte 0xf2; addl $10000000,(%rcx) 112 .byte 0xf0; .byte 0xf3; addl $10000000,(%rcx) 113 xacquire lock andl $10000000,(%rcx) 114 lock xacquire andl $10000000,(%rcx) 115 xrelease lock andl $10000000,(%rcx) 116 lock xrelease andl $10000000,(%rcx) 117 .byte 0xf0; .byte 0xf2; andl $10000000,(%rcx) 118 .byte 0xf0; .byte 0xf3; andl $10000000,(%rcx) 119 xrelease movl $10000000,(%rcx) 120 xacquire lock orl $10000000,(%rcx) 121 lock xacquire orl $10000000,(%rcx) 122 xrelease lock orl $10000000,(%rcx) 123 lock xrelease orl $10000000,(%rcx) 124 .byte 0xf0; .byte 0xf2; orl $10000000,(%rcx) 125 .byte 0xf0; .byte 0xf3; orl $10000000,(%rcx) 126 xacquire lock sbbl $10000000,(%rcx) 127 lock xacquire sbbl $10000000,(%rcx) 128 xrelease lock sbbl $10000000,(%rcx) 129 lock xrelease sbbl $10000000,(%rcx) 130 .byte 0xf0; .byte 0xf2; sbbl $10000000,(%rcx) 131 .byte 0xf0; .byte 0xf3; sbbl $10000000,(%rcx) 132 xacquire lock subl $10000000,(%rcx) 133 lock xacquire subl $10000000,(%rcx) 134 xrelease lock subl $10000000,(%rcx) 135 lock xrelease subl $10000000,(%rcx) 136 .byte 0xf0; .byte 0xf2; subl $10000000,(%rcx) 137 .byte 0xf0; .byte 0xf3; subl $10000000,(%rcx) 138 xacquire lock xorl $10000000,(%rcx) 139 lock xacquire xorl $10000000,(%rcx) 140 xrelease lock xorl $10000000,(%rcx) 141 lock xrelease xorl $10000000,(%rcx) 142 .byte 0xf0; .byte 0xf2; xorl $10000000,(%rcx) 143 .byte 0xf0; .byte 0xf3; xorl $10000000,(%rcx) 144 145# Tests for op imm32 regq/m64 146 xacquire lock adcq $10000000,(%rcx) 147 lock xacquire adcq $10000000,(%rcx) 148 xrelease lock adcq $10000000,(%rcx) 149 lock xrelease adcq $10000000,(%rcx) 150 .byte 0xf0; .byte 0xf2; adcq $10000000,(%rcx) 151 .byte 0xf0; .byte 0xf3; adcq $10000000,(%rcx) 152 xacquire lock addq $10000000,(%rcx) 153 lock xacquire addq $10000000,(%rcx) 154 xrelease lock addq $10000000,(%rcx) 155 lock xrelease addq $10000000,(%rcx) 156 .byte 0xf0; .byte 0xf2; addq $10000000,(%rcx) 157 .byte 0xf0; .byte 0xf3; addq $10000000,(%rcx) 158 xacquire lock andq $10000000,(%rcx) 159 lock xacquire andq $10000000,(%rcx) 160 xrelease lock andq $10000000,(%rcx) 161 lock xrelease andq $10000000,(%rcx) 162 .byte 0xf0; .byte 0xf2; andq $10000000,(%rcx) 163 .byte 0xf0; .byte 0xf3; andq $10000000,(%rcx) 164 xrelease movq $10000000,(%rcx) 165 xacquire lock orq $10000000,(%rcx) 166 lock xacquire orq $10000000,(%rcx) 167 xrelease lock orq $10000000,(%rcx) 168 lock xrelease orq $10000000,(%rcx) 169 .byte 0xf0; .byte 0xf2; orq $10000000,(%rcx) 170 .byte 0xf0; .byte 0xf3; orq $10000000,(%rcx) 171 xacquire lock sbbq $10000000,(%rcx) 172 lock xacquire sbbq $10000000,(%rcx) 173 xrelease lock sbbq $10000000,(%rcx) 174 lock xrelease sbbq $10000000,(%rcx) 175 .byte 0xf0; .byte 0xf2; sbbq $10000000,(%rcx) 176 .byte 0xf0; .byte 0xf3; sbbq $10000000,(%rcx) 177 xacquire lock subq $10000000,(%rcx) 178 lock xacquire subq $10000000,(%rcx) 179 xrelease lock subq $10000000,(%rcx) 180 lock xrelease subq $10000000,(%rcx) 181 .byte 0xf0; .byte 0xf2; subq $10000000,(%rcx) 182 .byte 0xf0; .byte 0xf3; subq $10000000,(%rcx) 183 xacquire lock xorq $10000000,(%rcx) 184 lock xacquire xorq $10000000,(%rcx) 185 xrelease lock xorq $10000000,(%rcx) 186 lock xrelease xorq $10000000,(%rcx) 187 .byte 0xf0; .byte 0xf2; xorq $10000000,(%rcx) 188 .byte 0xf0; .byte 0xf3; xorq $10000000,(%rcx) 189 190# Tests for op imm8 regs/m16 191 xacquire lock adcw $100,(%rcx) 192 lock xacquire adcw $100,(%rcx) 193 xrelease lock adcw $100,(%rcx) 194 lock xrelease adcw $100,(%rcx) 195 .byte 0xf0; .byte 0xf2; adcw $100,(%rcx) 196 .byte 0xf0; .byte 0xf3; adcw $100,(%rcx) 197 xacquire lock addw $100,(%rcx) 198 lock xacquire addw $100,(%rcx) 199 xrelease lock addw $100,(%rcx) 200 lock xrelease addw $100,(%rcx) 201 .byte 0xf0; .byte 0xf2; addw $100,(%rcx) 202 .byte 0xf0; .byte 0xf3; addw $100,(%rcx) 203 xacquire lock andw $100,(%rcx) 204 lock xacquire andw $100,(%rcx) 205 xrelease lock andw $100,(%rcx) 206 lock xrelease andw $100,(%rcx) 207 .byte 0xf0; .byte 0xf2; andw $100,(%rcx) 208 .byte 0xf0; .byte 0xf3; andw $100,(%rcx) 209 xacquire lock btcw $100,(%rcx) 210 lock xacquire btcw $100,(%rcx) 211 xrelease lock btcw $100,(%rcx) 212 lock xrelease btcw $100,(%rcx) 213 .byte 0xf0; .byte 0xf2; btcw $100,(%rcx) 214 .byte 0xf0; .byte 0xf3; btcw $100,(%rcx) 215 xacquire lock btrw $100,(%rcx) 216 lock xacquire btrw $100,(%rcx) 217 xrelease lock btrw $100,(%rcx) 218 lock xrelease btrw $100,(%rcx) 219 .byte 0xf0; .byte 0xf2; btrw $100,(%rcx) 220 .byte 0xf0; .byte 0xf3; btrw $100,(%rcx) 221 xacquire lock btsw $100,(%rcx) 222 lock xacquire btsw $100,(%rcx) 223 xrelease lock btsw $100,(%rcx) 224 lock xrelease btsw $100,(%rcx) 225 .byte 0xf0; .byte 0xf2; btsw $100,(%rcx) 226 .byte 0xf0; .byte 0xf3; btsw $100,(%rcx) 227 xrelease movw $100,(%rcx) 228 xacquire lock orw $100,(%rcx) 229 lock xacquire orw $100,(%rcx) 230 xrelease lock orw $100,(%rcx) 231 lock xrelease orw $100,(%rcx) 232 .byte 0xf0; .byte 0xf2; orw $100,(%rcx) 233 .byte 0xf0; .byte 0xf3; orw $100,(%rcx) 234 xacquire lock sbbw $100,(%rcx) 235 lock xacquire sbbw $100,(%rcx) 236 xrelease lock sbbw $100,(%rcx) 237 lock xrelease sbbw $100,(%rcx) 238 .byte 0xf0; .byte 0xf2; sbbw $100,(%rcx) 239 .byte 0xf0; .byte 0xf3; sbbw $100,(%rcx) 240 xacquire lock subw $100,(%rcx) 241 lock xacquire subw $100,(%rcx) 242 xrelease lock subw $100,(%rcx) 243 lock xrelease subw $100,(%rcx) 244 .byte 0xf0; .byte 0xf2; subw $100,(%rcx) 245 .byte 0xf0; .byte 0xf3; subw $100,(%rcx) 246 xacquire lock xorw $100,(%rcx) 247 lock xacquire xorw $100,(%rcx) 248 xrelease lock xorw $100,(%rcx) 249 lock xrelease xorw $100,(%rcx) 250 .byte 0xf0; .byte 0xf2; xorw $100,(%rcx) 251 .byte 0xf0; .byte 0xf3; xorw $100,(%rcx) 252 253# Tests for op imm8 regl/m32 254 xacquire lock adcl $100,(%rcx) 255 lock xacquire adcl $100,(%rcx) 256 xrelease lock adcl $100,(%rcx) 257 lock xrelease adcl $100,(%rcx) 258 .byte 0xf0; .byte 0xf2; adcl $100,(%rcx) 259 .byte 0xf0; .byte 0xf3; adcl $100,(%rcx) 260 xacquire lock addl $100,(%rcx) 261 lock xacquire addl $100,(%rcx) 262 xrelease lock addl $100,(%rcx) 263 lock xrelease addl $100,(%rcx) 264 .byte 0xf0; .byte 0xf2; addl $100,(%rcx) 265 .byte 0xf0; .byte 0xf3; addl $100,(%rcx) 266 xacquire lock andl $100,(%rcx) 267 lock xacquire andl $100,(%rcx) 268 xrelease lock andl $100,(%rcx) 269 lock xrelease andl $100,(%rcx) 270 .byte 0xf0; .byte 0xf2; andl $100,(%rcx) 271 .byte 0xf0; .byte 0xf3; andl $100,(%rcx) 272 xacquire lock btcl $100,(%rcx) 273 lock xacquire btcl $100,(%rcx) 274 xrelease lock btcl $100,(%rcx) 275 lock xrelease btcl $100,(%rcx) 276 .byte 0xf0; .byte 0xf2; btcl $100,(%rcx) 277 .byte 0xf0; .byte 0xf3; btcl $100,(%rcx) 278 xacquire lock btrl $100,(%rcx) 279 lock xacquire btrl $100,(%rcx) 280 xrelease lock btrl $100,(%rcx) 281 lock xrelease btrl $100,(%rcx) 282 .byte 0xf0; .byte 0xf2; btrl $100,(%rcx) 283 .byte 0xf0; .byte 0xf3; btrl $100,(%rcx) 284 xacquire lock btsl $100,(%rcx) 285 lock xacquire btsl $100,(%rcx) 286 xrelease lock btsl $100,(%rcx) 287 lock xrelease btsl $100,(%rcx) 288 .byte 0xf0; .byte 0xf2; btsl $100,(%rcx) 289 .byte 0xf0; .byte 0xf3; btsl $100,(%rcx) 290 xrelease movl $100,(%rcx) 291 xacquire lock orl $100,(%rcx) 292 lock xacquire orl $100,(%rcx) 293 xrelease lock orl $100,(%rcx) 294 lock xrelease orl $100,(%rcx) 295 .byte 0xf0; .byte 0xf2; orl $100,(%rcx) 296 .byte 0xf0; .byte 0xf3; orl $100,(%rcx) 297 xacquire lock sbbl $100,(%rcx) 298 lock xacquire sbbl $100,(%rcx) 299 xrelease lock sbbl $100,(%rcx) 300 lock xrelease sbbl $100,(%rcx) 301 .byte 0xf0; .byte 0xf2; sbbl $100,(%rcx) 302 .byte 0xf0; .byte 0xf3; sbbl $100,(%rcx) 303 xacquire lock subl $100,(%rcx) 304 lock xacquire subl $100,(%rcx) 305 xrelease lock subl $100,(%rcx) 306 lock xrelease subl $100,(%rcx) 307 .byte 0xf0; .byte 0xf2; subl $100,(%rcx) 308 .byte 0xf0; .byte 0xf3; subl $100,(%rcx) 309 xacquire lock xorl $100,(%rcx) 310 lock xacquire xorl $100,(%rcx) 311 xrelease lock xorl $100,(%rcx) 312 lock xrelease xorl $100,(%rcx) 313 .byte 0xf0; .byte 0xf2; xorl $100,(%rcx) 314 .byte 0xf0; .byte 0xf3; xorl $100,(%rcx) 315 316# Tests for op imm8 regq/m64 317 xacquire lock adcq $100,(%rcx) 318 lock xacquire adcq $100,(%rcx) 319 xrelease lock adcq $100,(%rcx) 320 lock xrelease adcq $100,(%rcx) 321 .byte 0xf0; .byte 0xf2; adcq $100,(%rcx) 322 .byte 0xf0; .byte 0xf3; adcq $100,(%rcx) 323 xacquire lock addq $100,(%rcx) 324 lock xacquire addq $100,(%rcx) 325 xrelease lock addq $100,(%rcx) 326 lock xrelease addq $100,(%rcx) 327 .byte 0xf0; .byte 0xf2; addq $100,(%rcx) 328 .byte 0xf0; .byte 0xf3; addq $100,(%rcx) 329 xacquire lock andq $100,(%rcx) 330 lock xacquire andq $100,(%rcx) 331 xrelease lock andq $100,(%rcx) 332 lock xrelease andq $100,(%rcx) 333 .byte 0xf0; .byte 0xf2; andq $100,(%rcx) 334 .byte 0xf0; .byte 0xf3; andq $100,(%rcx) 335 xacquire lock btcq $100,(%rcx) 336 lock xacquire btcq $100,(%rcx) 337 xrelease lock btcq $100,(%rcx) 338 lock xrelease btcq $100,(%rcx) 339 .byte 0xf0; .byte 0xf2; btcq $100,(%rcx) 340 .byte 0xf0; .byte 0xf3; btcq $100,(%rcx) 341 xacquire lock btrq $100,(%rcx) 342 lock xacquire btrq $100,(%rcx) 343 xrelease lock btrq $100,(%rcx) 344 lock xrelease btrq $100,(%rcx) 345 .byte 0xf0; .byte 0xf2; btrq $100,(%rcx) 346 .byte 0xf0; .byte 0xf3; btrq $100,(%rcx) 347 xacquire lock btsq $100,(%rcx) 348 lock xacquire btsq $100,(%rcx) 349 xrelease lock btsq $100,(%rcx) 350 lock xrelease btsq $100,(%rcx) 351 .byte 0xf0; .byte 0xf2; btsq $100,(%rcx) 352 .byte 0xf0; .byte 0xf3; btsq $100,(%rcx) 353 xrelease movq $100,(%rcx) 354 xacquire lock orq $100,(%rcx) 355 lock xacquire orq $100,(%rcx) 356 xrelease lock orq $100,(%rcx) 357 lock xrelease orq $100,(%rcx) 358 .byte 0xf0; .byte 0xf2; orq $100,(%rcx) 359 .byte 0xf0; .byte 0xf3; orq $100,(%rcx) 360 xacquire lock sbbq $100,(%rcx) 361 lock xacquire sbbq $100,(%rcx) 362 xrelease lock sbbq $100,(%rcx) 363 lock xrelease sbbq $100,(%rcx) 364 .byte 0xf0; .byte 0xf2; sbbq $100,(%rcx) 365 .byte 0xf0; .byte 0xf3; sbbq $100,(%rcx) 366 xacquire lock subq $100,(%rcx) 367 lock xacquire subq $100,(%rcx) 368 xrelease lock subq $100,(%rcx) 369 lock xrelease subq $100,(%rcx) 370 .byte 0xf0; .byte 0xf2; subq $100,(%rcx) 371 .byte 0xf0; .byte 0xf3; subq $100,(%rcx) 372 xacquire lock xorq $100,(%rcx) 373 lock xacquire xorq $100,(%rcx) 374 xrelease lock xorq $100,(%rcx) 375 lock xrelease xorq $100,(%rcx) 376 .byte 0xf0; .byte 0xf2; xorq $100,(%rcx) 377 .byte 0xf0; .byte 0xf3; xorq $100,(%rcx) 378 379# Tests for op imm8 regb/m8 380 xacquire lock adcb $100,(%rcx) 381 lock xacquire adcb $100,(%rcx) 382 xrelease lock adcb $100,(%rcx) 383 lock xrelease adcb $100,(%rcx) 384 .byte 0xf0; .byte 0xf2; adcb $100,(%rcx) 385 .byte 0xf0; .byte 0xf3; adcb $100,(%rcx) 386 xacquire lock addb $100,(%rcx) 387 lock xacquire addb $100,(%rcx) 388 xrelease lock addb $100,(%rcx) 389 lock xrelease addb $100,(%rcx) 390 .byte 0xf0; .byte 0xf2; addb $100,(%rcx) 391 .byte 0xf0; .byte 0xf3; addb $100,(%rcx) 392 xacquire lock andb $100,(%rcx) 393 lock xacquire andb $100,(%rcx) 394 xrelease lock andb $100,(%rcx) 395 lock xrelease andb $100,(%rcx) 396 .byte 0xf0; .byte 0xf2; andb $100,(%rcx) 397 .byte 0xf0; .byte 0xf3; andb $100,(%rcx) 398 xrelease movb $100,(%rcx) 399 xacquire lock orb $100,(%rcx) 400 lock xacquire orb $100,(%rcx) 401 xrelease lock orb $100,(%rcx) 402 lock xrelease orb $100,(%rcx) 403 .byte 0xf0; .byte 0xf2; orb $100,(%rcx) 404 .byte 0xf0; .byte 0xf3; orb $100,(%rcx) 405 xacquire lock sbbb $100,(%rcx) 406 lock xacquire sbbb $100,(%rcx) 407 xrelease lock sbbb $100,(%rcx) 408 lock xrelease sbbb $100,(%rcx) 409 .byte 0xf0; .byte 0xf2; sbbb $100,(%rcx) 410 .byte 0xf0; .byte 0xf3; sbbb $100,(%rcx) 411 xacquire lock subb $100,(%rcx) 412 lock xacquire subb $100,(%rcx) 413 xrelease lock subb $100,(%rcx) 414 lock xrelease subb $100,(%rcx) 415 .byte 0xf0; .byte 0xf2; subb $100,(%rcx) 416 .byte 0xf0; .byte 0xf3; subb $100,(%rcx) 417 xacquire lock xorb $100,(%rcx) 418 lock xacquire xorb $100,(%rcx) 419 xrelease lock xorb $100,(%rcx) 420 lock xrelease xorb $100,(%rcx) 421 .byte 0xf0; .byte 0xf2; xorb $100,(%rcx) 422 .byte 0xf0; .byte 0xf3; xorb $100,(%rcx) 423 424# Tests for op regb regb/m8 425# Tests for op regb/m8 regb 426 xacquire lock adcb %al,(%rcx) 427 lock xacquire adcb %al,(%rcx) 428 xrelease lock adcb %al,(%rcx) 429 lock xrelease adcb %al,(%rcx) 430 .byte 0xf0; .byte 0xf2; adcb %al,(%rcx) 431 .byte 0xf0; .byte 0xf3; adcb %al,(%rcx) 432 xacquire lock addb %al,(%rcx) 433 lock xacquire addb %al,(%rcx) 434 xrelease lock addb %al,(%rcx) 435 lock xrelease addb %al,(%rcx) 436 .byte 0xf0; .byte 0xf2; addb %al,(%rcx) 437 .byte 0xf0; .byte 0xf3; addb %al,(%rcx) 438 xacquire lock andb %al,(%rcx) 439 lock xacquire andb %al,(%rcx) 440 xrelease lock andb %al,(%rcx) 441 lock xrelease andb %al,(%rcx) 442 .byte 0xf0; .byte 0xf2; andb %al,(%rcx) 443 .byte 0xf0; .byte 0xf3; andb %al,(%rcx) 444 xrelease movb %al,(%rcx) 445 xacquire lock orb %al,(%rcx) 446 lock xacquire orb %al,(%rcx) 447 xrelease lock orb %al,(%rcx) 448 lock xrelease orb %al,(%rcx) 449 .byte 0xf0; .byte 0xf2; orb %al,(%rcx) 450 .byte 0xf0; .byte 0xf3; orb %al,(%rcx) 451 xacquire lock sbbb %al,(%rcx) 452 lock xacquire sbbb %al,(%rcx) 453 xrelease lock sbbb %al,(%rcx) 454 lock xrelease sbbb %al,(%rcx) 455 .byte 0xf0; .byte 0xf2; sbbb %al,(%rcx) 456 .byte 0xf0; .byte 0xf3; sbbb %al,(%rcx) 457 xacquire lock subb %al,(%rcx) 458 lock xacquire subb %al,(%rcx) 459 xrelease lock subb %al,(%rcx) 460 lock xrelease subb %al,(%rcx) 461 .byte 0xf0; .byte 0xf2; subb %al,(%rcx) 462 .byte 0xf0; .byte 0xf3; subb %al,(%rcx) 463 xacquire lock xchgb %al,(%rcx) 464 lock xacquire xchgb %al,(%rcx) 465 xacquire xchgb %al,(%rcx) 466 xrelease lock xchgb %al,(%rcx) 467 lock xrelease xchgb %al,(%rcx) 468 xrelease xchgb %al,(%rcx) 469 .byte 0xf0; .byte 0xf2; xchgb %al,(%rcx) 470 .byte 0xf0; .byte 0xf3; xchgb %al,(%rcx) 471 xacquire lock xorb %al,(%rcx) 472 lock xacquire xorb %al,(%rcx) 473 xrelease lock xorb %al,(%rcx) 474 lock xrelease xorb %al,(%rcx) 475 .byte 0xf0; .byte 0xf2; xorb %al,(%rcx) 476 .byte 0xf0; .byte 0xf3; xorb %al,(%rcx) 477 478# Tests for op regs regs/m16 479# Tests for op regs/m16 regs 480 xacquire lock adcw %ax,(%rcx) 481 lock xacquire adcw %ax,(%rcx) 482 xrelease lock adcw %ax,(%rcx) 483 lock xrelease adcw %ax,(%rcx) 484 .byte 0xf0; .byte 0xf2; adcw %ax,(%rcx) 485 .byte 0xf0; .byte 0xf3; adcw %ax,(%rcx) 486 xacquire lock addw %ax,(%rcx) 487 lock xacquire addw %ax,(%rcx) 488 xrelease lock addw %ax,(%rcx) 489 lock xrelease addw %ax,(%rcx) 490 .byte 0xf0; .byte 0xf2; addw %ax,(%rcx) 491 .byte 0xf0; .byte 0xf3; addw %ax,(%rcx) 492 xacquire lock andw %ax,(%rcx) 493 lock xacquire andw %ax,(%rcx) 494 xrelease lock andw %ax,(%rcx) 495 lock xrelease andw %ax,(%rcx) 496 .byte 0xf0; .byte 0xf2; andw %ax,(%rcx) 497 .byte 0xf0; .byte 0xf3; andw %ax,(%rcx) 498 xrelease movw %ax,(%rcx) 499 xacquire lock orw %ax,(%rcx) 500 lock xacquire orw %ax,(%rcx) 501 xrelease lock orw %ax,(%rcx) 502 lock xrelease orw %ax,(%rcx) 503 .byte 0xf0; .byte 0xf2; orw %ax,(%rcx) 504 .byte 0xf0; .byte 0xf3; orw %ax,(%rcx) 505 xacquire lock sbbw %ax,(%rcx) 506 lock xacquire sbbw %ax,(%rcx) 507 xrelease lock sbbw %ax,(%rcx) 508 lock xrelease sbbw %ax,(%rcx) 509 .byte 0xf0; .byte 0xf2; sbbw %ax,(%rcx) 510 .byte 0xf0; .byte 0xf3; sbbw %ax,(%rcx) 511 xacquire lock subw %ax,(%rcx) 512 lock xacquire subw %ax,(%rcx) 513 xrelease lock subw %ax,(%rcx) 514 lock xrelease subw %ax,(%rcx) 515 .byte 0xf0; .byte 0xf2; subw %ax,(%rcx) 516 .byte 0xf0; .byte 0xf3; subw %ax,(%rcx) 517 xacquire lock xchgw %ax,(%rcx) 518 lock xacquire xchgw %ax,(%rcx) 519 xacquire xchgw %ax,(%rcx) 520 xrelease lock xchgw %ax,(%rcx) 521 lock xrelease xchgw %ax,(%rcx) 522 xrelease xchgw %ax,(%rcx) 523 .byte 0xf0; .byte 0xf2; xchgw %ax,(%rcx) 524 .byte 0xf0; .byte 0xf3; xchgw %ax,(%rcx) 525 xacquire lock xorw %ax,(%rcx) 526 lock xacquire xorw %ax,(%rcx) 527 xrelease lock xorw %ax,(%rcx) 528 lock xrelease xorw %ax,(%rcx) 529 .byte 0xf0; .byte 0xf2; xorw %ax,(%rcx) 530 .byte 0xf0; .byte 0xf3; xorw %ax,(%rcx) 531 532# Tests for op regl regl/m32 533# Tests for op regl/m32 regl 534 xacquire lock adcl %eax,(%rcx) 535 lock xacquire adcl %eax,(%rcx) 536 xrelease lock adcl %eax,(%rcx) 537 lock xrelease adcl %eax,(%rcx) 538 .byte 0xf0; .byte 0xf2; adcl %eax,(%rcx) 539 .byte 0xf0; .byte 0xf3; adcl %eax,(%rcx) 540 xacquire lock addl %eax,(%rcx) 541 lock xacquire addl %eax,(%rcx) 542 xrelease lock addl %eax,(%rcx) 543 lock xrelease addl %eax,(%rcx) 544 .byte 0xf0; .byte 0xf2; addl %eax,(%rcx) 545 .byte 0xf0; .byte 0xf3; addl %eax,(%rcx) 546 xacquire lock andl %eax,(%rcx) 547 lock xacquire andl %eax,(%rcx) 548 xrelease lock andl %eax,(%rcx) 549 lock xrelease andl %eax,(%rcx) 550 .byte 0xf0; .byte 0xf2; andl %eax,(%rcx) 551 .byte 0xf0; .byte 0xf3; andl %eax,(%rcx) 552 xrelease movl %eax,(%rcx) 553 xacquire lock orl %eax,(%rcx) 554 lock xacquire orl %eax,(%rcx) 555 xrelease lock orl %eax,(%rcx) 556 lock xrelease orl %eax,(%rcx) 557 .byte 0xf0; .byte 0xf2; orl %eax,(%rcx) 558 .byte 0xf0; .byte 0xf3; orl %eax,(%rcx) 559 xacquire lock sbbl %eax,(%rcx) 560 lock xacquire sbbl %eax,(%rcx) 561 xrelease lock sbbl %eax,(%rcx) 562 lock xrelease sbbl %eax,(%rcx) 563 .byte 0xf0; .byte 0xf2; sbbl %eax,(%rcx) 564 .byte 0xf0; .byte 0xf3; sbbl %eax,(%rcx) 565 xacquire lock subl %eax,(%rcx) 566 lock xacquire subl %eax,(%rcx) 567 xrelease lock subl %eax,(%rcx) 568 lock xrelease subl %eax,(%rcx) 569 .byte 0xf0; .byte 0xf2; subl %eax,(%rcx) 570 .byte 0xf0; .byte 0xf3; subl %eax,(%rcx) 571 xacquire lock xchgl %eax,(%rcx) 572 lock xacquire xchgl %eax,(%rcx) 573 xacquire xchgl %eax,(%rcx) 574 xrelease lock xchgl %eax,(%rcx) 575 lock xrelease xchgl %eax,(%rcx) 576 xrelease xchgl %eax,(%rcx) 577 .byte 0xf0; .byte 0xf2; xchgl %eax,(%rcx) 578 .byte 0xf0; .byte 0xf3; xchgl %eax,(%rcx) 579 xacquire lock xorl %eax,(%rcx) 580 lock xacquire xorl %eax,(%rcx) 581 xrelease lock xorl %eax,(%rcx) 582 lock xrelease xorl %eax,(%rcx) 583 .byte 0xf0; .byte 0xf2; xorl %eax,(%rcx) 584 .byte 0xf0; .byte 0xf3; xorl %eax,(%rcx) 585 586# Tests for op regq regq/m64 587# Tests for op regq/m64 regq 588 xacquire lock adcq %rax,(%rcx) 589 lock xacquire adcq %rax,(%rcx) 590 xrelease lock adcq %rax,(%rcx) 591 lock xrelease adcq %rax,(%rcx) 592 .byte 0xf0; .byte 0xf2; adcq %rax,(%rcx) 593 .byte 0xf0; .byte 0xf3; adcq %rax,(%rcx) 594 xacquire lock addq %rax,(%rcx) 595 lock xacquire addq %rax,(%rcx) 596 xrelease lock addq %rax,(%rcx) 597 lock xrelease addq %rax,(%rcx) 598 .byte 0xf0; .byte 0xf2; addq %rax,(%rcx) 599 .byte 0xf0; .byte 0xf3; addq %rax,(%rcx) 600 xacquire lock andq %rax,(%rcx) 601 lock xacquire andq %rax,(%rcx) 602 xrelease lock andq %rax,(%rcx) 603 lock xrelease andq %rax,(%rcx) 604 .byte 0xf0; .byte 0xf2; andq %rax,(%rcx) 605 .byte 0xf0; .byte 0xf3; andq %rax,(%rcx) 606 xrelease movq %rax,(%rcx) 607 xacquire lock orq %rax,(%rcx) 608 lock xacquire orq %rax,(%rcx) 609 xrelease lock orq %rax,(%rcx) 610 lock xrelease orq %rax,(%rcx) 611 .byte 0xf0; .byte 0xf2; orq %rax,(%rcx) 612 .byte 0xf0; .byte 0xf3; orq %rax,(%rcx) 613 xacquire lock sbbq %rax,(%rcx) 614 lock xacquire sbbq %rax,(%rcx) 615 xrelease lock sbbq %rax,(%rcx) 616 lock xrelease sbbq %rax,(%rcx) 617 .byte 0xf0; .byte 0xf2; sbbq %rax,(%rcx) 618 .byte 0xf0; .byte 0xf3; sbbq %rax,(%rcx) 619 xacquire lock subq %rax,(%rcx) 620 lock xacquire subq %rax,(%rcx) 621 xrelease lock subq %rax,(%rcx) 622 lock xrelease subq %rax,(%rcx) 623 .byte 0xf0; .byte 0xf2; subq %rax,(%rcx) 624 .byte 0xf0; .byte 0xf3; subq %rax,(%rcx) 625 xacquire lock xchgq %rax,(%rcx) 626 lock xacquire xchgq %rax,(%rcx) 627 xacquire xchgq %rax,(%rcx) 628 xrelease lock xchgq %rax,(%rcx) 629 lock xrelease xchgq %rax,(%rcx) 630 xrelease xchgq %rax,(%rcx) 631 .byte 0xf0; .byte 0xf2; xchgq %rax,(%rcx) 632 .byte 0xf0; .byte 0xf3; xchgq %rax,(%rcx) 633 xacquire lock xorq %rax,(%rcx) 634 lock xacquire xorq %rax,(%rcx) 635 xrelease lock xorq %rax,(%rcx) 636 lock xrelease xorq %rax,(%rcx) 637 .byte 0xf0; .byte 0xf2; xorq %rax,(%rcx) 638 .byte 0xf0; .byte 0xf3; xorq %rax,(%rcx) 639 640# Tests for op regs, regs/m16 641 xacquire lock btcw %ax,(%rcx) 642 lock xacquire btcw %ax,(%rcx) 643 xrelease lock btcw %ax,(%rcx) 644 lock xrelease btcw %ax,(%rcx) 645 .byte 0xf0; .byte 0xf2; btcw %ax,(%rcx) 646 .byte 0xf0; .byte 0xf3; btcw %ax,(%rcx) 647 xacquire lock btrw %ax,(%rcx) 648 lock xacquire btrw %ax,(%rcx) 649 xrelease lock btrw %ax,(%rcx) 650 lock xrelease btrw %ax,(%rcx) 651 .byte 0xf0; .byte 0xf2; btrw %ax,(%rcx) 652 .byte 0xf0; .byte 0xf3; btrw %ax,(%rcx) 653 xacquire lock btsw %ax,(%rcx) 654 lock xacquire btsw %ax,(%rcx) 655 xrelease lock btsw %ax,(%rcx) 656 lock xrelease btsw %ax,(%rcx) 657 .byte 0xf0; .byte 0xf2; btsw %ax,(%rcx) 658 .byte 0xf0; .byte 0xf3; btsw %ax,(%rcx) 659 xacquire lock cmpxchgw %ax,(%rcx) 660 lock xacquire cmpxchgw %ax,(%rcx) 661 xrelease lock cmpxchgw %ax,(%rcx) 662 lock xrelease cmpxchgw %ax,(%rcx) 663 .byte 0xf0; .byte 0xf2; cmpxchgw %ax,(%rcx) 664 .byte 0xf0; .byte 0xf3; cmpxchgw %ax,(%rcx) 665 xacquire lock xaddw %ax,(%rcx) 666 lock xacquire xaddw %ax,(%rcx) 667 xrelease lock xaddw %ax,(%rcx) 668 lock xrelease xaddw %ax,(%rcx) 669 .byte 0xf0; .byte 0xf2; xaddw %ax,(%rcx) 670 .byte 0xf0; .byte 0xf3; xaddw %ax,(%rcx) 671 672# Tests for op regl regl/m32 673 xacquire lock btcl %eax,(%rcx) 674 lock xacquire btcl %eax,(%rcx) 675 xrelease lock btcl %eax,(%rcx) 676 lock xrelease btcl %eax,(%rcx) 677 .byte 0xf0; .byte 0xf2; btcl %eax,(%rcx) 678 .byte 0xf0; .byte 0xf3; btcl %eax,(%rcx) 679 xacquire lock btrl %eax,(%rcx) 680 lock xacquire btrl %eax,(%rcx) 681 xrelease lock btrl %eax,(%rcx) 682 lock xrelease btrl %eax,(%rcx) 683 .byte 0xf0; .byte 0xf2; btrl %eax,(%rcx) 684 .byte 0xf0; .byte 0xf3; btrl %eax,(%rcx) 685 xacquire lock btsl %eax,(%rcx) 686 lock xacquire btsl %eax,(%rcx) 687 xrelease lock btsl %eax,(%rcx) 688 lock xrelease btsl %eax,(%rcx) 689 .byte 0xf0; .byte 0xf2; btsl %eax,(%rcx) 690 .byte 0xf0; .byte 0xf3; btsl %eax,(%rcx) 691 xacquire lock cmpxchgl %eax,(%rcx) 692 lock xacquire cmpxchgl %eax,(%rcx) 693 xrelease lock cmpxchgl %eax,(%rcx) 694 lock xrelease cmpxchgl %eax,(%rcx) 695 .byte 0xf0; .byte 0xf2; cmpxchgl %eax,(%rcx) 696 .byte 0xf0; .byte 0xf3; cmpxchgl %eax,(%rcx) 697 xacquire lock xaddl %eax,(%rcx) 698 lock xacquire xaddl %eax,(%rcx) 699 xrelease lock xaddl %eax,(%rcx) 700 lock xrelease xaddl %eax,(%rcx) 701 .byte 0xf0; .byte 0xf2; xaddl %eax,(%rcx) 702 .byte 0xf0; .byte 0xf3; xaddl %eax,(%rcx) 703 704# Tests for op regq regq/m64 705 xacquire lock btcq %rax,(%rcx) 706 lock xacquire btcq %rax,(%rcx) 707 xrelease lock btcq %rax,(%rcx) 708 lock xrelease btcq %rax,(%rcx) 709 .byte 0xf0; .byte 0xf2; btcq %rax,(%rcx) 710 .byte 0xf0; .byte 0xf3; btcq %rax,(%rcx) 711 xacquire lock btrq %rax,(%rcx) 712 lock xacquire btrq %rax,(%rcx) 713 xrelease lock btrq %rax,(%rcx) 714 lock xrelease btrq %rax,(%rcx) 715 .byte 0xf0; .byte 0xf2; btrq %rax,(%rcx) 716 .byte 0xf0; .byte 0xf3; btrq %rax,(%rcx) 717 xacquire lock btsq %rax,(%rcx) 718 lock xacquire btsq %rax,(%rcx) 719 xrelease lock btsq %rax,(%rcx) 720 lock xrelease btsq %rax,(%rcx) 721 .byte 0xf0; .byte 0xf2; btsq %rax,(%rcx) 722 .byte 0xf0; .byte 0xf3; btsq %rax,(%rcx) 723 xacquire lock cmpxchgq %rax,(%rcx) 724 lock xacquire cmpxchgq %rax,(%rcx) 725 xrelease lock cmpxchgq %rax,(%rcx) 726 lock xrelease cmpxchgq %rax,(%rcx) 727 .byte 0xf0; .byte 0xf2; cmpxchgq %rax,(%rcx) 728 .byte 0xf0; .byte 0xf3; cmpxchgq %rax,(%rcx) 729 xacquire lock xaddq %rax,(%rcx) 730 lock xacquire xaddq %rax,(%rcx) 731 xrelease lock xaddq %rax,(%rcx) 732 lock xrelease xaddq %rax,(%rcx) 733 .byte 0xf0; .byte 0xf2; xaddq %rax,(%rcx) 734 .byte 0xf0; .byte 0xf3; xaddq %rax,(%rcx) 735 736# Tests for op regb/m8 737 xacquire lock decb (%rcx) 738 lock xacquire decb (%rcx) 739 xrelease lock decb (%rcx) 740 lock xrelease decb (%rcx) 741 .byte 0xf0; .byte 0xf2; decb (%rcx) 742 .byte 0xf0; .byte 0xf3; decb (%rcx) 743 xacquire lock incb (%rcx) 744 lock xacquire incb (%rcx) 745 xrelease lock incb (%rcx) 746 lock xrelease incb (%rcx) 747 .byte 0xf0; .byte 0xf2; incb (%rcx) 748 .byte 0xf0; .byte 0xf3; incb (%rcx) 749 xacquire lock negb (%rcx) 750 lock xacquire negb (%rcx) 751 xrelease lock negb (%rcx) 752 lock xrelease negb (%rcx) 753 .byte 0xf0; .byte 0xf2; negb (%rcx) 754 .byte 0xf0; .byte 0xf3; negb (%rcx) 755 xacquire lock notb (%rcx) 756 lock xacquire notb (%rcx) 757 xrelease lock notb (%rcx) 758 lock xrelease notb (%rcx) 759 .byte 0xf0; .byte 0xf2; notb (%rcx) 760 .byte 0xf0; .byte 0xf3; notb (%rcx) 761 762# Tests for op regs/m16 763 xacquire lock decw (%rcx) 764 lock xacquire decw (%rcx) 765 xrelease lock decw (%rcx) 766 lock xrelease decw (%rcx) 767 .byte 0xf0; .byte 0xf2; decw (%rcx) 768 .byte 0xf0; .byte 0xf3; decw (%rcx) 769 xacquire lock incw (%rcx) 770 lock xacquire incw (%rcx) 771 xrelease lock incw (%rcx) 772 lock xrelease incw (%rcx) 773 .byte 0xf0; .byte 0xf2; incw (%rcx) 774 .byte 0xf0; .byte 0xf3; incw (%rcx) 775 xacquire lock negw (%rcx) 776 lock xacquire negw (%rcx) 777 xrelease lock negw (%rcx) 778 lock xrelease negw (%rcx) 779 .byte 0xf0; .byte 0xf2; negw (%rcx) 780 .byte 0xf0; .byte 0xf3; negw (%rcx) 781 xacquire lock notw (%rcx) 782 lock xacquire notw (%rcx) 783 xrelease lock notw (%rcx) 784 lock xrelease notw (%rcx) 785 .byte 0xf0; .byte 0xf2; notw (%rcx) 786 .byte 0xf0; .byte 0xf3; notw (%rcx) 787 788# Tests for op regl/m32 789 xacquire lock decl (%rcx) 790 lock xacquire decl (%rcx) 791 xrelease lock decl (%rcx) 792 lock xrelease decl (%rcx) 793 .byte 0xf0; .byte 0xf2; decl (%rcx) 794 .byte 0xf0; .byte 0xf3; decl (%rcx) 795 xacquire lock incl (%rcx) 796 lock xacquire incl (%rcx) 797 xrelease lock incl (%rcx) 798 lock xrelease incl (%rcx) 799 .byte 0xf0; .byte 0xf2; incl (%rcx) 800 .byte 0xf0; .byte 0xf3; incl (%rcx) 801 xacquire lock negl (%rcx) 802 lock xacquire negl (%rcx) 803 xrelease lock negl (%rcx) 804 lock xrelease negl (%rcx) 805 .byte 0xf0; .byte 0xf2; negl (%rcx) 806 .byte 0xf0; .byte 0xf3; negl (%rcx) 807 xacquire lock notl (%rcx) 808 lock xacquire notl (%rcx) 809 xrelease lock notl (%rcx) 810 lock xrelease notl (%rcx) 811 .byte 0xf0; .byte 0xf2; notl (%rcx) 812 .byte 0xf0; .byte 0xf3; notl (%rcx) 813 814# Tests for op regq/m64 815 xacquire lock decq (%rcx) 816 lock xacquire decq (%rcx) 817 xrelease lock decq (%rcx) 818 lock xrelease decq (%rcx) 819 .byte 0xf0; .byte 0xf2; decq (%rcx) 820 .byte 0xf0; .byte 0xf3; decq (%rcx) 821 xacquire lock incq (%rcx) 822 lock xacquire incq (%rcx) 823 xrelease lock incq (%rcx) 824 lock xrelease incq (%rcx) 825 .byte 0xf0; .byte 0xf2; incq (%rcx) 826 .byte 0xf0; .byte 0xf3; incq (%rcx) 827 xacquire lock negq (%rcx) 828 lock xacquire negq (%rcx) 829 xrelease lock negq (%rcx) 830 lock xrelease negq (%rcx) 831 .byte 0xf0; .byte 0xf2; negq (%rcx) 832 .byte 0xf0; .byte 0xf3; negq (%rcx) 833 xacquire lock notq (%rcx) 834 lock xacquire notq (%rcx) 835 xrelease lock notq (%rcx) 836 lock xrelease notq (%rcx) 837 .byte 0xf0; .byte 0xf2; notq (%rcx) 838 .byte 0xf0; .byte 0xf3; notq (%rcx) 839 840# Tests for op m64 841 xacquire lock cmpxchg8bq (%rcx) 842 lock xacquire cmpxchg8bq (%rcx) 843 xrelease lock cmpxchg8bq (%rcx) 844 lock xrelease cmpxchg8bq (%rcx) 845 .byte 0xf0; .byte 0xf2; cmpxchg8bq (%rcx) 846 .byte 0xf0; .byte 0xf3; cmpxchg8bq (%rcx) 847 848# Tests for op regb, regb/m8 849 xacquire lock cmpxchgb %cl,(%rcx) 850 lock xacquire cmpxchgb %cl,(%rcx) 851 xrelease lock cmpxchgb %cl,(%rcx) 852 lock xrelease cmpxchgb %cl,(%rcx) 853 .byte 0xf0; .byte 0xf2; cmpxchgb %cl,(%rcx) 854 .byte 0xf0; .byte 0xf3; cmpxchgb %cl,(%rcx) 855 xacquire lock xaddb %cl,(%rcx) 856 lock xacquire xaddb %cl,(%rcx) 857 xrelease lock xaddb %cl,(%rcx) 858 lock xrelease xaddb %cl,(%rcx) 859 .byte 0xf0; .byte 0xf2; xaddb %cl,(%rcx) 860 .byte 0xf0; .byte 0xf3; xaddb %cl,(%rcx) 861 862 .intel_syntax noprefix 863 864 865# Tests for op imm32 rax 866 867# Tests for op imm8 regb/m8 868 xacquire lock adc BYTE PTR [rcx],100 869 lock xacquire adc BYTE PTR [rcx],100 870 xrelease lock adc BYTE PTR [rcx],100 871 lock xrelease adc BYTE PTR [rcx],100 872 .byte 0xf0; .byte 0xf2; adc BYTE PTR [rcx],100 873 .byte 0xf0; .byte 0xf3; adc BYTE PTR [rcx],100 874 xacquire lock add BYTE PTR [rcx],100 875 lock xacquire add BYTE PTR [rcx],100 876 xrelease lock add BYTE PTR [rcx],100 877 lock xrelease add BYTE PTR [rcx],100 878 .byte 0xf0; .byte 0xf2; add BYTE PTR [rcx],100 879 .byte 0xf0; .byte 0xf3; add BYTE PTR [rcx],100 880 xacquire lock and BYTE PTR [rcx],100 881 lock xacquire and BYTE PTR [rcx],100 882 xrelease lock and BYTE PTR [rcx],100 883 lock xrelease and BYTE PTR [rcx],100 884 .byte 0xf0; .byte 0xf2; and BYTE PTR [rcx],100 885 .byte 0xf0; .byte 0xf3; and BYTE PTR [rcx],100 886 xrelease mov BYTE PTR [rcx],100 887 xacquire lock or BYTE PTR [rcx],100 888 lock xacquire or BYTE PTR [rcx],100 889 xrelease lock or BYTE PTR [rcx],100 890 lock xrelease or BYTE PTR [rcx],100 891 .byte 0xf0; .byte 0xf2; or BYTE PTR [rcx],100 892 .byte 0xf0; .byte 0xf3; or BYTE PTR [rcx],100 893 xacquire lock sbb BYTE PTR [rcx],100 894 lock xacquire sbb BYTE PTR [rcx],100 895 xrelease lock sbb BYTE PTR [rcx],100 896 lock xrelease sbb BYTE PTR [rcx],100 897 .byte 0xf0; .byte 0xf2; sbb BYTE PTR [rcx],100 898 .byte 0xf0; .byte 0xf3; sbb BYTE PTR [rcx],100 899 xacquire lock sub BYTE PTR [rcx],100 900 lock xacquire sub BYTE PTR [rcx],100 901 xrelease lock sub BYTE PTR [rcx],100 902 lock xrelease sub BYTE PTR [rcx],100 903 .byte 0xf0; .byte 0xf2; sub BYTE PTR [rcx],100 904 .byte 0xf0; .byte 0xf3; sub BYTE PTR [rcx],100 905 xacquire lock xor BYTE PTR [rcx],100 906 lock xacquire xor BYTE PTR [rcx],100 907 xrelease lock xor BYTE PTR [rcx],100 908 lock xrelease xor BYTE PTR [rcx],100 909 .byte 0xf0; .byte 0xf2; xor BYTE PTR [rcx],100 910 .byte 0xf0; .byte 0xf3; xor BYTE PTR [rcx],100 911 912# Tests for op imm16 regs/m16 913 xacquire lock adc WORD PTR [rcx],1000 914 lock xacquire adc WORD PTR [rcx],1000 915 xrelease lock adc WORD PTR [rcx],1000 916 lock xrelease adc WORD PTR [rcx],1000 917 .byte 0xf0; .byte 0xf2; adc WORD PTR [rcx],1000 918 .byte 0xf0; .byte 0xf3; adc WORD PTR [rcx],1000 919 xacquire lock add WORD PTR [rcx],1000 920 lock xacquire add WORD PTR [rcx],1000 921 xrelease lock add WORD PTR [rcx],1000 922 lock xrelease add WORD PTR [rcx],1000 923 .byte 0xf0; .byte 0xf2; add WORD PTR [rcx],1000 924 .byte 0xf0; .byte 0xf3; add WORD PTR [rcx],1000 925 xacquire lock and WORD PTR [rcx],1000 926 lock xacquire and WORD PTR [rcx],1000 927 xrelease lock and WORD PTR [rcx],1000 928 lock xrelease and WORD PTR [rcx],1000 929 .byte 0xf0; .byte 0xf2; and WORD PTR [rcx],1000 930 .byte 0xf0; .byte 0xf3; and WORD PTR [rcx],1000 931 xrelease mov WORD PTR [rcx],1000 932 xacquire lock or WORD PTR [rcx],1000 933 lock xacquire or WORD PTR [rcx],1000 934 xrelease lock or WORD PTR [rcx],1000 935 lock xrelease or WORD PTR [rcx],1000 936 .byte 0xf0; .byte 0xf2; or WORD PTR [rcx],1000 937 .byte 0xf0; .byte 0xf3; or WORD PTR [rcx],1000 938 xacquire lock sbb WORD PTR [rcx],1000 939 lock xacquire sbb WORD PTR [rcx],1000 940 xrelease lock sbb WORD PTR [rcx],1000 941 lock xrelease sbb WORD PTR [rcx],1000 942 .byte 0xf0; .byte 0xf2; sbb WORD PTR [rcx],1000 943 .byte 0xf0; .byte 0xf3; sbb WORD PTR [rcx],1000 944 xacquire lock sub WORD PTR [rcx],1000 945 lock xacquire sub WORD PTR [rcx],1000 946 xrelease lock sub WORD PTR [rcx],1000 947 lock xrelease sub WORD PTR [rcx],1000 948 .byte 0xf0; .byte 0xf2; sub WORD PTR [rcx],1000 949 .byte 0xf0; .byte 0xf3; sub WORD PTR [rcx],1000 950 xacquire lock xor WORD PTR [rcx],1000 951 lock xacquire xor WORD PTR [rcx],1000 952 xrelease lock xor WORD PTR [rcx],1000 953 lock xrelease xor WORD PTR [rcx],1000 954 .byte 0xf0; .byte 0xf2; xor WORD PTR [rcx],1000 955 .byte 0xf0; .byte 0xf3; xor WORD PTR [rcx],1000 956 957# Tests for op imm32 regl/m32 958 xacquire lock adc DWORD PTR [rcx],10000000 959 lock xacquire adc DWORD PTR [rcx],10000000 960 xrelease lock adc DWORD PTR [rcx],10000000 961 lock xrelease adc DWORD PTR [rcx],10000000 962 .byte 0xf0; .byte 0xf2; adc DWORD PTR [rcx],10000000 963 .byte 0xf0; .byte 0xf3; adc DWORD PTR [rcx],10000000 964 xacquire lock add DWORD PTR [rcx],10000000 965 lock xacquire add DWORD PTR [rcx],10000000 966 xrelease lock add DWORD PTR [rcx],10000000 967 lock xrelease add DWORD PTR [rcx],10000000 968 .byte 0xf0; .byte 0xf2; add DWORD PTR [rcx],10000000 969 .byte 0xf0; .byte 0xf3; add DWORD PTR [rcx],10000000 970 xacquire lock and DWORD PTR [rcx],10000000 971 lock xacquire and DWORD PTR [rcx],10000000 972 xrelease lock and DWORD PTR [rcx],10000000 973 lock xrelease and DWORD PTR [rcx],10000000 974 .byte 0xf0; .byte 0xf2; and DWORD PTR [rcx],10000000 975 .byte 0xf0; .byte 0xf3; and DWORD PTR [rcx],10000000 976 xrelease mov DWORD PTR [rcx],10000000 977 xacquire lock or DWORD PTR [rcx],10000000 978 lock xacquire or DWORD PTR [rcx],10000000 979 xrelease lock or DWORD PTR [rcx],10000000 980 lock xrelease or DWORD PTR [rcx],10000000 981 .byte 0xf0; .byte 0xf2; or DWORD PTR [rcx],10000000 982 .byte 0xf0; .byte 0xf3; or DWORD PTR [rcx],10000000 983 xacquire lock sbb DWORD PTR [rcx],10000000 984 lock xacquire sbb DWORD PTR [rcx],10000000 985 xrelease lock sbb DWORD PTR [rcx],10000000 986 lock xrelease sbb DWORD PTR [rcx],10000000 987 .byte 0xf0; .byte 0xf2; sbb DWORD PTR [rcx],10000000 988 .byte 0xf0; .byte 0xf3; sbb DWORD PTR [rcx],10000000 989 xacquire lock sub DWORD PTR [rcx],10000000 990 lock xacquire sub DWORD PTR [rcx],10000000 991 xrelease lock sub DWORD PTR [rcx],10000000 992 lock xrelease sub DWORD PTR [rcx],10000000 993 .byte 0xf0; .byte 0xf2; sub DWORD PTR [rcx],10000000 994 .byte 0xf0; .byte 0xf3; sub DWORD PTR [rcx],10000000 995 xacquire lock xor DWORD PTR [rcx],10000000 996 lock xacquire xor DWORD PTR [rcx],10000000 997 xrelease lock xor DWORD PTR [rcx],10000000 998 lock xrelease xor DWORD PTR [rcx],10000000 999 .byte 0xf0; .byte 0xf2; xor DWORD PTR [rcx],10000000 1000 .byte 0xf0; .byte 0xf3; xor DWORD PTR [rcx],10000000 1001 1002# Tests for op imm32 regq/m64 1003 xacquire lock adc QWORD PTR [rcx],10000000 1004 lock xacquire adc QWORD PTR [rcx],10000000 1005 xrelease lock adc QWORD PTR [rcx],10000000 1006 lock xrelease adc QWORD PTR [rcx],10000000 1007 .byte 0xf0; .byte 0xf2; adc QWORD PTR [rcx],10000000 1008 .byte 0xf0; .byte 0xf3; adc QWORD PTR [rcx],10000000 1009 xacquire lock add QWORD PTR [rcx],10000000 1010 lock xacquire add QWORD PTR [rcx],10000000 1011 xrelease lock add QWORD PTR [rcx],10000000 1012 lock xrelease add QWORD PTR [rcx],10000000 1013 .byte 0xf0; .byte 0xf2; add QWORD PTR [rcx],10000000 1014 .byte 0xf0; .byte 0xf3; add QWORD PTR [rcx],10000000 1015 xacquire lock and QWORD PTR [rcx],10000000 1016 lock xacquire and QWORD PTR [rcx],10000000 1017 xrelease lock and QWORD PTR [rcx],10000000 1018 lock xrelease and QWORD PTR [rcx],10000000 1019 .byte 0xf0; .byte 0xf2; and QWORD PTR [rcx],10000000 1020 .byte 0xf0; .byte 0xf3; and QWORD PTR [rcx],10000000 1021 xrelease mov QWORD PTR [rcx],10000000 1022 xacquire lock or QWORD PTR [rcx],10000000 1023 lock xacquire or QWORD PTR [rcx],10000000 1024 xrelease lock or QWORD PTR [rcx],10000000 1025 lock xrelease or QWORD PTR [rcx],10000000 1026 .byte 0xf0; .byte 0xf2; or QWORD PTR [rcx],10000000 1027 .byte 0xf0; .byte 0xf3; or QWORD PTR [rcx],10000000 1028 xacquire lock sbb QWORD PTR [rcx],10000000 1029 lock xacquire sbb QWORD PTR [rcx],10000000 1030 xrelease lock sbb QWORD PTR [rcx],10000000 1031 lock xrelease sbb QWORD PTR [rcx],10000000 1032 .byte 0xf0; .byte 0xf2; sbb QWORD PTR [rcx],10000000 1033 .byte 0xf0; .byte 0xf3; sbb QWORD PTR [rcx],10000000 1034 xacquire lock sub QWORD PTR [rcx],10000000 1035 lock xacquire sub QWORD PTR [rcx],10000000 1036 xrelease lock sub QWORD PTR [rcx],10000000 1037 lock xrelease sub QWORD PTR [rcx],10000000 1038 .byte 0xf0; .byte 0xf2; sub QWORD PTR [rcx],10000000 1039 .byte 0xf0; .byte 0xf3; sub QWORD PTR [rcx],10000000 1040 xacquire lock xor QWORD PTR [rcx],10000000 1041 lock xacquire xor QWORD PTR [rcx],10000000 1042 xrelease lock xor QWORD PTR [rcx],10000000 1043 lock xrelease xor QWORD PTR [rcx],10000000 1044 .byte 0xf0; .byte 0xf2; xor QWORD PTR [rcx],10000000 1045 .byte 0xf0; .byte 0xf3; xor QWORD PTR [rcx],10000000 1046 1047# Tests for op imm8 regs/m16 1048 xacquire lock adc WORD PTR [rcx],100 1049 lock xacquire adc WORD PTR [rcx],100 1050 xrelease lock adc WORD PTR [rcx],100 1051 lock xrelease adc WORD PTR [rcx],100 1052 .byte 0xf0; .byte 0xf2; adc WORD PTR [rcx],100 1053 .byte 0xf0; .byte 0xf3; adc WORD PTR [rcx],100 1054 xacquire lock add WORD PTR [rcx],100 1055 lock xacquire add WORD PTR [rcx],100 1056 xrelease lock add WORD PTR [rcx],100 1057 lock xrelease add WORD PTR [rcx],100 1058 .byte 0xf0; .byte 0xf2; add WORD PTR [rcx],100 1059 .byte 0xf0; .byte 0xf3; add WORD PTR [rcx],100 1060 xacquire lock and WORD PTR [rcx],100 1061 lock xacquire and WORD PTR [rcx],100 1062 xrelease lock and WORD PTR [rcx],100 1063 lock xrelease and WORD PTR [rcx],100 1064 .byte 0xf0; .byte 0xf2; and WORD PTR [rcx],100 1065 .byte 0xf0; .byte 0xf3; and WORD PTR [rcx],100 1066 xacquire lock btc WORD PTR [rcx],100 1067 lock xacquire btc WORD PTR [rcx],100 1068 xrelease lock btc WORD PTR [rcx],100 1069 lock xrelease btc WORD PTR [rcx],100 1070 .byte 0xf0; .byte 0xf2; btc WORD PTR [rcx],100 1071 .byte 0xf0; .byte 0xf3; btc WORD PTR [rcx],100 1072 xacquire lock btr WORD PTR [rcx],100 1073 lock xacquire btr WORD PTR [rcx],100 1074 xrelease lock btr WORD PTR [rcx],100 1075 lock xrelease btr WORD PTR [rcx],100 1076 .byte 0xf0; .byte 0xf2; btr WORD PTR [rcx],100 1077 .byte 0xf0; .byte 0xf3; btr WORD PTR [rcx],100 1078 xacquire lock bts WORD PTR [rcx],100 1079 lock xacquire bts WORD PTR [rcx],100 1080 xrelease lock bts WORD PTR [rcx],100 1081 lock xrelease bts WORD PTR [rcx],100 1082 .byte 0xf0; .byte 0xf2; bts WORD PTR [rcx],100 1083 .byte 0xf0; .byte 0xf3; bts WORD PTR [rcx],100 1084 xrelease mov WORD PTR [rcx],100 1085 xacquire lock or WORD PTR [rcx],100 1086 lock xacquire or WORD PTR [rcx],100 1087 xrelease lock or WORD PTR [rcx],100 1088 lock xrelease or WORD PTR [rcx],100 1089 .byte 0xf0; .byte 0xf2; or WORD PTR [rcx],100 1090 .byte 0xf0; .byte 0xf3; or WORD PTR [rcx],100 1091 xacquire lock sbb WORD PTR [rcx],100 1092 lock xacquire sbb WORD PTR [rcx],100 1093 xrelease lock sbb WORD PTR [rcx],100 1094 lock xrelease sbb WORD PTR [rcx],100 1095 .byte 0xf0; .byte 0xf2; sbb WORD PTR [rcx],100 1096 .byte 0xf0; .byte 0xf3; sbb WORD PTR [rcx],100 1097 xacquire lock sub WORD PTR [rcx],100 1098 lock xacquire sub WORD PTR [rcx],100 1099 xrelease lock sub WORD PTR [rcx],100 1100 lock xrelease sub WORD PTR [rcx],100 1101 .byte 0xf0; .byte 0xf2; sub WORD PTR [rcx],100 1102 .byte 0xf0; .byte 0xf3; sub WORD PTR [rcx],100 1103 xacquire lock xor WORD PTR [rcx],100 1104 lock xacquire xor WORD PTR [rcx],100 1105 xrelease lock xor WORD PTR [rcx],100 1106 lock xrelease xor WORD PTR [rcx],100 1107 .byte 0xf0; .byte 0xf2; xor WORD PTR [rcx],100 1108 .byte 0xf0; .byte 0xf3; xor WORD PTR [rcx],100 1109 1110# Tests for op imm8 regl/m32 1111 xacquire lock adc DWORD PTR [rcx],100 1112 lock xacquire adc DWORD PTR [rcx],100 1113 xrelease lock adc DWORD PTR [rcx],100 1114 lock xrelease adc DWORD PTR [rcx],100 1115 .byte 0xf0; .byte 0xf2; adc DWORD PTR [rcx],100 1116 .byte 0xf0; .byte 0xf3; adc DWORD PTR [rcx],100 1117 xacquire lock add DWORD PTR [rcx],100 1118 lock xacquire add DWORD PTR [rcx],100 1119 xrelease lock add DWORD PTR [rcx],100 1120 lock xrelease add DWORD PTR [rcx],100 1121 .byte 0xf0; .byte 0xf2; add DWORD PTR [rcx],100 1122 .byte 0xf0; .byte 0xf3; add DWORD PTR [rcx],100 1123 xacquire lock and DWORD PTR [rcx],100 1124 lock xacquire and DWORD PTR [rcx],100 1125 xrelease lock and DWORD PTR [rcx],100 1126 lock xrelease and DWORD PTR [rcx],100 1127 .byte 0xf0; .byte 0xf2; and DWORD PTR [rcx],100 1128 .byte 0xf0; .byte 0xf3; and DWORD PTR [rcx],100 1129 xacquire lock btc DWORD PTR [rcx],100 1130 lock xacquire btc DWORD PTR [rcx],100 1131 xrelease lock btc DWORD PTR [rcx],100 1132 lock xrelease btc DWORD PTR [rcx],100 1133 .byte 0xf0; .byte 0xf2; btc DWORD PTR [rcx],100 1134 .byte 0xf0; .byte 0xf3; btc DWORD PTR [rcx],100 1135 xacquire lock btr DWORD PTR [rcx],100 1136 lock xacquire btr DWORD PTR [rcx],100 1137 xrelease lock btr DWORD PTR [rcx],100 1138 lock xrelease btr DWORD PTR [rcx],100 1139 .byte 0xf0; .byte 0xf2; btr DWORD PTR [rcx],100 1140 .byte 0xf0; .byte 0xf3; btr DWORD PTR [rcx],100 1141 xacquire lock bts DWORD PTR [rcx],100 1142 lock xacquire bts DWORD PTR [rcx],100 1143 xrelease lock bts DWORD PTR [rcx],100 1144 lock xrelease bts DWORD PTR [rcx],100 1145 .byte 0xf0; .byte 0xf2; bts DWORD PTR [rcx],100 1146 .byte 0xf0; .byte 0xf3; bts DWORD PTR [rcx],100 1147 xrelease mov DWORD PTR [rcx],100 1148 xacquire lock or DWORD PTR [rcx],100 1149 lock xacquire or DWORD PTR [rcx],100 1150 xrelease lock or DWORD PTR [rcx],100 1151 lock xrelease or DWORD PTR [rcx],100 1152 .byte 0xf0; .byte 0xf2; or DWORD PTR [rcx],100 1153 .byte 0xf0; .byte 0xf3; or DWORD PTR [rcx],100 1154 xacquire lock sbb DWORD PTR [rcx],100 1155 lock xacquire sbb DWORD PTR [rcx],100 1156 xrelease lock sbb DWORD PTR [rcx],100 1157 lock xrelease sbb DWORD PTR [rcx],100 1158 .byte 0xf0; .byte 0xf2; sbb DWORD PTR [rcx],100 1159 .byte 0xf0; .byte 0xf3; sbb DWORD PTR [rcx],100 1160 xacquire lock sub DWORD PTR [rcx],100 1161 lock xacquire sub DWORD PTR [rcx],100 1162 xrelease lock sub DWORD PTR [rcx],100 1163 lock xrelease sub DWORD PTR [rcx],100 1164 .byte 0xf0; .byte 0xf2; sub DWORD PTR [rcx],100 1165 .byte 0xf0; .byte 0xf3; sub DWORD PTR [rcx],100 1166 xacquire lock xor DWORD PTR [rcx],100 1167 lock xacquire xor DWORD PTR [rcx],100 1168 xrelease lock xor DWORD PTR [rcx],100 1169 lock xrelease xor DWORD PTR [rcx],100 1170 .byte 0xf0; .byte 0xf2; xor DWORD PTR [rcx],100 1171 .byte 0xf0; .byte 0xf3; xor DWORD PTR [rcx],100 1172 1173# Tests for op imm8 regq/m64 1174 xacquire lock adc QWORD PTR [rcx],100 1175 lock xacquire adc QWORD PTR [rcx],100 1176 xrelease lock adc QWORD PTR [rcx],100 1177 lock xrelease adc QWORD PTR [rcx],100 1178 .byte 0xf0; .byte 0xf2; adc QWORD PTR [rcx],100 1179 .byte 0xf0; .byte 0xf3; adc QWORD PTR [rcx],100 1180 xacquire lock add QWORD PTR [rcx],100 1181 lock xacquire add QWORD PTR [rcx],100 1182 xrelease lock add QWORD PTR [rcx],100 1183 lock xrelease add QWORD PTR [rcx],100 1184 .byte 0xf0; .byte 0xf2; add QWORD PTR [rcx],100 1185 .byte 0xf0; .byte 0xf3; add QWORD PTR [rcx],100 1186 xacquire lock and QWORD PTR [rcx],100 1187 lock xacquire and QWORD PTR [rcx],100 1188 xrelease lock and QWORD PTR [rcx],100 1189 lock xrelease and QWORD PTR [rcx],100 1190 .byte 0xf0; .byte 0xf2; and QWORD PTR [rcx],100 1191 .byte 0xf0; .byte 0xf3; and QWORD PTR [rcx],100 1192 xacquire lock btc QWORD PTR [rcx],100 1193 lock xacquire btc QWORD PTR [rcx],100 1194 xrelease lock btc QWORD PTR [rcx],100 1195 lock xrelease btc QWORD PTR [rcx],100 1196 .byte 0xf0; .byte 0xf2; btc QWORD PTR [rcx],100 1197 .byte 0xf0; .byte 0xf3; btc QWORD PTR [rcx],100 1198 xacquire lock btr QWORD PTR [rcx],100 1199 lock xacquire btr QWORD PTR [rcx],100 1200 xrelease lock btr QWORD PTR [rcx],100 1201 lock xrelease btr QWORD PTR [rcx],100 1202 .byte 0xf0; .byte 0xf2; btr QWORD PTR [rcx],100 1203 .byte 0xf0; .byte 0xf3; btr QWORD PTR [rcx],100 1204 xacquire lock bts QWORD PTR [rcx],100 1205 lock xacquire bts QWORD PTR [rcx],100 1206 xrelease lock bts QWORD PTR [rcx],100 1207 lock xrelease bts QWORD PTR [rcx],100 1208 .byte 0xf0; .byte 0xf2; bts QWORD PTR [rcx],100 1209 .byte 0xf0; .byte 0xf3; bts QWORD PTR [rcx],100 1210 xrelease mov QWORD PTR [rcx],100 1211 xacquire lock or QWORD PTR [rcx],100 1212 lock xacquire or QWORD PTR [rcx],100 1213 xrelease lock or QWORD PTR [rcx],100 1214 lock xrelease or QWORD PTR [rcx],100 1215 .byte 0xf0; .byte 0xf2; or QWORD PTR [rcx],100 1216 .byte 0xf0; .byte 0xf3; or QWORD PTR [rcx],100 1217 xacquire lock sbb QWORD PTR [rcx],100 1218 lock xacquire sbb QWORD PTR [rcx],100 1219 xrelease lock sbb QWORD PTR [rcx],100 1220 lock xrelease sbb QWORD PTR [rcx],100 1221 .byte 0xf0; .byte 0xf2; sbb QWORD PTR [rcx],100 1222 .byte 0xf0; .byte 0xf3; sbb QWORD PTR [rcx],100 1223 xacquire lock sub QWORD PTR [rcx],100 1224 lock xacquire sub QWORD PTR [rcx],100 1225 xrelease lock sub QWORD PTR [rcx],100 1226 lock xrelease sub QWORD PTR [rcx],100 1227 .byte 0xf0; .byte 0xf2; sub QWORD PTR [rcx],100 1228 .byte 0xf0; .byte 0xf3; sub QWORD PTR [rcx],100 1229 xacquire lock xor QWORD PTR [rcx],100 1230 lock xacquire xor QWORD PTR [rcx],100 1231 xrelease lock xor QWORD PTR [rcx],100 1232 lock xrelease xor QWORD PTR [rcx],100 1233 .byte 0xf0; .byte 0xf2; xor QWORD PTR [rcx],100 1234 .byte 0xf0; .byte 0xf3; xor QWORD PTR [rcx],100 1235 1236# Tests for op imm8 regb/m8 1237 xacquire lock adc BYTE PTR [rcx],100 1238 lock xacquire adc BYTE PTR [rcx],100 1239 xrelease lock adc BYTE PTR [rcx],100 1240 lock xrelease adc BYTE PTR [rcx],100 1241 .byte 0xf0; .byte 0xf2; adc BYTE PTR [rcx],100 1242 .byte 0xf0; .byte 0xf3; adc BYTE PTR [rcx],100 1243 xacquire lock add BYTE PTR [rcx],100 1244 lock xacquire add BYTE PTR [rcx],100 1245 xrelease lock add BYTE PTR [rcx],100 1246 lock xrelease add BYTE PTR [rcx],100 1247 .byte 0xf0; .byte 0xf2; add BYTE PTR [rcx],100 1248 .byte 0xf0; .byte 0xf3; add BYTE PTR [rcx],100 1249 xacquire lock and BYTE PTR [rcx],100 1250 lock xacquire and BYTE PTR [rcx],100 1251 xrelease lock and BYTE PTR [rcx],100 1252 lock xrelease and BYTE PTR [rcx],100 1253 .byte 0xf0; .byte 0xf2; and BYTE PTR [rcx],100 1254 .byte 0xf0; .byte 0xf3; and BYTE PTR [rcx],100 1255 xrelease mov BYTE PTR [rcx],100 1256 xacquire lock or BYTE PTR [rcx],100 1257 lock xacquire or BYTE PTR [rcx],100 1258 xrelease lock or BYTE PTR [rcx],100 1259 lock xrelease or BYTE PTR [rcx],100 1260 .byte 0xf0; .byte 0xf2; or BYTE PTR [rcx],100 1261 .byte 0xf0; .byte 0xf3; or BYTE PTR [rcx],100 1262 xacquire lock sbb BYTE PTR [rcx],100 1263 lock xacquire sbb BYTE PTR [rcx],100 1264 xrelease lock sbb BYTE PTR [rcx],100 1265 lock xrelease sbb BYTE PTR [rcx],100 1266 .byte 0xf0; .byte 0xf2; sbb BYTE PTR [rcx],100 1267 .byte 0xf0; .byte 0xf3; sbb BYTE PTR [rcx],100 1268 xacquire lock sub BYTE PTR [rcx],100 1269 lock xacquire sub BYTE PTR [rcx],100 1270 xrelease lock sub BYTE PTR [rcx],100 1271 lock xrelease sub BYTE PTR [rcx],100 1272 .byte 0xf0; .byte 0xf2; sub BYTE PTR [rcx],100 1273 .byte 0xf0; .byte 0xf3; sub BYTE PTR [rcx],100 1274 xacquire lock xor BYTE PTR [rcx],100 1275 lock xacquire xor BYTE PTR [rcx],100 1276 xrelease lock xor BYTE PTR [rcx],100 1277 lock xrelease xor BYTE PTR [rcx],100 1278 .byte 0xf0; .byte 0xf2; xor BYTE PTR [rcx],100 1279 .byte 0xf0; .byte 0xf3; xor BYTE PTR [rcx],100 1280 1281# Tests for op regb regb/m8 1282# Tests for op regb/m8 regb 1283 xacquire lock adc BYTE PTR [rcx],al 1284 lock xacquire adc BYTE PTR [rcx],al 1285 xrelease lock adc BYTE PTR [rcx],al 1286 lock xrelease adc BYTE PTR [rcx],al 1287 .byte 0xf0; .byte 0xf2; adc BYTE PTR [rcx],al 1288 .byte 0xf0; .byte 0xf3; adc BYTE PTR [rcx],al 1289 xacquire lock add BYTE PTR [rcx],al 1290 lock xacquire add BYTE PTR [rcx],al 1291 xrelease lock add BYTE PTR [rcx],al 1292 lock xrelease add BYTE PTR [rcx],al 1293 .byte 0xf0; .byte 0xf2; add BYTE PTR [rcx],al 1294 .byte 0xf0; .byte 0xf3; add BYTE PTR [rcx],al 1295 xacquire lock and BYTE PTR [rcx],al 1296 lock xacquire and BYTE PTR [rcx],al 1297 xrelease lock and BYTE PTR [rcx],al 1298 lock xrelease and BYTE PTR [rcx],al 1299 .byte 0xf0; .byte 0xf2; and BYTE PTR [rcx],al 1300 .byte 0xf0; .byte 0xf3; and BYTE PTR [rcx],al 1301 xrelease mov BYTE PTR [rcx],al 1302 xacquire lock or BYTE PTR [rcx],al 1303 lock xacquire or BYTE PTR [rcx],al 1304 xrelease lock or BYTE PTR [rcx],al 1305 lock xrelease or BYTE PTR [rcx],al 1306 .byte 0xf0; .byte 0xf2; or BYTE PTR [rcx],al 1307 .byte 0xf0; .byte 0xf3; or BYTE PTR [rcx],al 1308 xacquire lock sbb BYTE PTR [rcx],al 1309 lock xacquire sbb BYTE PTR [rcx],al 1310 xrelease lock sbb BYTE PTR [rcx],al 1311 lock xrelease sbb BYTE PTR [rcx],al 1312 .byte 0xf0; .byte 0xf2; sbb BYTE PTR [rcx],al 1313 .byte 0xf0; .byte 0xf3; sbb BYTE PTR [rcx],al 1314 xacquire lock sub BYTE PTR [rcx],al 1315 lock xacquire sub BYTE PTR [rcx],al 1316 xrelease lock sub BYTE PTR [rcx],al 1317 lock xrelease sub BYTE PTR [rcx],al 1318 .byte 0xf0; .byte 0xf2; sub BYTE PTR [rcx],al 1319 .byte 0xf0; .byte 0xf3; sub BYTE PTR [rcx],al 1320 xacquire lock xchg BYTE PTR [rcx],al 1321 lock xacquire xchg BYTE PTR [rcx],al 1322 xacquire xchg BYTE PTR [rcx],al 1323 xrelease lock xchg BYTE PTR [rcx],al 1324 lock xrelease xchg BYTE PTR [rcx],al 1325 xrelease xchg BYTE PTR [rcx],al 1326 .byte 0xf0; .byte 0xf2; xchg BYTE PTR [rcx],al 1327 .byte 0xf0; .byte 0xf3; xchg BYTE PTR [rcx],al 1328 xacquire lock xor BYTE PTR [rcx],al 1329 lock xacquire xor BYTE PTR [rcx],al 1330 xrelease lock xor BYTE PTR [rcx],al 1331 lock xrelease xor BYTE PTR [rcx],al 1332 .byte 0xf0; .byte 0xf2; xor BYTE PTR [rcx],al 1333 .byte 0xf0; .byte 0xf3; xor BYTE PTR [rcx],al 1334 1335# Tests for op regs regs/m16 1336# Tests for op regs/m16 regs 1337 xacquire lock adc WORD PTR [rcx],ax 1338 lock xacquire adc WORD PTR [rcx],ax 1339 xrelease lock adc WORD PTR [rcx],ax 1340 lock xrelease adc WORD PTR [rcx],ax 1341 .byte 0xf0; .byte 0xf2; adc WORD PTR [rcx],ax 1342 .byte 0xf0; .byte 0xf3; adc WORD PTR [rcx],ax 1343 xacquire lock add WORD PTR [rcx],ax 1344 lock xacquire add WORD PTR [rcx],ax 1345 xrelease lock add WORD PTR [rcx],ax 1346 lock xrelease add WORD PTR [rcx],ax 1347 .byte 0xf0; .byte 0xf2; add WORD PTR [rcx],ax 1348 .byte 0xf0; .byte 0xf3; add WORD PTR [rcx],ax 1349 xacquire lock and WORD PTR [rcx],ax 1350 lock xacquire and WORD PTR [rcx],ax 1351 xrelease lock and WORD PTR [rcx],ax 1352 lock xrelease and WORD PTR [rcx],ax 1353 .byte 0xf0; .byte 0xf2; and WORD PTR [rcx],ax 1354 .byte 0xf0; .byte 0xf3; and WORD PTR [rcx],ax 1355 xrelease mov WORD PTR [rcx],ax 1356 xacquire lock or WORD PTR [rcx],ax 1357 lock xacquire or WORD PTR [rcx],ax 1358 xrelease lock or WORD PTR [rcx],ax 1359 lock xrelease or WORD PTR [rcx],ax 1360 .byte 0xf0; .byte 0xf2; or WORD PTR [rcx],ax 1361 .byte 0xf0; .byte 0xf3; or WORD PTR [rcx],ax 1362 xacquire lock sbb WORD PTR [rcx],ax 1363 lock xacquire sbb WORD PTR [rcx],ax 1364 xrelease lock sbb WORD PTR [rcx],ax 1365 lock xrelease sbb WORD PTR [rcx],ax 1366 .byte 0xf0; .byte 0xf2; sbb WORD PTR [rcx],ax 1367 .byte 0xf0; .byte 0xf3; sbb WORD PTR [rcx],ax 1368 xacquire lock sub WORD PTR [rcx],ax 1369 lock xacquire sub WORD PTR [rcx],ax 1370 xrelease lock sub WORD PTR [rcx],ax 1371 lock xrelease sub WORD PTR [rcx],ax 1372 .byte 0xf0; .byte 0xf2; sub WORD PTR [rcx],ax 1373 .byte 0xf0; .byte 0xf3; sub WORD PTR [rcx],ax 1374 xacquire lock xchg WORD PTR [rcx],ax 1375 lock xacquire xchg WORD PTR [rcx],ax 1376 xacquire xchg WORD PTR [rcx],ax 1377 xrelease lock xchg WORD PTR [rcx],ax 1378 lock xrelease xchg WORD PTR [rcx],ax 1379 xrelease xchg WORD PTR [rcx],ax 1380 .byte 0xf0; .byte 0xf2; xchg WORD PTR [rcx],ax 1381 .byte 0xf0; .byte 0xf3; xchg WORD PTR [rcx],ax 1382 xacquire lock xor WORD PTR [rcx],ax 1383 lock xacquire xor WORD PTR [rcx],ax 1384 xrelease lock xor WORD PTR [rcx],ax 1385 lock xrelease xor WORD PTR [rcx],ax 1386 .byte 0xf0; .byte 0xf2; xor WORD PTR [rcx],ax 1387 .byte 0xf0; .byte 0xf3; xor WORD PTR [rcx],ax 1388 1389# Tests for op regl regl/m32 1390# Tests for op regl/m32 regl 1391 xacquire lock adc DWORD PTR [rcx],eax 1392 lock xacquire adc DWORD PTR [rcx],eax 1393 xrelease lock adc DWORD PTR [rcx],eax 1394 lock xrelease adc DWORD PTR [rcx],eax 1395 .byte 0xf0; .byte 0xf2; adc DWORD PTR [rcx],eax 1396 .byte 0xf0; .byte 0xf3; adc DWORD PTR [rcx],eax 1397 xacquire lock add DWORD PTR [rcx],eax 1398 lock xacquire add DWORD PTR [rcx],eax 1399 xrelease lock add DWORD PTR [rcx],eax 1400 lock xrelease add DWORD PTR [rcx],eax 1401 .byte 0xf0; .byte 0xf2; add DWORD PTR [rcx],eax 1402 .byte 0xf0; .byte 0xf3; add DWORD PTR [rcx],eax 1403 xacquire lock and DWORD PTR [rcx],eax 1404 lock xacquire and DWORD PTR [rcx],eax 1405 xrelease lock and DWORD PTR [rcx],eax 1406 lock xrelease and DWORD PTR [rcx],eax 1407 .byte 0xf0; .byte 0xf2; and DWORD PTR [rcx],eax 1408 .byte 0xf0; .byte 0xf3; and DWORD PTR [rcx],eax 1409 xrelease mov DWORD PTR [rcx],eax 1410 xacquire lock or DWORD PTR [rcx],eax 1411 lock xacquire or DWORD PTR [rcx],eax 1412 xrelease lock or DWORD PTR [rcx],eax 1413 lock xrelease or DWORD PTR [rcx],eax 1414 .byte 0xf0; .byte 0xf2; or DWORD PTR [rcx],eax 1415 .byte 0xf0; .byte 0xf3; or DWORD PTR [rcx],eax 1416 xacquire lock sbb DWORD PTR [rcx],eax 1417 lock xacquire sbb DWORD PTR [rcx],eax 1418 xrelease lock sbb DWORD PTR [rcx],eax 1419 lock xrelease sbb DWORD PTR [rcx],eax 1420 .byte 0xf0; .byte 0xf2; sbb DWORD PTR [rcx],eax 1421 .byte 0xf0; .byte 0xf3; sbb DWORD PTR [rcx],eax 1422 xacquire lock sub DWORD PTR [rcx],eax 1423 lock xacquire sub DWORD PTR [rcx],eax 1424 xrelease lock sub DWORD PTR [rcx],eax 1425 lock xrelease sub DWORD PTR [rcx],eax 1426 .byte 0xf0; .byte 0xf2; sub DWORD PTR [rcx],eax 1427 .byte 0xf0; .byte 0xf3; sub DWORD PTR [rcx],eax 1428 xacquire lock xchg DWORD PTR [rcx],eax 1429 lock xacquire xchg DWORD PTR [rcx],eax 1430 xacquire xchg DWORD PTR [rcx],eax 1431 xrelease lock xchg DWORD PTR [rcx],eax 1432 lock xrelease xchg DWORD PTR [rcx],eax 1433 xrelease xchg DWORD PTR [rcx],eax 1434 .byte 0xf0; .byte 0xf2; xchg DWORD PTR [rcx],eax 1435 .byte 0xf0; .byte 0xf3; xchg DWORD PTR [rcx],eax 1436 xacquire lock xor DWORD PTR [rcx],eax 1437 lock xacquire xor DWORD PTR [rcx],eax 1438 xrelease lock xor DWORD PTR [rcx],eax 1439 lock xrelease xor DWORD PTR [rcx],eax 1440 .byte 0xf0; .byte 0xf2; xor DWORD PTR [rcx],eax 1441 .byte 0xf0; .byte 0xf3; xor DWORD PTR [rcx],eax 1442 1443# Tests for op regq regq/m64 1444# Tests for op regq/m64 regq 1445 xacquire lock adc QWORD PTR [rcx],rax 1446 lock xacquire adc QWORD PTR [rcx],rax 1447 xrelease lock adc QWORD PTR [rcx],rax 1448 lock xrelease adc QWORD PTR [rcx],rax 1449 .byte 0xf0; .byte 0xf2; adc QWORD PTR [rcx],rax 1450 .byte 0xf0; .byte 0xf3; adc QWORD PTR [rcx],rax 1451 xacquire lock add QWORD PTR [rcx],rax 1452 lock xacquire add QWORD PTR [rcx],rax 1453 xrelease lock add QWORD PTR [rcx],rax 1454 lock xrelease add QWORD PTR [rcx],rax 1455 .byte 0xf0; .byte 0xf2; add QWORD PTR [rcx],rax 1456 .byte 0xf0; .byte 0xf3; add QWORD PTR [rcx],rax 1457 xacquire lock and QWORD PTR [rcx],rax 1458 lock xacquire and QWORD PTR [rcx],rax 1459 xrelease lock and QWORD PTR [rcx],rax 1460 lock xrelease and QWORD PTR [rcx],rax 1461 .byte 0xf0; .byte 0xf2; and QWORD PTR [rcx],rax 1462 .byte 0xf0; .byte 0xf3; and QWORD PTR [rcx],rax 1463 xrelease mov QWORD PTR [rcx],rax 1464 xacquire lock or QWORD PTR [rcx],rax 1465 lock xacquire or QWORD PTR [rcx],rax 1466 xrelease lock or QWORD PTR [rcx],rax 1467 lock xrelease or QWORD PTR [rcx],rax 1468 .byte 0xf0; .byte 0xf2; or QWORD PTR [rcx],rax 1469 .byte 0xf0; .byte 0xf3; or QWORD PTR [rcx],rax 1470 xacquire lock sbb QWORD PTR [rcx],rax 1471 lock xacquire sbb QWORD PTR [rcx],rax 1472 xrelease lock sbb QWORD PTR [rcx],rax 1473 lock xrelease sbb QWORD PTR [rcx],rax 1474 .byte 0xf0; .byte 0xf2; sbb QWORD PTR [rcx],rax 1475 .byte 0xf0; .byte 0xf3; sbb QWORD PTR [rcx],rax 1476 xacquire lock sub QWORD PTR [rcx],rax 1477 lock xacquire sub QWORD PTR [rcx],rax 1478 xrelease lock sub QWORD PTR [rcx],rax 1479 lock xrelease sub QWORD PTR [rcx],rax 1480 .byte 0xf0; .byte 0xf2; sub QWORD PTR [rcx],rax 1481 .byte 0xf0; .byte 0xf3; sub QWORD PTR [rcx],rax 1482 xacquire lock xchg QWORD PTR [rcx],rax 1483 lock xacquire xchg QWORD PTR [rcx],rax 1484 xacquire xchg QWORD PTR [rcx],rax 1485 xrelease lock xchg QWORD PTR [rcx],rax 1486 lock xrelease xchg QWORD PTR [rcx],rax 1487 xrelease xchg QWORD PTR [rcx],rax 1488 .byte 0xf0; .byte 0xf2; xchg QWORD PTR [rcx],rax 1489 .byte 0xf0; .byte 0xf3; xchg QWORD PTR [rcx],rax 1490 xacquire lock xor QWORD PTR [rcx],rax 1491 lock xacquire xor QWORD PTR [rcx],rax 1492 xrelease lock xor QWORD PTR [rcx],rax 1493 lock xrelease xor QWORD PTR [rcx],rax 1494 .byte 0xf0; .byte 0xf2; xor QWORD PTR [rcx],rax 1495 .byte 0xf0; .byte 0xf3; xor QWORD PTR [rcx],rax 1496 1497# Tests for op regs, regs/m16 1498 xacquire lock btc WORD PTR [rcx],ax 1499 lock xacquire btc WORD PTR [rcx],ax 1500 xrelease lock btc WORD PTR [rcx],ax 1501 lock xrelease btc WORD PTR [rcx],ax 1502 .byte 0xf0; .byte 0xf2; btc WORD PTR [rcx],ax 1503 .byte 0xf0; .byte 0xf3; btc WORD PTR [rcx],ax 1504 xacquire lock btr WORD PTR [rcx],ax 1505 lock xacquire btr WORD PTR [rcx],ax 1506 xrelease lock btr WORD PTR [rcx],ax 1507 lock xrelease btr WORD PTR [rcx],ax 1508 .byte 0xf0; .byte 0xf2; btr WORD PTR [rcx],ax 1509 .byte 0xf0; .byte 0xf3; btr WORD PTR [rcx],ax 1510 xacquire lock bts WORD PTR [rcx],ax 1511 lock xacquire bts WORD PTR [rcx],ax 1512 xrelease lock bts WORD PTR [rcx],ax 1513 lock xrelease bts WORD PTR [rcx],ax 1514 .byte 0xf0; .byte 0xf2; bts WORD PTR [rcx],ax 1515 .byte 0xf0; .byte 0xf3; bts WORD PTR [rcx],ax 1516 xacquire lock cmpxchg WORD PTR [rcx],ax 1517 lock xacquire cmpxchg WORD PTR [rcx],ax 1518 xrelease lock cmpxchg WORD PTR [rcx],ax 1519 lock xrelease cmpxchg WORD PTR [rcx],ax 1520 .byte 0xf0; .byte 0xf2; cmpxchg WORD PTR [rcx],ax 1521 .byte 0xf0; .byte 0xf3; cmpxchg WORD PTR [rcx],ax 1522 xacquire lock xadd WORD PTR [rcx],ax 1523 lock xacquire xadd WORD PTR [rcx],ax 1524 xrelease lock xadd WORD PTR [rcx],ax 1525 lock xrelease xadd WORD PTR [rcx],ax 1526 .byte 0xf0; .byte 0xf2; xadd WORD PTR [rcx],ax 1527 .byte 0xf0; .byte 0xf3; xadd WORD PTR [rcx],ax 1528 1529# Tests for op regl regl/m32 1530 xacquire lock btc DWORD PTR [rcx],eax 1531 lock xacquire btc DWORD PTR [rcx],eax 1532 xrelease lock btc DWORD PTR [rcx],eax 1533 lock xrelease btc DWORD PTR [rcx],eax 1534 .byte 0xf0; .byte 0xf2; btc DWORD PTR [rcx],eax 1535 .byte 0xf0; .byte 0xf3; btc DWORD PTR [rcx],eax 1536 xacquire lock btr DWORD PTR [rcx],eax 1537 lock xacquire btr DWORD PTR [rcx],eax 1538 xrelease lock btr DWORD PTR [rcx],eax 1539 lock xrelease btr DWORD PTR [rcx],eax 1540 .byte 0xf0; .byte 0xf2; btr DWORD PTR [rcx],eax 1541 .byte 0xf0; .byte 0xf3; btr DWORD PTR [rcx],eax 1542 xacquire lock bts DWORD PTR [rcx],eax 1543 lock xacquire bts DWORD PTR [rcx],eax 1544 xrelease lock bts DWORD PTR [rcx],eax 1545 lock xrelease bts DWORD PTR [rcx],eax 1546 .byte 0xf0; .byte 0xf2; bts DWORD PTR [rcx],eax 1547 .byte 0xf0; .byte 0xf3; bts DWORD PTR [rcx],eax 1548 xacquire lock cmpxchg DWORD PTR [rcx],eax 1549 lock xacquire cmpxchg DWORD PTR [rcx],eax 1550 xrelease lock cmpxchg DWORD PTR [rcx],eax 1551 lock xrelease cmpxchg DWORD PTR [rcx],eax 1552 .byte 0xf0; .byte 0xf2; cmpxchg DWORD PTR [rcx],eax 1553 .byte 0xf0; .byte 0xf3; cmpxchg DWORD PTR [rcx],eax 1554 xacquire lock xadd DWORD PTR [rcx],eax 1555 lock xacquire xadd DWORD PTR [rcx],eax 1556 xrelease lock xadd DWORD PTR [rcx],eax 1557 lock xrelease xadd DWORD PTR [rcx],eax 1558 .byte 0xf0; .byte 0xf2; xadd DWORD PTR [rcx],eax 1559 .byte 0xf0; .byte 0xf3; xadd DWORD PTR [rcx],eax 1560 1561# Tests for op regq regq/m64 1562 xacquire lock btc QWORD PTR [rcx],rax 1563 lock xacquire btc QWORD PTR [rcx],rax 1564 xrelease lock btc QWORD PTR [rcx],rax 1565 lock xrelease btc QWORD PTR [rcx],rax 1566 .byte 0xf0; .byte 0xf2; btc QWORD PTR [rcx],rax 1567 .byte 0xf0; .byte 0xf3; btc QWORD PTR [rcx],rax 1568 xacquire lock btr QWORD PTR [rcx],rax 1569 lock xacquire btr QWORD PTR [rcx],rax 1570 xrelease lock btr QWORD PTR [rcx],rax 1571 lock xrelease btr QWORD PTR [rcx],rax 1572 .byte 0xf0; .byte 0xf2; btr QWORD PTR [rcx],rax 1573 .byte 0xf0; .byte 0xf3; btr QWORD PTR [rcx],rax 1574 xacquire lock bts QWORD PTR [rcx],rax 1575 lock xacquire bts QWORD PTR [rcx],rax 1576 xrelease lock bts QWORD PTR [rcx],rax 1577 lock xrelease bts QWORD PTR [rcx],rax 1578 .byte 0xf0; .byte 0xf2; bts QWORD PTR [rcx],rax 1579 .byte 0xf0; .byte 0xf3; bts QWORD PTR [rcx],rax 1580 xacquire lock cmpxchg QWORD PTR [rcx],rax 1581 lock xacquire cmpxchg QWORD PTR [rcx],rax 1582 xrelease lock cmpxchg QWORD PTR [rcx],rax 1583 lock xrelease cmpxchg QWORD PTR [rcx],rax 1584 .byte 0xf0; .byte 0xf2; cmpxchg QWORD PTR [rcx],rax 1585 .byte 0xf0; .byte 0xf3; cmpxchg QWORD PTR [rcx],rax 1586 xacquire lock xadd QWORD PTR [rcx],rax 1587 lock xacquire xadd QWORD PTR [rcx],rax 1588 xrelease lock xadd QWORD PTR [rcx],rax 1589 lock xrelease xadd QWORD PTR [rcx],rax 1590 .byte 0xf0; .byte 0xf2; xadd QWORD PTR [rcx],rax 1591 .byte 0xf0; .byte 0xf3; xadd QWORD PTR [rcx],rax 1592 1593# Tests for op regb/m8 1594 xacquire lock dec BYTE PTR [rcx] 1595 lock xacquire dec BYTE PTR [rcx] 1596 xrelease lock dec BYTE PTR [rcx] 1597 lock xrelease dec BYTE PTR [rcx] 1598 .byte 0xf0; .byte 0xf2; dec BYTE PTR [rcx] 1599 .byte 0xf0; .byte 0xf3; dec BYTE PTR [rcx] 1600 xacquire lock inc BYTE PTR [rcx] 1601 lock xacquire inc BYTE PTR [rcx] 1602 xrelease lock inc BYTE PTR [rcx] 1603 lock xrelease inc BYTE PTR [rcx] 1604 .byte 0xf0; .byte 0xf2; inc BYTE PTR [rcx] 1605 .byte 0xf0; .byte 0xf3; inc BYTE PTR [rcx] 1606 xacquire lock neg BYTE PTR [rcx] 1607 lock xacquire neg BYTE PTR [rcx] 1608 xrelease lock neg BYTE PTR [rcx] 1609 lock xrelease neg BYTE PTR [rcx] 1610 .byte 0xf0; .byte 0xf2; neg BYTE PTR [rcx] 1611 .byte 0xf0; .byte 0xf3; neg BYTE PTR [rcx] 1612 xacquire lock not BYTE PTR [rcx] 1613 lock xacquire not BYTE PTR [rcx] 1614 xrelease lock not BYTE PTR [rcx] 1615 lock xrelease not BYTE PTR [rcx] 1616 .byte 0xf0; .byte 0xf2; not BYTE PTR [rcx] 1617 .byte 0xf0; .byte 0xf3; not BYTE PTR [rcx] 1618 1619# Tests for op regs/m16 1620 xacquire lock dec WORD PTR [rcx] 1621 lock xacquire dec WORD PTR [rcx] 1622 xrelease lock dec WORD PTR [rcx] 1623 lock xrelease dec WORD PTR [rcx] 1624 .byte 0xf0; .byte 0xf2; dec WORD PTR [rcx] 1625 .byte 0xf0; .byte 0xf3; dec WORD PTR [rcx] 1626 xacquire lock inc WORD PTR [rcx] 1627 lock xacquire inc WORD PTR [rcx] 1628 xrelease lock inc WORD PTR [rcx] 1629 lock xrelease inc WORD PTR [rcx] 1630 .byte 0xf0; .byte 0xf2; inc WORD PTR [rcx] 1631 .byte 0xf0; .byte 0xf3; inc WORD PTR [rcx] 1632 xacquire lock neg WORD PTR [rcx] 1633 lock xacquire neg WORD PTR [rcx] 1634 xrelease lock neg WORD PTR [rcx] 1635 lock xrelease neg WORD PTR [rcx] 1636 .byte 0xf0; .byte 0xf2; neg WORD PTR [rcx] 1637 .byte 0xf0; .byte 0xf3; neg WORD PTR [rcx] 1638 xacquire lock not WORD PTR [rcx] 1639 lock xacquire not WORD PTR [rcx] 1640 xrelease lock not WORD PTR [rcx] 1641 lock xrelease not WORD PTR [rcx] 1642 .byte 0xf0; .byte 0xf2; not WORD PTR [rcx] 1643 .byte 0xf0; .byte 0xf3; not WORD PTR [rcx] 1644 1645# Tests for op regl/m32 1646 xacquire lock dec DWORD PTR [rcx] 1647 lock xacquire dec DWORD PTR [rcx] 1648 xrelease lock dec DWORD PTR [rcx] 1649 lock xrelease dec DWORD PTR [rcx] 1650 .byte 0xf0; .byte 0xf2; dec DWORD PTR [rcx] 1651 .byte 0xf0; .byte 0xf3; dec DWORD PTR [rcx] 1652 xacquire lock inc DWORD PTR [rcx] 1653 lock xacquire inc DWORD PTR [rcx] 1654 xrelease lock inc DWORD PTR [rcx] 1655 lock xrelease inc DWORD PTR [rcx] 1656 .byte 0xf0; .byte 0xf2; inc DWORD PTR [rcx] 1657 .byte 0xf0; .byte 0xf3; inc DWORD PTR [rcx] 1658 xacquire lock neg DWORD PTR [rcx] 1659 lock xacquire neg DWORD PTR [rcx] 1660 xrelease lock neg DWORD PTR [rcx] 1661 lock xrelease neg DWORD PTR [rcx] 1662 .byte 0xf0; .byte 0xf2; neg DWORD PTR [rcx] 1663 .byte 0xf0; .byte 0xf3; neg DWORD PTR [rcx] 1664 xacquire lock not DWORD PTR [rcx] 1665 lock xacquire not DWORD PTR [rcx] 1666 xrelease lock not DWORD PTR [rcx] 1667 lock xrelease not DWORD PTR [rcx] 1668 .byte 0xf0; .byte 0xf2; not DWORD PTR [rcx] 1669 .byte 0xf0; .byte 0xf3; not DWORD PTR [rcx] 1670 1671# Tests for op regq/m64 1672 xacquire lock dec QWORD PTR [rcx] 1673 lock xacquire dec QWORD PTR [rcx] 1674 xrelease lock dec QWORD PTR [rcx] 1675 lock xrelease dec QWORD PTR [rcx] 1676 .byte 0xf0; .byte 0xf2; dec QWORD PTR [rcx] 1677 .byte 0xf0; .byte 0xf3; dec QWORD PTR [rcx] 1678 xacquire lock inc QWORD PTR [rcx] 1679 lock xacquire inc QWORD PTR [rcx] 1680 xrelease lock inc QWORD PTR [rcx] 1681 lock xrelease inc QWORD PTR [rcx] 1682 .byte 0xf0; .byte 0xf2; inc QWORD PTR [rcx] 1683 .byte 0xf0; .byte 0xf3; inc QWORD PTR [rcx] 1684 xacquire lock neg QWORD PTR [rcx] 1685 lock xacquire neg QWORD PTR [rcx] 1686 xrelease lock neg QWORD PTR [rcx] 1687 lock xrelease neg QWORD PTR [rcx] 1688 .byte 0xf0; .byte 0xf2; neg QWORD PTR [rcx] 1689 .byte 0xf0; .byte 0xf3; neg QWORD PTR [rcx] 1690 xacquire lock not QWORD PTR [rcx] 1691 lock xacquire not QWORD PTR [rcx] 1692 xrelease lock not QWORD PTR [rcx] 1693 lock xrelease not QWORD PTR [rcx] 1694 .byte 0xf0; .byte 0xf2; not QWORD PTR [rcx] 1695 .byte 0xf0; .byte 0xf3; not QWORD PTR [rcx] 1696 1697# Tests for op m64 1698 xacquire lock cmpxchg8b QWORD PTR [rcx] 1699 lock xacquire cmpxchg8b QWORD PTR [rcx] 1700 xrelease lock cmpxchg8b QWORD PTR [rcx] 1701 lock xrelease cmpxchg8b QWORD PTR [rcx] 1702 .byte 0xf0; .byte 0xf2; cmpxchg8b QWORD PTR [rcx] 1703 .byte 0xf0; .byte 0xf3; cmpxchg8b QWORD PTR [rcx] 1704 1705# Tests for op regb, regb/m8 1706 xacquire lock cmpxchg BYTE PTR [rcx],cl 1707 lock xacquire cmpxchg BYTE PTR [rcx],cl 1708 xrelease lock cmpxchg BYTE PTR [rcx],cl 1709 lock xrelease cmpxchg BYTE PTR [rcx],cl 1710 .byte 0xf0; .byte 0xf2; cmpxchg BYTE PTR [rcx],cl 1711 .byte 0xf0; .byte 0xf3; cmpxchg BYTE PTR [rcx],cl 1712 xacquire lock xadd BYTE PTR [rcx],cl 1713 lock xacquire xadd BYTE PTR [rcx],cl 1714 xrelease lock xadd BYTE PTR [rcx],cl 1715 lock xrelease xadd BYTE PTR [rcx],cl 1716 .byte 0xf0; .byte 0xf2; xadd BYTE PTR [rcx],cl 1717 .byte 0xf0; .byte 0xf3; xadd BYTE PTR [rcx],cl 1718