OLD | NEW |
1 //===- subzero/unittest/AssemblerX8664/LowLevel.cpp -----------------------===// | 1 //===- subzero/unittest/AssemblerX8664/LowLevel.cpp -----------------------===// |
2 // | 2 // |
3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 #include "AssemblerX8664/TestUtil.h" | 9 #include "AssemblerX8664/TestUtil.h" |
10 | 10 |
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
305 TestRegReg(cmp, r10, r11, i16, 4, 0x66, 0x45, 0x3B, 0xD3); | 305 TestRegReg(cmp, r10, r11, i16, 4, 0x66, 0x45, 0x3B, 0xD3); |
306 TestRegReg(cmp, r11, r12, i16, 4, 0x66, 0x45, 0x3B, 0xDC); | 306 TestRegReg(cmp, r11, r12, i16, 4, 0x66, 0x45, 0x3B, 0xDC); |
307 TestRegReg(cmp, r12, r13, i16, 4, 0x66, 0x45, 0x3B, 0xE5); | 307 TestRegReg(cmp, r12, r13, i16, 4, 0x66, 0x45, 0x3B, 0xE5); |
308 TestRegReg(cmp, r13, r14, i16, 4, 0x66, 0x45, 0x3B, 0xEE); | 308 TestRegReg(cmp, r13, r14, i16, 4, 0x66, 0x45, 0x3B, 0xEE); |
309 TestRegReg(cmp, r14, r15, i16, 4, 0x66, 0x45, 0x3B, 0xF7); | 309 TestRegReg(cmp, r14, r15, i16, 4, 0x66, 0x45, 0x3B, 0xF7); |
310 TestRegReg(cmp, r15, eax, i16, 4, 0x66, 0x44, 0x3B, 0xF8); | 310 TestRegReg(cmp, r15, eax, i16, 4, 0x66, 0x44, 0x3B, 0xF8); |
311 | 311 |
312 TestRegReg(cmp, eax, ecx, i8, 2, 0x3A, 0xC1); | 312 TestRegReg(cmp, eax, ecx, i8, 2, 0x3A, 0xC1); |
313 TestRegReg(cmp, ecx, edx, i8, 2, 0x3A, 0xCA); | 313 TestRegReg(cmp, ecx, edx, i8, 2, 0x3A, 0xCA); |
314 TestRegReg(cmp, edx, ebx, i8, 2, 0x3A, 0xD3); | 314 TestRegReg(cmp, edx, ebx, i8, 2, 0x3A, 0xD3); |
315 TestRegReg(cmp, ebx, esp, i8, 3, 0x40, 0x3A, 0xDC); | 315 TestRegReg(cmp, ebx, esp, i8, 2, 0x3A, 0xDC); // emit: cmp bl, ah |
316 TestRegReg(cmp, esp, ebp, i8, 3, 0x40, 0x3A, 0xE5); | 316 TestRegReg(cmp, esp, ebp, i8, 3, 0x40, 0x3A, 0xE5); |
317 TestRegReg(cmp, ebp, esi, i8, 3, 0x40, 0x3A, 0xEE); | 317 TestRegReg(cmp, ebp, esi, i8, 3, 0x40, 0x3A, 0xEE); |
318 TestRegReg(cmp, esi, edi, i8, 3, 0x40, 0x3A, 0xF7); | 318 TestRegReg(cmp, esi, edi, i8, 3, 0x40, 0x3A, 0xF7); |
319 TestRegReg(cmp, edi, r8, i8, 3, 0x41, 0x3A, 0xF8); | 319 TestRegReg(cmp, edi, r8, i8, 3, 0x41, 0x3A, 0xF8); |
320 TestRegReg(cmp, r8, r9, i8, 3, 0x45, 0x3A, 0xC1); | 320 TestRegReg(cmp, r8, r9, i8, 3, 0x45, 0x3A, 0xC1); |
321 TestRegReg(cmp, r9, r10, i8, 3, 0x45, 0x3A, 0xCA); | 321 TestRegReg(cmp, r9, r10, i8, 3, 0x45, 0x3A, 0xCA); |
322 TestRegReg(cmp, r10, r11, i8, 3, 0x45, 0x3A, 0xD3); | 322 TestRegReg(cmp, r10, r11, i8, 3, 0x45, 0x3A, 0xD3); |
323 TestRegReg(cmp, r11, r12, i8, 3, 0x45, 0x3A, 0xDC); | 323 TestRegReg(cmp, r11, r12, i8, 3, 0x45, 0x3A, 0xDC); |
324 TestRegReg(cmp, r12, r13, i8, 3, 0x45, 0x3A, 0xE5); | 324 TestRegReg(cmp, r12, r13, i8, 3, 0x45, 0x3A, 0xE5); |
325 TestRegReg(cmp, r13, r14, i8, 3, 0x45, 0x3A, 0xEE); | 325 TestRegReg(cmp, r13, r14, i8, 3, 0x45, 0x3A, 0xEE); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 TestRegImm(cmp, r11, 5, i16, 5, 0x66, 0x41, 0x83, 0xFB, 0x05); | 358 TestRegImm(cmp, r11, 5, i16, 5, 0x66, 0x41, 0x83, 0xFB, 0x05); |
359 TestRegImm(cmp, r12, 5, i16, 5, 0x66, 0x41, 0x83, 0xFC, 0x05); | 359 TestRegImm(cmp, r12, 5, i16, 5, 0x66, 0x41, 0x83, 0xFC, 0x05); |
360 TestRegImm(cmp, r13, 5, i16, 5, 0x66, 0x41, 0x83, 0xFD, 0x05); | 360 TestRegImm(cmp, r13, 5, i16, 5, 0x66, 0x41, 0x83, 0xFD, 0x05); |
361 TestRegImm(cmp, r14, 5, i16, 5, 0x66, 0x41, 0x83, 0xFE, 0x05); | 361 TestRegImm(cmp, r14, 5, i16, 5, 0x66, 0x41, 0x83, 0xFE, 0x05); |
362 TestRegImm(cmp, r15, 5, i16, 5, 0x66, 0x41, 0x83, 0xFF, 0x05); | 362 TestRegImm(cmp, r15, 5, i16, 5, 0x66, 0x41, 0x83, 0xFF, 0x05); |
363 | 363 |
364 TestRegImm(cmp, eax, 5, i8, 2, 0x3C, 0x05); | 364 TestRegImm(cmp, eax, 5, i8, 2, 0x3C, 0x05); |
365 TestRegImm(cmp, ecx, 5, i8, 3, 0x80, 0xF9, 0x05); | 365 TestRegImm(cmp, ecx, 5, i8, 3, 0x80, 0xF9, 0x05); |
366 TestRegImm(cmp, edx, 5, i8, 3, 0x80, 0xFA, 0x05); | 366 TestRegImm(cmp, edx, 5, i8, 3, 0x80, 0xFA, 0x05); |
367 TestRegImm(cmp, ebx, 5, i8, 3, 0x80, 0xFB, 0x05); | 367 TestRegImm(cmp, ebx, 5, i8, 3, 0x80, 0xFB, 0x05); |
368 TestRegImm(cmp, esp, 5, i8, 4, 0x40, 0x80, 0xFC, 0x05); | 368 TestRegImm(cmp, esp, 5, i8, 3, 0x80, 0xFC, 0x05); // emit: cmp ah, 5 |
369 TestRegImm(cmp, ebp, 5, i8, 4, 0x40, 0x80, 0xFD, 0x05); | 369 TestRegImm(cmp, ebp, 5, i8, 4, 0x40, 0x80, 0xFD, 0x05); |
370 TestRegImm(cmp, esi, 5, i8, 4, 0x40, 0x80, 0xFE, 0x05); | 370 TestRegImm(cmp, esi, 5, i8, 4, 0x40, 0x80, 0xFE, 0x05); |
371 TestRegImm(cmp, edi, 5, i8, 4, 0x40, 0x80, 0xFF, 0x05); | 371 TestRegImm(cmp, edi, 5, i8, 4, 0x40, 0x80, 0xFF, 0x05); |
372 TestRegImm(cmp, r8, 5, i8, 4, 0x41, 0x80, 0xF8, 0x05); | 372 TestRegImm(cmp, r8, 5, i8, 4, 0x41, 0x80, 0xF8, 0x05); |
373 TestRegImm(cmp, r9, 5, i8, 4, 0x41, 0x80, 0xF9, 0x05); | 373 TestRegImm(cmp, r9, 5, i8, 4, 0x41, 0x80, 0xF9, 0x05); |
374 TestRegImm(cmp, r10, 5, i8, 4, 0x41, 0x80, 0xFA, 0x05); | 374 TestRegImm(cmp, r10, 5, i8, 4, 0x41, 0x80, 0xFA, 0x05); |
375 TestRegImm(cmp, r11, 5, i8, 4, 0x41, 0x80, 0xFB, 0x05); | 375 TestRegImm(cmp, r11, 5, i8, 4, 0x41, 0x80, 0xFB, 0x05); |
376 TestRegImm(cmp, r12, 5, i8, 4, 0x41, 0x80, 0xFC, 0x05); | 376 TestRegImm(cmp, r12, 5, i8, 4, 0x41, 0x80, 0xFC, 0x05); |
377 TestRegImm(cmp, r13, 5, i8, 4, 0x41, 0x80, 0xFD, 0x05); | 377 TestRegImm(cmp, r13, 5, i8, 4, 0x41, 0x80, 0xFD, 0x05); |
378 TestRegImm(cmp, r14, 5, i8, 4, 0x41, 0x80, 0xFE, 0x05); | 378 TestRegImm(cmp, r14, 5, i8, 4, 0x41, 0x80, 0xFE, 0x05); |
(...skipping 28 matching lines...) Expand all Loading... |
407 TestRegImm(cmp, r8, 0x100, i16, 6, 0x66, 0x41, 0x81, 0xF8, 0x00, 0x01); | 407 TestRegImm(cmp, r8, 0x100, i16, 6, 0x66, 0x41, 0x81, 0xF8, 0x00, 0x01); |
408 TestRegImm(cmp, r9, 0x100, i16, 6, 0x66, 0x41, 0x81, 0xF9, 0x00, 0x01); | 408 TestRegImm(cmp, r9, 0x100, i16, 6, 0x66, 0x41, 0x81, 0xF9, 0x00, 0x01); |
409 TestRegImm(cmp, r10, 0x100, i16, 6, 0x66, 0x41, 0x81, 0xFA, 0x00, 0x01); | 409 TestRegImm(cmp, r10, 0x100, i16, 6, 0x66, 0x41, 0x81, 0xFA, 0x00, 0x01); |
410 TestRegImm(cmp, r11, 0x100, i16, 6, 0x66, 0x41, 0x81, 0xFB, 0x00, 0x01); | 410 TestRegImm(cmp, r11, 0x100, i16, 6, 0x66, 0x41, 0x81, 0xFB, 0x00, 0x01); |
411 TestRegImm(cmp, r12, 0x100, i16, 6, 0x66, 0x41, 0x81, 0xFC, 0x00, 0x01); | 411 TestRegImm(cmp, r12, 0x100, i16, 6, 0x66, 0x41, 0x81, 0xFC, 0x00, 0x01); |
412 TestRegImm(cmp, r13, 0x100, i16, 6, 0x66, 0x41, 0x81, 0xFD, 0x00, 0x01); | 412 TestRegImm(cmp, r13, 0x100, i16, 6, 0x66, 0x41, 0x81, 0xFD, 0x00, 0x01); |
413 TestRegImm(cmp, r14, 0x100, i16, 6, 0x66, 0x41, 0x81, 0xFE, 0x00, 0x01); | 413 TestRegImm(cmp, r14, 0x100, i16, 6, 0x66, 0x41, 0x81, 0xFE, 0x00, 0x01); |
414 TestRegImm(cmp, r15, 0x100, i16, 6, 0x66, 0x41, 0x81, 0xFF, 0x00, 0x01); | 414 TestRegImm(cmp, r15, 0x100, i16, 6, 0x66, 0x41, 0x81, 0xFF, 0x00, 0x01); |
415 | 415 |
416 /* cmp GPR, Absolute */ | 416 /* cmp GPR, Absolute */ |
417 TestRegAbsoluteAddr(cmp, eax, 0xF00FBEEF, i32, 6, 0x3B, 0x05, 0xEF, 0xBE, | 417 TestRegAbsoluteAddr(cmp, eax, 0xF00FBEEF, i32, 8, 0x67, 0x3B, 0x04, 0x25, |
418 0x0F, 0xF0); | 418 0xEF, 0xBE, 0x0F, 0xF0); |
419 TestRegAbsoluteAddr(cmp, eax, 0xF00FBEEF, i16, 7, 0x66, 0x3B, 0x05, 0xEF, | 419 TestRegAbsoluteAddr(cmp, eax, 0xF00FBEEF, i16, 9, 0x66, 0x67, 0x3B, 0x04, |
| 420 0x25, 0xEF, 0xBE, 0x0F, 0xF0); |
| 421 TestRegAbsoluteAddr(cmp, eax, 0xF00FBEEF, i8, 8, 0x67, 0x3A, 0x04, 0x25, 0xEF, |
420 0xBE, 0x0F, 0xF0); | 422 0xBE, 0x0F, 0xF0); |
421 TestRegAbsoluteAddr(cmp, eax, 0xF00FBEEF, i8, 6, 0x3A, 0x05, 0xEF, 0xBE, 0x0F, | 423 TestRegAbsoluteAddr(cmp, r8, 0xF00FBEEF, i32, 9, 0x67, 0x44, 0x3B, 0x04, 0x25, |
422 0xF0); | 424 0xEF, 0xBE, 0x0F, 0xF0); |
423 TestRegAbsoluteAddr(cmp, r8, 0xF00FBEEF, i32, 7, 0x44, 0x3B, 0x05, 0xEF, 0xBE, | 425 TestRegAbsoluteAddr(cmp, r8, 0xF00FBEEF, i16, 10, 0x66, 0x67, 0x44, 0x3B, |
424 0x0F, 0xF0); | 426 0x04, 0x25, 0xEF, 0xBE, 0x0F, 0xF0); |
425 TestRegAbsoluteAddr(cmp, r8, 0xF00FBEEF, i16, 8, 0x66, 0x44, 0x3B, 0x05, 0xEF, | 427 TestRegAbsoluteAddr(cmp, r8, 0xF00FBEEF, i8, 9, 0x67, 0x44, 0x3A, 0x04, 0x25, |
426 0xBE, 0x0F, 0xF0); | 428 0xEF, 0xBE, 0x0F, 0xF0); |
427 TestRegAbsoluteAddr(cmp, r8, 0xF00FBEEF, i8, 7, 0x44, 0x3A, 0x05, 0xEF, 0xBE, | |
428 0x0F, 0xF0); | |
429 | 429 |
430 /* cmp GPR, 0(Base) */ | 430 /* cmp GPR, 0(Base) */ |
431 TestRegAddrBase(cmp, eax, ecx, 0, i32, 2, 0x3B, 0x01); | 431 TestRegAddrBase(cmp, eax, ecx, 0, i32, 3, 0x67, 0x3B, 0x01); |
432 TestRegAddrBase(cmp, ecx, edx, 0, i32, 2, 0x3B, 0x0A); | 432 TestRegAddrBase(cmp, ecx, edx, 0, i32, 3, 0x67, 0x3B, 0x0A); |
433 TestRegAddrBase(cmp, edx, ebx, 0, i32, 2, 0x3B, 0x13); | 433 TestRegAddrBase(cmp, edx, ebx, 0, i32, 3, 0x67, 0x3B, 0x13); |
434 TestRegAddrBase(cmp, ebx, esp, 0, i32, 3, 0x3B, 0x1C, 0x24); | 434 TestRegAddrBase(cmp, ebx, esp, 0, i32, 4, 0x67, 0x3B, 0x1C, 0x24); |
435 TestRegAddrBase(cmp, esp, ebp, 0, i32, 3, 0x3B, 0x65, 0x00); | 435 TestRegAddrBase(cmp, esp, ebp, 0, i32, 4, 0x67, 0x3B, 0x65, 0x00); |
436 TestRegAddrBase(cmp, ebp, esi, 0, i32, 2, 0x3B, 0x2E); | 436 TestRegAddrBase(cmp, ebp, esi, 0, i32, 3, 0x67, 0x3B, 0x2E); |
437 TestRegAddrBase(cmp, esi, edi, 0, i32, 2, 0x3B, 0x37); | 437 TestRegAddrBase(cmp, esi, edi, 0, i32, 3, 0x67, 0x3B, 0x37); |
438 TestRegAddrBase(cmp, edi, r8, 0, i32, 3, 0x41, 0x3B, 0x38); | 438 TestRegAddrBase(cmp, edi, r8, 0, i32, 4, 0x67, 0x41, 0x3B, 0x38); |
439 TestRegAddrBase(cmp, r8, r9, 0, i32, 3, 0x45, 0x3B, 0x01); | 439 TestRegAddrBase(cmp, r8, r9, 0, i32, 4, 0x67, 0x45, 0x3B, 0x01); |
440 TestRegAddrBase(cmp, r9, r10, 0, i32, 3, 0x45, 0x3B, 0x0A); | 440 TestRegAddrBase(cmp, r9, r10, 0, i32, 4, 0x67, 0x45, 0x3B, 0x0A); |
441 TestRegAddrBase(cmp, r10, r11, 0, i32, 3, 0x45, 0x3B, 0x13); | 441 TestRegAddrBase(cmp, r10, r11, 0, i32, 4, 0x67, 0x45, 0x3B, 0x13); |
442 TestRegAddrBase(cmp, r11, r12, 0, i32, 4, 0x45, 0x3B, 0x1C, 0x24); | 442 TestRegAddrBase(cmp, r11, r12, 0, i32, 5, 0x67, 0x45, 0x3B, 0x1C, 0x24); |
443 TestRegAddrBase(cmp, r12, r13, 0, i32, 4, 0x45, 0x3B, 0x65, 0x00); | 443 TestRegAddrBase(cmp, r12, r13, 0, i32, 5, 0x67, 0x45, 0x3B, 0x65, 0x00); |
444 TestRegAddrBase(cmp, r13, r14, 0, i32, 3, 0x45, 0x3B, 0x2E); | 444 TestRegAddrBase(cmp, r13, r14, 0, i32, 4, 0x67, 0x45, 0x3B, 0x2E); |
445 TestRegAddrBase(cmp, r14, r15, 0, i32, 3, 0x45, 0x3B, 0x37); | 445 TestRegAddrBase(cmp, r14, r15, 0, i32, 4, 0x67, 0x45, 0x3B, 0x37); |
446 TestRegAddrBase(cmp, r15, eax, 0, i32, 3, 0x44, 0x3B, 0x38); | 446 TestRegAddrBase(cmp, r15, eax, 0, i32, 4, 0x67, 0x44, 0x3B, 0x38); |
447 | 447 |
448 TestRegAddrBase(cmp, eax, ecx, 0, i16, 3, 0x66, 0x3B, 0x01); | 448 TestRegAddrBase(cmp, eax, ecx, 0, i16, 4, 0x66, 0x67, 0x3B, 0x01); |
449 TestRegAddrBase(cmp, ecx, edx, 0, i16, 3, 0x66, 0x3B, 0x0A); | 449 TestRegAddrBase(cmp, ecx, edx, 0, i16, 4, 0x66, 0x67, 0x3B, 0x0A); |
450 TestRegAddrBase(cmp, edx, ebx, 0, i16, 3, 0x66, 0x3B, 0x13); | 450 TestRegAddrBase(cmp, edx, ebx, 0, i16, 4, 0x66, 0x67, 0x3B, 0x13); |
451 TestRegAddrBase(cmp, ebx, esp, 0, i16, 4, 0x66, 0x3B, 0x1C, 0x24); | 451 TestRegAddrBase(cmp, ebx, esp, 0, i16, 5, 0x66, 0x67, 0x3B, 0x1C, 0x24); |
452 TestRegAddrBase(cmp, esp, ebp, 0, i16, 4, 0x66, 0x3B, 0x65, 0x00); | 452 TestRegAddrBase(cmp, esp, ebp, 0, i16, 5, 0x66, 0x67, 0x3B, 0x65, 0x00); |
453 TestRegAddrBase(cmp, ebp, esi, 0, i16, 3, 0x66, 0x3B, 0x2E); | 453 TestRegAddrBase(cmp, ebp, esi, 0, i16, 4, 0x66, 0x67, 0x3B, 0x2E); |
454 TestRegAddrBase(cmp, esi, edi, 0, i16, 3, 0x66, 0x3B, 0x37); | 454 TestRegAddrBase(cmp, esi, edi, 0, i16, 4, 0x66, 0x67, 0x3B, 0x37); |
455 TestRegAddrBase(cmp, edi, r8, 0, i16, 4, 0x66, 0x41, 0x3B, 0x38); | 455 TestRegAddrBase(cmp, edi, r8, 0, i16, 5, 0x66, 0x67, 0x41, 0x3B, 0x38); |
456 TestRegAddrBase(cmp, r8, r9, 0, i16, 4, 0x66, 0x45, 0x3B, 0x01); | 456 TestRegAddrBase(cmp, r8, r9, 0, i16, 5, 0x66, 0x67, 0x45, 0x3B, 0x01); |
457 TestRegAddrBase(cmp, r9, r10, 0, i16, 4, 0x66, 0x45, 0x3B, 0x0A); | 457 TestRegAddrBase(cmp, r9, r10, 0, i16, 5, 0x66, 0x67, 0x45, 0x3B, 0x0A); |
458 TestRegAddrBase(cmp, r10, r11, 0, i16, 4, 0x66, 0x45, 0x3B, 0x13); | 458 TestRegAddrBase(cmp, r10, r11, 0, i16, 5, 0x66, 0x67, 0x45, 0x3B, 0x13); |
459 TestRegAddrBase(cmp, r11, r12, 0, i16, 5, 0x66, 0x45, 0x3B, 0x1C, 0x24); | 459 TestRegAddrBase(cmp, r11, r12, 0, i16, 6, 0x66, 0x67, 0x45, 0x3B, 0x1C, 0x24); |
460 TestRegAddrBase(cmp, r12, r13, 0, i16, 5, 0x66, 0x45, 0x3B, 0x65, 0x00); | 460 TestRegAddrBase(cmp, r12, r13, 0, i16, 6, 0x66, 0x67, 0x45, 0x3B, 0x65, 0x00); |
461 TestRegAddrBase(cmp, r13, r14, 0, i16, 4, 0x66, 0x45, 0x3B, 0x2E); | 461 TestRegAddrBase(cmp, r13, r14, 0, i16, 5, 0x66, 0x67, 0x45, 0x3B, 0x2E); |
462 TestRegAddrBase(cmp, r14, r15, 0, i16, 4, 0x66, 0x45, 0x3B, 0x37); | 462 TestRegAddrBase(cmp, r14, r15, 0, i16, 5, 0x66, 0x67, 0x45, 0x3B, 0x37); |
463 TestRegAddrBase(cmp, r15, eax, 0, i16, 4, 0x66, 0x44, 0x3B, 0x38); | 463 TestRegAddrBase(cmp, r15, eax, 0, i16, 5, 0x66, 0x67, 0x44, 0x3B, 0x38); |
464 | 464 |
465 TestRegAddrBase(cmp, eax, ecx, 0, i8, 2, 0x3A, 0x01); | 465 TestRegAddrBase(cmp, eax, ecx, 0, i8, 3, 0x67, 0x3A, 0x01); |
466 TestRegAddrBase(cmp, ecx, edx, 0, i8, 2, 0x3A, 0x0A); | 466 TestRegAddrBase(cmp, ecx, edx, 0, i8, 3, 0x67, 0x3A, 0x0A); |
467 TestRegAddrBase(cmp, edx, ebx, 0, i8, 2, 0x3A, 0x13); | 467 TestRegAddrBase(cmp, edx, ebx, 0, i8, 3, 0x67, 0x3A, 0x13); |
468 TestRegAddrBase(cmp, ebx, esp, 0, i8, 3, 0x3A, 0x1C, 0x24); | 468 TestRegAddrBase(cmp, ebx, esp, 0, i8, 4, 0x67, 0x3A, 0x1C, 0x24); |
469 TestRegAddrBase(cmp, esp, ebp, 0, i8, 4, 0x40, 0x3A, 0x65, 0x00); | 469 TestRegAddrBase(cmp, esp, ebp, 0, i8, 4, 0x67, 0x3A, 0x65, 0x00); |
470 TestRegAddrBase(cmp, ebp, esi, 0, i8, 3, 0x40, 0x3A, 0x2E); | 470 TestRegAddrBase(cmp, ebp, esi, 0, i8, 4, 0x67, 0x40, 0x3A, 0x2E); |
471 TestRegAddrBase(cmp, esi, edi, 0, i8, 3, 0x40, 0x3A, 0x37); | 471 TestRegAddrBase(cmp, esi, edi, 0, i8, 4, 0x67, 0x40, 0x3A, 0x37); |
472 TestRegAddrBase(cmp, edi, r8, 0, i8, 3, 0x41, 0x3A, 0x38); | 472 TestRegAddrBase(cmp, edi, r8, 0, i8, 4, 0x67, 0x41, 0x3A, 0x38); |
473 TestRegAddrBase(cmp, r8, r9, 0, i8, 3, 0x45, 0x3A, 0x01); | 473 TestRegAddrBase(cmp, r8, r9, 0, i8, 4, 0x67, 0x45, 0x3A, 0x01); |
474 TestRegAddrBase(cmp, r9, r10, 0, i8, 3, 0x45, 0x3A, 0x0A); | 474 TestRegAddrBase(cmp, r9, r10, 0, i8, 4, 0x67, 0x45, 0x3A, 0x0A); |
475 TestRegAddrBase(cmp, r10, r11, 0, i8, 3, 0x45, 0x3A, 0x13); | 475 TestRegAddrBase(cmp, r10, r11, 0, i8, 4, 0x67, 0x45, 0x3A, 0x13); |
476 TestRegAddrBase(cmp, r11, r12, 0, i8, 4, 0x45, 0x3A, 0x1C, 0x24); | 476 TestRegAddrBase(cmp, r11, r12, 0, i8, 5, 0x67, 0x45, 0x3A, 0x1C, 0x24); |
477 TestRegAddrBase(cmp, r12, r13, 0, i8, 4, 0x45, 0x3A, 0x65, 0x00); | 477 TestRegAddrBase(cmp, r12, r13, 0, i8, 5, 0x67, 0x45, 0x3A, 0x65, 0x00); |
478 TestRegAddrBase(cmp, r13, r14, 0, i8, 3, 0x45, 0x3A, 0x2E); | 478 TestRegAddrBase(cmp, r13, r14, 0, i8, 4, 0x67, 0x45, 0x3A, 0x2E); |
479 TestRegAddrBase(cmp, r14, r15, 0, i8, 3, 0x45, 0x3A, 0x37); | 479 TestRegAddrBase(cmp, r14, r15, 0, i8, 4, 0x67, 0x45, 0x3A, 0x37); |
480 TestRegAddrBase(cmp, r15, eax, 0, i8, 3, 0x44, 0x3A, 0x38); | 480 TestRegAddrBase(cmp, r15, eax, 0, i8, 4, 0x67, 0x44, 0x3A, 0x38); |
481 | 481 |
482 /* cmp GPR, Imm8(Base) */ | 482 /* cmp GPR, Imm8(Base) */ |
483 TestRegAddrBase(cmp, eax, ecx, 0x40, i32, 3, 0x3B, 0x41, 0x40); | 483 TestRegAddrBase(cmp, eax, ecx, 0x40, i32, 4, 0x67, 0x3B, 0x41, 0x40); |
484 TestRegAddrBase(cmp, ecx, edx, 0x40, i32, 3, 0x3B, 0x4A, 0x40); | 484 TestRegAddrBase(cmp, ecx, edx, 0x40, i32, 4, 0x67, 0x3B, 0x4A, 0x40); |
485 TestRegAddrBase(cmp, edx, ebx, 0x40, i32, 3, 0x3B, 0x53, 0x40); | 485 TestRegAddrBase(cmp, edx, ebx, 0x40, i32, 4, 0x67, 0x3B, 0x53, 0x40); |
486 TestRegAddrBase(cmp, ebx, esp, 0x40, i32, 4, 0x3B, 0x5C, 0x24, 0x40); | 486 TestRegAddrBase(cmp, ebx, esp, 0x40, i32, 5, 0x67, 0x3B, 0x5C, 0x24, 0x40); |
487 TestRegAddrBase(cmp, esp, ebp, 0x40, i32, 3, 0x3B, 0x65, 0x40); | 487 TestRegAddrBase(cmp, esp, ebp, 0x40, i32, 4, 0x67, 0x3B, 0x65, 0x40); |
488 TestRegAddrBase(cmp, ebp, esi, 0x40, i32, 3, 0x3B, 0x6E, 0x40); | 488 TestRegAddrBase(cmp, ebp, esi, 0x40, i32, 4, 0x67, 0x3B, 0x6E, 0x40); |
489 TestRegAddrBase(cmp, esi, edi, 0x40, i32, 3, 0x3B, 0x77, 0x40); | 489 TestRegAddrBase(cmp, esi, edi, 0x40, i32, 4, 0x67, 0x3B, 0x77, 0x40); |
490 TestRegAddrBase(cmp, edi, r8, 0x40, i32, 4, 0x41, 0x3B, 0x78, 0x40); | 490 TestRegAddrBase(cmp, edi, r8, 0x40, i32, 5, 0x67, 0x41, 0x3B, 0x78, 0x40); |
491 TestRegAddrBase(cmp, r8, r9, 0x40, i32, 4, 0x45, 0x3B, 0x41, 0x40); | 491 TestRegAddrBase(cmp, r8, r9, 0x40, i32, 5, 0x67, 0x45, 0x3B, 0x41, 0x40); |
492 TestRegAddrBase(cmp, r9, r10, 0x40, i32, 4, 0x45, 0x3B, 0x4A, 0x40); | 492 TestRegAddrBase(cmp, r9, r10, 0x40, i32, 5, 0x67, 0x45, 0x3B, 0x4A, 0x40); |
493 TestRegAddrBase(cmp, r10, r11, 0x40, i32, 4, 0x45, 0x3B, 0x53, 0x40); | 493 TestRegAddrBase(cmp, r10, r11, 0x40, i32, 5, 0x67, 0x45, 0x3B, 0x53, 0x40); |
494 TestRegAddrBase(cmp, r11, r12, 0x40, i32, 5, 0x45, 0x3B, 0x5C, 0x24, 0x40); | 494 TestRegAddrBase(cmp, r11, r12, 0x40, i32, 6, 0x67, 0x45, 0x3B, 0x5C, 0x24, |
495 TestRegAddrBase(cmp, r12, r13, 0x40, i32, 4, 0x45, 0x3B, 0x65, 0x40); | 495 0x40); |
496 TestRegAddrBase(cmp, r13, r14, 0x40, i32, 4, 0x45, 0x3B, 0x6E, 0x40); | 496 TestRegAddrBase(cmp, r12, r13, 0x40, i32, 5, 0x67, 0x45, 0x3B, 0x65, 0x40); |
497 TestRegAddrBase(cmp, r14, r15, 0x40, i32, 4, 0x45, 0x3B, 0x77, 0x40); | 497 TestRegAddrBase(cmp, r13, r14, 0x40, i32, 5, 0x67, 0x45, 0x3B, 0x6E, 0x40); |
498 TestRegAddrBase(cmp, r15, eax, 0x40, i32, 4, 0x44, 0x3B, 0x78, 0x40); | 498 TestRegAddrBase(cmp, r14, r15, 0x40, i32, 5, 0x67, 0x45, 0x3B, 0x77, 0x40); |
499 | 499 TestRegAddrBase(cmp, r15, eax, 0x40, i32, 5, 0x67, 0x44, 0x3B, 0x78, 0x40); |
500 TestRegAddrBase(cmp, eax, ecx, 0x40, i16, 4, 0x66, 0x3B, 0x41, 0x40); | 500 |
501 TestRegAddrBase(cmp, ecx, edx, 0x40, i16, 4, 0x66, 0x3B, 0x4A, 0x40); | 501 TestRegAddrBase(cmp, eax, ecx, 0x40, i16, 5, 0x66, 0x67, 0x3B, 0x41, 0x40); |
502 TestRegAddrBase(cmp, edx, ebx, 0x40, i16, 4, 0x66, 0x3B, 0x53, 0x40); | 502 TestRegAddrBase(cmp, ecx, edx, 0x40, i16, 5, 0x66, 0x67, 0x3B, 0x4A, 0x40); |
503 TestRegAddrBase(cmp, ebx, esp, 0x40, i16, 5, 0x66, 0x3B, 0x5C, 0x24, 0x40); | 503 TestRegAddrBase(cmp, edx, ebx, 0x40, i16, 5, 0x66, 0x67, 0x3B, 0x53, 0x40); |
504 TestRegAddrBase(cmp, esp, ebp, 0x40, i16, 4, 0x66, 0x3B, 0x65, 0x40); | 504 TestRegAddrBase(cmp, ebx, esp, 0x40, i16, 6, 0x66, 0x67, 0x3B, 0x5C, 0x24, |
505 TestRegAddrBase(cmp, ebp, esi, 0x40, i16, 4, 0x66, 0x3B, 0x6E, 0x40); | 505 0x40); |
506 TestRegAddrBase(cmp, esi, edi, 0x40, i16, 4, 0x66, 0x3B, 0x77, 0x40); | 506 TestRegAddrBase(cmp, esp, ebp, 0x40, i16, 5, 0x66, 0x67, 0x3B, 0x65, 0x40); |
507 TestRegAddrBase(cmp, edi, r8, 0x40, i16, 5, 0x66, 0x41, 0x3B, 0x78, 0x40); | 507 TestRegAddrBase(cmp, ebp, esi, 0x40, i16, 5, 0x66, 0x67, 0x3B, 0x6E, 0x40); |
508 TestRegAddrBase(cmp, r8, r9, 0x40, i16, 5, 0x66, 0x45, 0x3B, 0x41, 0x40); | 508 TestRegAddrBase(cmp, esi, edi, 0x40, i16, 5, 0x66, 0x67, 0x3B, 0x77, 0x40); |
509 TestRegAddrBase(cmp, r9, r10, 0x40, i16, 5, 0x66, 0x45, 0x3B, 0x4A, 0x40); | 509 TestRegAddrBase(cmp, edi, r8, 0x40, i16, 6, 0x66, 0x67, 0x41, 0x3B, 0x78, |
510 TestRegAddrBase(cmp, r10, r11, 0x40, i16, 5, 0x66, 0x45, 0x3B, 0x53, 0x40); | 510 0x40); |
511 TestRegAddrBase(cmp, r11, r12, 0x40, i16, 6, 0x66, 0x45, 0x3B, 0x5C, 0x24, | 511 TestRegAddrBase(cmp, r8, r9, 0x40, i16, 6, 0x66, 0x67, 0x45, 0x3B, 0x41, |
512 0x40); | 512 0x40); |
513 TestRegAddrBase(cmp, r12, r13, 0x40, i16, 5, 0x66, 0x45, 0x3B, 0x65, 0x40); | 513 TestRegAddrBase(cmp, r9, r10, 0x40, i16, 6, 0x66, 0x67, 0x45, 0x3B, 0x4A, |
514 TestRegAddrBase(cmp, r13, r14, 0x40, i16, 5, 0x66, 0x45, 0x3B, 0x6E, 0x40); | 514 0x40); |
515 TestRegAddrBase(cmp, r14, r15, 0x40, i16, 5, 0x66, 0x45, 0x3B, 0x77, 0x40); | 515 TestRegAddrBase(cmp, r10, r11, 0x40, i16, 6, 0x66, 0x67, 0x45, 0x3B, 0x53, |
516 TestRegAddrBase(cmp, r15, eax, 0x40, i16, 5, 0x66, 0x44, 0x3B, 0x78, 0x40); | 516 0x40); |
517 | 517 TestRegAddrBase(cmp, r11, r12, 0x40, i16, 7, 0x66, 0x67, 0x45, 0x3B, 0x5C, |
518 TestRegAddrBase(cmp, eax, ecx, 0x40, i8, 3, 0x3A, 0x41, 0x40); | 518 0x24, 0x40); |
519 TestRegAddrBase(cmp, ecx, edx, 0x40, i8, 3, 0x3A, 0x4A, 0x40); | 519 TestRegAddrBase(cmp, r12, r13, 0x40, i16, 6, 0x66, 0x67, 0x45, 0x3B, 0x65, |
520 TestRegAddrBase(cmp, edx, ebx, 0x40, i8, 3, 0x3A, 0x53, 0x40); | 520 0x40); |
521 TestRegAddrBase(cmp, ebx, esp, 0x40, i8, 4, 0x3A, 0x5C, 0x24, 0x40); | 521 TestRegAddrBase(cmp, r13, r14, 0x40, i16, 6, 0x66, 0x67, 0x45, 0x3B, 0x6E, |
522 TestRegAddrBase(cmp, esp, ebp, 0x40, i8, 4, 0x40, 0x3A, 0x65, 0x40); | 522 0x40); |
523 TestRegAddrBase(cmp, ebp, esi, 0x40, i8, 4, 0x40, 0x3A, 0x6E, 0x40); | 523 TestRegAddrBase(cmp, r14, r15, 0x40, i16, 6, 0x66, 0x67, 0x45, 0x3B, 0x77, |
524 TestRegAddrBase(cmp, esi, edi, 0x40, i8, 4, 0x40, 0x3A, 0x77, 0x40); | 524 0x40); |
525 TestRegAddrBase(cmp, edi, r8, 0x40, i8, 4, 0x41, 0x3A, 0x78, 0x40); | 525 TestRegAddrBase(cmp, r15, eax, 0x40, i16, 6, 0x66, 0x67, 0x44, 0x3B, 0x78, |
526 TestRegAddrBase(cmp, r8, r9, 0x40, i8, 4, 0x45, 0x3A, 0x41, 0x40); | 526 0x40); |
527 TestRegAddrBase(cmp, r9, r10, 0x40, i8, 4, 0x45, 0x3A, 0x4A, 0x40); | 527 |
528 TestRegAddrBase(cmp, r10, r11, 0x40, i8, 4, 0x45, 0x3A, 0x53, 0x40); | 528 TestRegAddrBase(cmp, eax, ecx, 0x40, i8, 4, 0x67, 0x3A, 0x41, 0x40); |
529 TestRegAddrBase(cmp, r11, r12, 0x40, i8, 5, 0x45, 0x3A, 0x5C, 0x24, 0x40); | 529 TestRegAddrBase(cmp, ecx, edx, 0x40, i8, 4, 0x67, 0x3A, 0x4A, 0x40); |
530 TestRegAddrBase(cmp, r12, r13, 0x40, i8, 4, 0x45, 0x3A, 0x65, 0x40); | 530 TestRegAddrBase(cmp, edx, ebx, 0x40, i8, 4, 0x67, 0x3A, 0x53, 0x40); |
531 TestRegAddrBase(cmp, r13, r14, 0x40, i8, 4, 0x45, 0x3A, 0x6E, 0x40); | 531 TestRegAddrBase(cmp, ebx, esp, 0x40, i8, 5, 0x67, 0x3A, 0x5C, 0x24, 0x40); |
532 TestRegAddrBase(cmp, r14, r15, 0x40, i8, 4, 0x45, 0x3A, 0x77, 0x40); | 532 TestRegAddrBase(cmp, esp, ebp, 0x40, i8, 4, 0x67, 0x3A, 0x65, 0x40); |
533 TestRegAddrBase(cmp, r15, eax, 0x40, i8, 4, 0x44, 0x3A, 0x78, 0x40); | 533 TestRegAddrBase(cmp, ebp, esi, 0x40, i8, 5, 0x67, 0x40, 0x3A, 0x6E, 0x40); |
| 534 TestRegAddrBase(cmp, esi, edi, 0x40, i8, 5, 0x67, 0x40, 0x3A, 0x77, 0x40); |
| 535 TestRegAddrBase(cmp, edi, r8, 0x40, i8, 5, 0x67, 0x41, 0x3A, 0x78, 0x40); |
| 536 TestRegAddrBase(cmp, r8, r9, 0x40, i8, 5, 0x67, 0x45, 0x3A, 0x41, 0x40); |
| 537 TestRegAddrBase(cmp, r9, r10, 0x40, i8, 5, 0x67, 0x45, 0x3A, 0x4A, 0x40); |
| 538 TestRegAddrBase(cmp, r10, r11, 0x40, i8, 5, 0x67, 0x45, 0x3A, 0x53, 0x40); |
| 539 TestRegAddrBase(cmp, r11, r12, 0x40, i8, 6, 0x67, 0x45, 0x3A, 0x5C, 0x24, |
| 540 0x40); |
| 541 TestRegAddrBase(cmp, r12, r13, 0x40, i8, 5, 0x67, 0x45, 0x3A, 0x65, 0x40); |
| 542 TestRegAddrBase(cmp, r13, r14, 0x40, i8, 5, 0x67, 0x45, 0x3A, 0x6E, 0x40); |
| 543 TestRegAddrBase(cmp, r14, r15, 0x40, i8, 5, 0x67, 0x45, 0x3A, 0x77, 0x40); |
| 544 TestRegAddrBase(cmp, r15, eax, 0x40, i8, 5, 0x67, 0x44, 0x3A, 0x78, 0x40); |
534 | 545 |
535 /* cmp GPR, Imm32(Base) */ | 546 /* cmp GPR, Imm32(Base) */ |
536 TestRegAddrBase(cmp, eax, ecx, 0xF0, i32, 6, 0x3B, 0x81, 0xF0, 0x00, 0x00, | 547 TestRegAddrBase(cmp, eax, ecx, 0xF0, i32, 7, 0x67, 0x3B, 0x81, 0xF0, 0x00, |
537 0x00); | 548 0x00, 0x00); |
538 TestRegAddrBase(cmp, ecx, edx, 0xF0, i32, 6, 0x3B, 0x8A, 0xF0, 0x00, 0x00, | 549 TestRegAddrBase(cmp, ecx, edx, 0xF0, i32, 7, 0x67, 0x3B, 0x8A, 0xF0, 0x00, |
539 0x00); | 550 0x00, 0x00); |
540 TestRegAddrBase(cmp, edx, ebx, 0xF0, i32, 6, 0x3B, 0x93, 0xF0, 0x00, 0x00, | 551 TestRegAddrBase(cmp, edx, ebx, 0xF0, i32, 7, 0x67, 0x3B, 0x93, 0xF0, 0x00, |
541 0x00); | 552 0x00, 0x00); |
542 TestRegAddrBase(cmp, ebx, esp, 0xF0, i32, 7, 0x3B, 0x9C, 0x24, 0xF0, 0x00, | 553 TestRegAddrBase(cmp, ebx, esp, 0xF0, i32, 8, 0x67, 0x3B, 0x9C, 0x24, 0xF0, |
543 0x00, 0x00); | 554 0x00, 0x00, 0x00); |
544 TestRegAddrBase(cmp, esp, ebp, 0xF0, i32, 6, 0x3B, 0xA5, 0xF0, 0x00, 0x00, | 555 TestRegAddrBase(cmp, esp, ebp, 0xF0, i32, 7, 0x67, 0x3B, 0xA5, 0xF0, 0x00, |
545 0x00); | 556 0x00, 0x00); |
546 TestRegAddrBase(cmp, ebp, esi, 0xF0, i32, 6, 0x3B, 0xAE, 0xF0, 0x00, 0x00, | 557 TestRegAddrBase(cmp, ebp, esi, 0xF0, i32, 7, 0x67, 0x3B, 0xAE, 0xF0, 0x00, |
547 0x00); | 558 0x00, 0x00); |
548 TestRegAddrBase(cmp, esi, edi, 0xF0, i32, 6, 0x3B, 0xB7, 0xF0, 0x00, 0x00, | 559 TestRegAddrBase(cmp, esi, edi, 0xF0, i32, 7, 0x67, 0x3B, 0xB7, 0xF0, 0x00, |
549 0x00); | 560 0x00, 0x00); |
550 TestRegAddrBase(cmp, edi, r8, 0xF0, i32, 7, 0x41, 0x3B, 0xB8, 0xF0, 0x00, | 561 TestRegAddrBase(cmp, edi, r8, 0xF0, i32, 8, 0x67, 0x41, 0x3B, 0xB8, 0xF0, |
551 0x00, 0x00); | 562 0x00, 0x00, 0x00); |
552 TestRegAddrBase(cmp, r8, r9, 0xF0, i32, 7, 0x45, 0x3B, 0x81, 0xF0, 0x00, 0x00, | 563 TestRegAddrBase(cmp, r8, r9, 0xF0, i32, 8, 0x67, 0x45, 0x3B, 0x81, 0xF0, 0x00, |
553 0x00); | 564 0x00, 0x00); |
554 TestRegAddrBase(cmp, r9, r10, 0xF0, i32, 7, 0x45, 0x3B, 0x8A, 0xF0, 0x00, | 565 TestRegAddrBase(cmp, r9, r10, 0xF0, i32, 8, 0x67, 0x45, 0x3B, 0x8A, 0xF0, |
555 0x00, 0x00); | 566 0x00, 0x00, 0x00); |
556 TestRegAddrBase(cmp, r10, r11, 0xF0, i32, 7, 0x45, 0x3B, 0x93, 0xF0, 0x00, | 567 TestRegAddrBase(cmp, r10, r11, 0xF0, i32, 8, 0x67, 0x45, 0x3B, 0x93, 0xF0, |
557 0x00, 0x00); | 568 0x00, 0x00, 0x00); |
558 TestRegAddrBase(cmp, r11, r12, 0xF0, i32, 8, 0x45, 0x3B, 0x9C, 0x24, 0xF0, | 569 TestRegAddrBase(cmp, r11, r12, 0xF0, i32, 9, 0x67, 0x45, 0x3B, 0x9C, 0x24, |
559 0x00, 0x00, 0x00); | 570 0xF0, 0x00, 0x00, 0x00); |
560 TestRegAddrBase(cmp, r12, r13, 0xF0, i32, 7, 0x45, 0x3B, 0xA5, 0xF0, 0x00, | 571 TestRegAddrBase(cmp, r12, r13, 0xF0, i32, 8, 0x67, 0x45, 0x3B, 0xA5, 0xF0, |
561 0x00, 0x00); | 572 0x00, 0x00, 0x00); |
562 TestRegAddrBase(cmp, r13, r14, 0xF0, i32, 7, 0x45, 0x3B, 0xAE, 0xF0, 0x00, | 573 TestRegAddrBase(cmp, r13, r14, 0xF0, i32, 8, 0x67, 0x45, 0x3B, 0xAE, 0xF0, |
563 0x00, 0x00); | 574 0x00, 0x00, 0x00); |
564 TestRegAddrBase(cmp, r14, r15, 0xF0, i32, 7, 0x45, 0x3B, 0xB7, 0xF0, 0x00, | 575 TestRegAddrBase(cmp, r14, r15, 0xF0, i32, 8, 0x67, 0x45, 0x3B, 0xB7, 0xF0, |
565 0x00, 0x00); | 576 0x00, 0x00, 0x00); |
566 TestRegAddrBase(cmp, r15, eax, 0xF0, i32, 7, 0x44, 0x3B, 0xB8, 0xF0, 0x00, | 577 TestRegAddrBase(cmp, r15, eax, 0xF0, i32, 8, 0x67, 0x44, 0x3B, 0xB8, 0xF0, |
567 0x00, 0x00); | 578 0x00, 0x00, 0x00); |
568 | 579 |
569 TestRegAddrBase(cmp, eax, ecx, 0xF0, i16, 7, 0x66, 0x3B, 0x81, 0xF0, 0x00, | 580 TestRegAddrBase(cmp, eax, ecx, 0xF0, i16, 8, 0x66, 0x67, 0x3B, 0x81, 0xF0, |
570 0x00, 0x00); | 581 0x00, 0x00, 0x00); |
571 TestRegAddrBase(cmp, ecx, edx, 0xF0, i16, 7, 0x66, 0x3B, 0x8A, 0xF0, 0x00, | 582 TestRegAddrBase(cmp, ecx, edx, 0xF0, i16, 8, 0x66, 0x67, 0x3B, 0x8A, 0xF0, |
572 0x00, 0x00); | 583 0x00, 0x00, 0x00); |
573 TestRegAddrBase(cmp, edx, ebx, 0xF0, i16, 7, 0x66, 0x3B, 0x93, 0xF0, 0x00, | 584 TestRegAddrBase(cmp, edx, ebx, 0xF0, i16, 8, 0x66, 0x67, 0x3B, 0x93, 0xF0, |
574 0x00, 0x00); | 585 0x00, 0x00, 0x00); |
575 TestRegAddrBase(cmp, ebx, esp, 0xF0, i16, 8, 0x66, 0x3B, 0x9C, 0x24, 0xF0, | 586 TestRegAddrBase(cmp, ebx, esp, 0xF0, i16, 9, 0x66, 0x67, 0x3B, 0x9C, 0x24, |
576 0x00, 0x00, 0x00); | 587 0xF0, 0x00, 0x00, 0x00); |
577 TestRegAddrBase(cmp, esp, ebp, 0xF0, i16, 7, 0x66, 0x3B, 0xa5, 0xF0, 0x00, | 588 TestRegAddrBase(cmp, esp, ebp, 0xF0, i16, 8, 0x66, 0x67, 0x3B, 0xa5, 0xF0, |
578 0x00, 0x00); | 589 0x00, 0x00, 0x00); |
579 TestRegAddrBase(cmp, ebp, esi, 0xF0, i16, 7, 0x66, 0x3B, 0xaE, 0xF0, 0x00, | 590 TestRegAddrBase(cmp, ebp, esi, 0xF0, i16, 8, 0x66, 0x67, 0x3B, 0xaE, 0xF0, |
580 0x00, 0x00); | 591 0x00, 0x00, 0x00); |
581 TestRegAddrBase(cmp, esi, edi, 0xF0, i16, 7, 0x66, 0x3B, 0xb7, 0xF0, 0x00, | 592 TestRegAddrBase(cmp, esi, edi, 0xF0, i16, 8, 0x66, 0x67, 0x3B, 0xb7, 0xF0, |
582 0x00, 0x00); | 593 0x00, 0x00, 0x00); |
583 TestRegAddrBase(cmp, edi, r8, 0xF0, i16, 8, 0x66, 0x41, 0x3B, 0xb8, 0xF0, | 594 TestRegAddrBase(cmp, edi, r8, 0xF0, i16, 9, 0x66, 0x67, 0x41, 0x3B, 0xb8, |
584 0x00, 0x00, 0x00); | 595 0xF0, 0x00, 0x00, 0x00); |
585 TestRegAddrBase(cmp, r8, r9, 0xF0, i16, 8, 0x66, 0x45, 0x3B, 0x81, 0xF0, 0x00, | 596 TestRegAddrBase(cmp, r8, r9, 0xF0, i16, 9, 0x66, 0x67, 0x45, 0x3B, 0x81, 0xF0, |
586 0x00, 0x00); | 597 0x00, 0x00, 0x00); |
587 TestRegAddrBase(cmp, r9, r10, 0xF0, i16, 8, 0x66, 0x45, 0x3B, 0x8A, 0xF0, | 598 TestRegAddrBase(cmp, r9, r10, 0xF0, i16, 9, 0x66, 0x67, 0x45, 0x3B, 0x8A, |
588 0x00, 0x00, 0x00); | 599 0xF0, 0x00, 0x00, 0x00); |
589 TestRegAddrBase(cmp, r10, r11, 0xF0, i16, 8, 0x66, 0x45, 0x3B, 0x93, 0xF0, | 600 TestRegAddrBase(cmp, r10, r11, 0xF0, i16, 9, 0x66, 0x67, 0x45, 0x3B, 0x93, |
590 0x00, 0x00, 0x00); | 601 0xF0, 0x00, 0x00, 0x00); |
591 TestRegAddrBase(cmp, r11, r12, 0xF0, i16, 9, 0x66, 0x45, 0x3B, 0x9C, 0x24, | 602 TestRegAddrBase(cmp, r11, r12, 0xF0, i16, 10, 0x66, 0x67, 0x45, 0x3B, 0x9C, |
592 0xF0, 0x00, 0x00, 0x00); | 603 0x24, 0xF0, 0x00, 0x00, 0x00); |
593 TestRegAddrBase(cmp, r12, r13, 0xF0, i16, 8, 0x66, 0x45, 0x3B, 0xa5, 0xF0, | 604 TestRegAddrBase(cmp, r12, r13, 0xF0, i16, 9, 0x66, 0x67, 0x45, 0x3B, 0xa5, |
594 0x00, 0x00, 0x00); | 605 0xF0, 0x00, 0x00, 0x00); |
595 TestRegAddrBase(cmp, r13, r14, 0xF0, i16, 8, 0x66, 0x45, 0x3B, 0xaE, 0xF0, | 606 TestRegAddrBase(cmp, r13, r14, 0xF0, i16, 9, 0x66, 0x67, 0x45, 0x3B, 0xaE, |
596 0x00, 0x00, 0x00); | 607 0xF0, 0x00, 0x00, 0x00); |
597 TestRegAddrBase(cmp, r14, r15, 0xF0, i16, 8, 0x66, 0x45, 0x3B, 0xb7, 0xF0, | 608 TestRegAddrBase(cmp, r14, r15, 0xF0, i16, 9, 0x66, 0x67, 0x45, 0x3B, 0xb7, |
598 0x00, 0x00, 0x00); | 609 0xF0, 0x00, 0x00, 0x00); |
599 TestRegAddrBase(cmp, r15, eax, 0xF0, i16, 8, 0x66, 0x44, 0x3B, 0xb8, 0xF0, | 610 TestRegAddrBase(cmp, r15, eax, 0xF0, i16, 9, 0x66, 0x67, 0x44, 0x3B, 0xb8, |
600 0x00, 0x00, 0x00); | 611 0xF0, 0x00, 0x00, 0x00); |
601 | 612 |
602 TestRegAddrBase(cmp, eax, ecx, 0xF0, i8, 6, 0x3A, 0x81, 0xF0, 0x00, 0x00, | 613 TestRegAddrBase(cmp, eax, ecx, 0xF0, i8, 7, 0x67, 0x3A, 0x81, 0xF0, 0x00, |
603 0x00); | 614 0x00, 0x00); |
604 TestRegAddrBase(cmp, ecx, edx, 0xF0, i8, 6, 0x3A, 0x8A, 0xF0, 0x00, 0x00, | 615 TestRegAddrBase(cmp, ecx, edx, 0xF0, i8, 7, 0x67, 0x3A, 0x8A, 0xF0, 0x00, |
605 0x00); | 616 0x00, 0x00); |
606 TestRegAddrBase(cmp, edx, ebx, 0xF0, i8, 6, 0x3A, 0x93, 0xF0, 0x00, 0x00, | 617 TestRegAddrBase(cmp, edx, ebx, 0xF0, i8, 7, 0x67, 0x3A, 0x93, 0xF0, 0x00, |
607 0x00); | 618 0x00, 0x00); |
608 TestRegAddrBase(cmp, ebx, esp, 0xF0, i8, 7, 0x3A, 0x9C, 0x24, 0xF0, 0x00, | 619 TestRegAddrBase(cmp, ebx, esp, 0xF0, i8, 8, 0x67, 0x3A, 0x9C, 0x24, 0xF0, |
609 0x00, 0x00); | 620 0x00, 0x00, 0x00); |
610 TestRegAddrBase(cmp, esp, ebp, 0xF0, i8, 7, 0x40, 0x3A, 0xA5, 0xF0, 0x00, | 621 TestRegAddrBase(cmp, esp, ebp, 0xF0, i8, 7, 0x67, 0x3A, 0xA5, 0xF0, 0x00, |
611 0x00, 0x00); | 622 0x00, 0x00); |
612 TestRegAddrBase(cmp, ebp, esi, 0xF0, i8, 7, 0x40, 0x3A, 0xAE, 0xF0, 0x00, | 623 TestRegAddrBase(cmp, ebp, esi, 0xF0, i8, 8, 0x67, 0x40, 0x3A, 0xAE, 0xF0, |
613 0x00, 0x00); | 624 0x00, 0x00, 0x00); |
614 TestRegAddrBase(cmp, esi, edi, 0xF0, i8, 7, 0x40, 0x3A, 0xB7, 0xF0, 0x00, | 625 TestRegAddrBase(cmp, esi, edi, 0xF0, i8, 8, 0x67, 0x40, 0x3A, 0xB7, 0xF0, |
615 0x00, 0x00); | 626 0x00, 0x00, 0x00); |
616 TestRegAddrBase(cmp, edi, r8, 0xF0, i8, 7, 0x41, 0x3A, 0xB8, 0xF0, 0x00, 0x00, | 627 TestRegAddrBase(cmp, edi, r8, 0xF0, i8, 8, 0x67, 0x41, 0x3A, 0xB8, 0xF0, 0x00, |
617 0x00); | 628 0x00, 0x00); |
618 TestRegAddrBase(cmp, r8, r9, 0xF0, i8, 7, 0x45, 0x3A, 0x81, 0xF0, 0x00, 0x00, | 629 TestRegAddrBase(cmp, r8, r9, 0xF0, i8, 8, 0x67, 0x45, 0x3A, 0x81, 0xF0, 0x00, |
619 0x00); | 630 0x00, 0x00); |
620 TestRegAddrBase(cmp, r9, r10, 0xF0, i8, 7, 0x45, 0x3A, 0x8A, 0xF0, 0x00, 0x00, | 631 TestRegAddrBase(cmp, r9, r10, 0xF0, i8, 8, 0x67, 0x45, 0x3A, 0x8A, 0xF0, 0x00, |
621 0x00); | 632 0x00, 0x00); |
622 TestRegAddrBase(cmp, r10, r11, 0xF0, i8, 7, 0x45, 0x3A, 0x93, 0xF0, 0x00, | 633 TestRegAddrBase(cmp, r10, r11, 0xF0, i8, 8, 0x67, 0x45, 0x3A, 0x93, 0xF0, |
623 0x00, 0x00); | 634 0x00, 0x00, 0x00); |
624 TestRegAddrBase(cmp, r11, r12, 0xF0, i8, 8, 0x45, 0x3A, 0x9C, 0x24, 0xF0, | 635 TestRegAddrBase(cmp, r11, r12, 0xF0, i8, 9, 0x67, 0x45, 0x3A, 0x9C, 0x24, |
625 0x00, 0x00, 0x00); | 636 0xF0, 0x00, 0x00, 0x00); |
626 TestRegAddrBase(cmp, r12, r13, 0xF0, i8, 7, 0x45, 0x3A, 0xA5, 0xF0, 0x00, | 637 TestRegAddrBase(cmp, r12, r13, 0xF0, i8, 8, 0x67, 0x45, 0x3A, 0xA5, 0xF0, |
627 0x00, 0x00); | 638 0x00, 0x00, 0x00); |
628 TestRegAddrBase(cmp, r13, r14, 0xF0, i8, 7, 0x45, 0x3A, 0xAE, 0xF0, 0x00, | 639 TestRegAddrBase(cmp, r13, r14, 0xF0, i8, 8, 0x67, 0x45, 0x3A, 0xAE, 0xF0, |
629 0x00, 0x00); | 640 0x00, 0x00, 0x00); |
630 TestRegAddrBase(cmp, r14, r15, 0xF0, i8, 7, 0x45, 0x3A, 0xB7, 0xF0, 0x00, | 641 TestRegAddrBase(cmp, r14, r15, 0xF0, i8, 8, 0x67, 0x45, 0x3A, 0xB7, 0xF0, |
631 0x00, 0x00); | 642 0x00, 0x00, 0x00); |
632 TestRegAddrBase(cmp, r15, eax, 0xF0, i8, 7, 0x44, 0x3A, 0xB8, 0xF0, 0x00, | 643 TestRegAddrBase(cmp, r15, eax, 0xF0, i8, 8, 0x67, 0x44, 0x3A, 0xB8, 0xF0, |
633 0x00, 0x00); | 644 0x00, 0x00, 0x00); |
634 | 645 |
635 /* cmp GPR, Imm(,Index,Scale) */ | 646 /* cmp GPR, Imm(,Index,Scale) */ |
636 TestRegAddrScaledIndex(cmp, eax, ecx, 1, 0, i32, 7, 0x3B, 0x04, 0x0D, 0x00, | 647 TestRegAddrScaledIndex(cmp, eax, ecx, 1, 0, i32, 8, 0x67, 0x3B, 0x04, 0x0D, |
637 0x00, 0x00, 0x00); | 648 0x00, 0x00, 0x00, 0x00); |
638 TestRegAddrScaledIndex(cmp, ecx, edx, 2, 0, i32, 7, 0x3B, 0x0C, 0x55, 0x00, | 649 TestRegAddrScaledIndex(cmp, ecx, edx, 2, 0, i32, 8, 0x67, 0x3B, 0x0C, 0x55, |
639 0x00, 0x00, 0x00); | 650 0x00, 0x00, 0x00, 0x00); |
640 TestRegAddrScaledIndex(cmp, edx, ebx, 4, 0, i32, 7, 0x3B, 0x14, 0x9D, 0x00, | 651 TestRegAddrScaledIndex(cmp, edx, ebx, 4, 0, i32, 8, 0x67, 0x3B, 0x14, 0x9D, |
641 0x00, 0x00, 0x00); | 652 0x00, 0x00, 0x00, 0x00); |
642 TestRegAddrScaledIndex(cmp, r8, r9, 1, 0, i32, 8, 0x46, 0x3B, 0x04, 0x0D, | 653 TestRegAddrScaledIndex(cmp, r8, r9, 1, 0, i32, 9, 0x67, 0x46, 0x3B, 0x04, |
643 0x00, 0x00, 0x00, 0x00); | 654 0x0D, 0x00, 0x00, 0x00, 0x00); |
644 TestRegAddrScaledIndex(cmp, r9, r10, 2, 0, i32, 8, 0x46, 0x3B, 0x0C, 0x55, | 655 TestRegAddrScaledIndex(cmp, r9, r10, 2, 0, i32, 9, 0x67, 0x46, 0x3B, 0x0C, |
645 0x00, 0x00, 0x00, 0x00); | 656 0x55, 0x00, 0x00, 0x00, 0x00); |
646 TestRegAddrScaledIndex(cmp, r10, r11, 4, 0, i32, 8, 0x46, 0x3B, 0x14, 0x9D, | 657 TestRegAddrScaledIndex(cmp, r10, r11, 4, 0, i32, 9, 0x67, 0x46, 0x3B, 0x14, |
647 0x00, 0x00, 0x00, 0x00); | 658 0x9D, 0x00, 0x00, 0x00, 0x00); |
648 // esp cannot be an scaled index. | 659 // esp cannot be an scaled index. |
649 TestRegAddrScaledIndex(cmp, esp, ebp, 8, 0, i32, 7, 0x3B, 0x24, 0xED, 0x00, | 660 TestRegAddrScaledIndex(cmp, esp, ebp, 8, 0, i32, 8, 0x67, 0x3B, 0x24, 0xED, |
650 0x00, 0x00, 0x00); | 661 0x00, 0x00, 0x00, 0x00); |
651 TestRegAddrScaledIndex(cmp, ebp, esi, 1, 0, i32, 7, 0x3B, 0x2C, 0x35, 0x00, | 662 TestRegAddrScaledIndex(cmp, ebp, esi, 1, 0, i32, 8, 0x67, 0x3B, 0x2C, 0x35, |
652 0x00, 0x00, 0x00); | 663 0x00, 0x00, 0x00, 0x00); |
653 TestRegAddrScaledIndex(cmp, esi, edi, 2, 0, i32, 7, 0x3B, 0x34, 0x7D, 0x00, | 664 TestRegAddrScaledIndex(cmp, esi, edi, 2, 0, i32, 8, 0x67, 0x3B, 0x34, 0x7D, |
654 0x00, 0x00, 0x00); | 665 0x00, 0x00, 0x00, 0x00); |
655 TestRegAddrScaledIndex(cmp, edi, eax, 4, 0, i32, 7, 0x3B, 0x3C, 0x85, 0x00, | 666 TestRegAddrScaledIndex(cmp, edi, eax, 4, 0, i32, 8, 0x67, 0x3B, 0x3C, 0x85, |
656 0x00, 0x00, 0x00); | 667 0x00, 0x00, 0x00, 0x00); |
657 TestRegAddrScaledIndex(cmp, ebx, ecx, 8, 0, i32, 7, 0x3B, 0x1C, 0xCD, 0x00, | 668 TestRegAddrScaledIndex(cmp, ebx, ecx, 8, 0, i32, 8, 0x67, 0x3B, 0x1C, 0xCD, |
658 0x00, 0x00, 0x00); | 669 0x00, 0x00, 0x00, 0x00); |
659 TestRegAddrScaledIndex(cmp, r12, r13, 8, 0, i32, 8, 0x46, 0x3B, 0x24, 0xED, | 670 TestRegAddrScaledIndex(cmp, r12, r13, 8, 0, i32, 9, 0x67, 0x46, 0x3B, 0x24, |
660 0x00, 0x00, 0x00, 0x00); | 671 0xED, 0x00, 0x00, 0x00, 0x00); |
661 TestRegAddrScaledIndex(cmp, r13, r14, 1, 0, i32, 8, 0x46, 0x3B, 0x2C, 0x35, | 672 TestRegAddrScaledIndex(cmp, r13, r14, 1, 0, i32, 9, 0x67, 0x46, 0x3B, 0x2C, |
662 0x00, 0x00, 0x00, 0x00); | 673 0x35, 0x00, 0x00, 0x00, 0x00); |
663 TestRegAddrScaledIndex(cmp, r14, r15, 2, 0, i32, 8, 0x46, 0x3B, 0x34, 0x7D, | 674 TestRegAddrScaledIndex(cmp, r14, r15, 2, 0, i32, 9, 0x67, 0x46, 0x3B, 0x34, |
664 0x00, 0x00, 0x00, 0x00); | 675 0x7D, 0x00, 0x00, 0x00, 0x00); |
665 TestRegAddrScaledIndex(cmp, r15, r8, 4, 0, i32, 8, 0x46, 0x3B, 0x3C, 0x85, | 676 TestRegAddrScaledIndex(cmp, r15, r8, 4, 0, i32, 9, 0x67, 0x46, 0x3B, 0x3C, |
666 0x00, 0x00, 0x00, 0x00); | 677 0x85, 0x00, 0x00, 0x00, 0x00); |
667 TestRegAddrScaledIndex(cmp, r11, r9, 8, 0, i32, 8, 0x46, 0x3B, 0x1C, 0xCD, | 678 TestRegAddrScaledIndex(cmp, r11, r9, 8, 0, i32, 9, 0x67, 0x46, 0x3B, 0x1C, |
668 0x00, 0x00, 0x00, 0x00); | |
669 | |
670 TestRegAddrScaledIndex(cmp, eax, ecx, 8, 0, i16, 8, 0x66, 0x3B, 0x04, 0xCD, | |
671 0x00, 0x00, 0x00, 0x00); | |
672 TestRegAddrScaledIndex(cmp, ecx, edx, 1, 0, i16, 8, 0x66, 0x3B, 0x0C, 0x15, | |
673 0x00, 0x00, 0x00, 0x00); | |
674 TestRegAddrScaledIndex(cmp, edx, ebx, 2, 0, i16, 8, 0x66, 0x3B, 0x14, 0x5D, | |
675 0x00, 0x00, 0x00, 0x00); | |
676 TestRegAddrScaledIndex(cmp, r8, r9, 8, 0, i16, 9, 0x66, 0x46, 0x3B, 0x04, | |
677 0xCD, 0x00, 0x00, 0x00, 0x00); | 679 0xCD, 0x00, 0x00, 0x00, 0x00); |
678 TestRegAddrScaledIndex(cmp, r9, r10, 1, 0, i16, 9, 0x66, 0x46, 0x3B, 0x0C, | 680 |
| 681 TestRegAddrScaledIndex(cmp, eax, ecx, 8, 0, i16, 9, 0x66, 0x67, 0x3B, 0x04, |
| 682 0xCD, 0x00, 0x00, 0x00, 0x00); |
| 683 TestRegAddrScaledIndex(cmp, ecx, edx, 1, 0, i16, 9, 0x66, 0x67, 0x3B, 0x0C, |
679 0x15, 0x00, 0x00, 0x00, 0x00); | 684 0x15, 0x00, 0x00, 0x00, 0x00); |
680 TestRegAddrScaledIndex(cmp, r10, r11, 2, 0, i16, 9, 0x66, 0x46, 0x3B, 0x14, | 685 TestRegAddrScaledIndex(cmp, edx, ebx, 2, 0, i16, 9, 0x66, 0x67, 0x3B, 0x14, |
681 0x5D, 0x00, 0x00, 0x00, 0x00); | 686 0x5D, 0x00, 0x00, 0x00, 0x00); |
682 // esp cannot be an scaled index. | 687 TestRegAddrScaledIndex(cmp, r8, r9, 8, 0, i16, 10, 0x66, 0x67, 0x46, 0x3B, |
683 TestRegAddrScaledIndex(cmp, esp, ebp, 4, 0, i16, 8, 0x66, 0x3B, 0x24, 0xAD, | 688 0x04, 0xCD, 0x00, 0x00, 0x00, 0x00); |
684 0x00, 0x00, 0x00, 0x00); | 689 TestRegAddrScaledIndex(cmp, r9, r10, 1, 0, i16, 10, 0x66, 0x67, 0x46, 0x3B, |
685 TestRegAddrScaledIndex(cmp, ebp, esi, 8, 0, i16, 8, 0x66, 0x3B, 0x2C, 0xF5, | 690 0x0C, 0x15, 0x00, 0x00, 0x00, 0x00); |
686 0x00, 0x00, 0x00, 0x00); | 691 TestRegAddrScaledIndex(cmp, r10, r11, 2, 0, i16, 10, 0x66, 0x67, 0x46, 0x3B, |
687 TestRegAddrScaledIndex(cmp, esi, edi, 1, 0, i16, 8, 0x66, 0x3B, 0x34, 0x3D, | 692 0x14, 0x5D, 0x00, 0x00, 0x00, 0x00); |
688 0x00, 0x00, 0x00, 0x00); | 693 // esp cannot be an scaled index. |
689 TestRegAddrScaledIndex(cmp, edi, eax, 2, 0, i16, 8, 0x66, 0x3B, 0x3C, 0x45, | 694 TestRegAddrScaledIndex(cmp, esp, ebp, 4, 0, i16, 9, 0x66, 0x67, 0x3B, 0x24, |
690 0x00, 0x00, 0x00, 0x00); | 695 0xAD, 0x00, 0x00, 0x00, 0x00); |
691 TestRegAddrScaledIndex(cmp, ebx, ecx, 8, 0, i16, 8, 0x66, 0x3B, 0x1C, 0xCD, | 696 TestRegAddrScaledIndex(cmp, ebp, esi, 8, 0, i16, 9, 0x66, 0x67, 0x3B, 0x2C, |
692 0x00, 0x00, 0x00, 0x00); | 697 0xF5, 0x00, 0x00, 0x00, 0x00); |
693 | 698 TestRegAddrScaledIndex(cmp, esi, edi, 1, 0, i16, 9, 0x66, 0x67, 0x3B, 0x34, |
694 TestRegAddrScaledIndex(cmp, eax, ecx, 4, 0, i8, 7, 0x3A, 0x04, 0x8D, 0x00, | 699 0x3D, 0x00, 0x00, 0x00, 0x00); |
695 0x00, 0x00, 0x00); | 700 TestRegAddrScaledIndex(cmp, edi, eax, 2, 0, i16, 9, 0x66, 0x67, 0x3B, 0x3C, |
696 TestRegAddrScaledIndex(cmp, ecx, edx, 8, 0, i8, 7, 0x3A, 0x0C, 0xD5, 0x00, | 701 0x45, 0x00, 0x00, 0x00, 0x00); |
697 0x00, 0x00, 0x00); | 702 TestRegAddrScaledIndex(cmp, ebx, ecx, 8, 0, i16, 9, 0x66, 0x67, 0x3B, 0x1C, |
698 TestRegAddrScaledIndex(cmp, edx, ebx, 1, 0, i8, 7, 0x3A, 0x14, 0x1D, 0x00, | 703 0xCD, 0x00, 0x00, 0x00, 0x00); |
699 0x00, 0x00, 0x00); | 704 |
700 TestRegAddrScaledIndex(cmp, r8, r9, 4, 0, i8, 8, 0x46, 0x3A, 0x04, 0x8D, 0x00, | 705 TestRegAddrScaledIndex(cmp, eax, ecx, 4, 0, i8, 8, 0x67, 0x3A, 0x04, 0x8D, |
701 0x00, 0x00, 0x00); | 706 0x00, 0x00, 0x00, 0x00); |
702 TestRegAddrScaledIndex(cmp, r9, r10, 8, 0, i8, 8, 0x46, 0x3A, 0x0C, 0xD5, | 707 TestRegAddrScaledIndex(cmp, ecx, edx, 8, 0, i8, 8, 0x67, 0x3A, 0x0C, 0xD5, |
703 0x00, 0x00, 0x00, 0x00); | 708 0x00, 0x00, 0x00, 0x00); |
704 TestRegAddrScaledIndex(cmp, r10, r11, 1, 0, i8, 8, 0x46, 0x3A, 0x14, 0x1D, | 709 TestRegAddrScaledIndex(cmp, edx, ebx, 1, 0, i8, 8, 0x67, 0x3A, 0x14, 0x1D, |
705 0x00, 0x00, 0x00, 0x00); | 710 0x00, 0x00, 0x00, 0x00); |
706 // esp cannot be an scaled index. | 711 TestRegAddrScaledIndex(cmp, r8, r9, 4, 0, i8, 9, 0x67, 0x46, 0x3A, 0x04, 0x8D, |
707 TestRegAddrScaledIndex(cmp, esp, ebp, 2, 0, i8, 8, 0x40, 0x3A, 0x24, 0x6D, | 712 0x00, 0x00, 0x00, 0x00); |
708 0x00, 0x00, 0x00, 0x00); | 713 TestRegAddrScaledIndex(cmp, r9, r10, 8, 0, i8, 9, 0x67, 0x46, 0x3A, 0x0C, |
709 TestRegAddrScaledIndex(cmp, ebp, esi, 4, 0, i8, 8, 0x40, 0x3A, 0x2C, 0xB5, | 714 0xD5, 0x00, 0x00, 0x00, 0x00); |
710 0x00, 0x00, 0x00, 0x00); | 715 TestRegAddrScaledIndex(cmp, r10, r11, 1, 0, i8, 9, 0x67, 0x46, 0x3A, 0x14, |
711 TestRegAddrScaledIndex(cmp, esi, edi, 8, 0, i8, 8, 0x40, 0x3A, 0x34, 0xFD, | 716 0x1D, 0x00, 0x00, 0x00, 0x00); |
712 0x00, 0x00, 0x00, 0x00); | 717 // esp cannot be an scaled index. |
713 TestRegAddrScaledIndex(cmp, edi, eax, 1, 0, i8, 8, 0x40, 0x3A, 0x3C, 0x05, | 718 TestRegAddrScaledIndex(cmp, esp, ebp, 2, 0, i8, 8, 0x67, 0x3A, 0x24, 0x6D, |
714 0x00, 0x00, 0x00, 0x00); | 719 0x00, 0x00, 0x00, 0x00); |
715 TestRegAddrScaledIndex(cmp, ebx, ecx, 8, 0, i8, 7, 0x3a, 0x1C, 0xCD, 0x00, | 720 TestRegAddrScaledIndex(cmp, ebp, esi, 4, 0, i8, 9, 0x67, 0x40, 0x3A, 0x2C, |
716 0x00, 0x00, 0x00); | 721 0xB5, 0x00, 0x00, 0x00, 0x00); |
717 TestRegAddrScaledIndex(cmp, r12, r13, 2, 0, i8, 8, 0x46, 0x3A, 0x24, 0x6D, | 722 TestRegAddrScaledIndex(cmp, esi, edi, 8, 0, i8, 9, 0x67, 0x40, 0x3A, 0x34, |
718 0x00, 0x00, 0x00, 0x00); | 723 0xFD, 0x00, 0x00, 0x00, 0x00); |
719 TestRegAddrScaledIndex(cmp, r13, r14, 4, 0, i8, 8, 0x46, 0x3A, 0x2C, 0xB5, | 724 TestRegAddrScaledIndex(cmp, edi, eax, 1, 0, i8, 9, 0x67, 0x40, 0x3A, 0x3C, |
720 0x00, 0x00, 0x00, 0x00); | 725 0x05, 0x00, 0x00, 0x00, 0x00); |
721 TestRegAddrScaledIndex(cmp, r14, r15, 8, 0, i8, 8, 0x46, 0x3A, 0x34, 0xFD, | 726 TestRegAddrScaledIndex(cmp, ebx, ecx, 8, 0, i8, 8, 0x67, 0x3a, 0x1C, 0xCD, |
722 0x00, 0x00, 0x00, 0x00); | 727 0x00, 0x00, 0x00, 0x00); |
723 TestRegAddrScaledIndex(cmp, r15, r8, 1, 0, i8, 8, 0x46, 0x3A, 0x3C, 0x05, | 728 TestRegAddrScaledIndex(cmp, r12, r13, 2, 0, i8, 9, 0x67, 0x46, 0x3A, 0x24, |
724 0x00, 0x00, 0x00, 0x00); | 729 0x6D, 0x00, 0x00, 0x00, 0x00); |
725 TestRegAddrScaledIndex(cmp, r11, r9, 8, 0, i8, 8, 0x46, 0x3a, 0x1C, 0xCD, | 730 TestRegAddrScaledIndex(cmp, r13, r14, 4, 0, i8, 9, 0x67, 0x46, 0x3A, 0x2C, |
726 0x00, 0x00, 0x00, 0x00); | 731 0xB5, 0x00, 0x00, 0x00, 0x00); |
| 732 TestRegAddrScaledIndex(cmp, r14, r15, 8, 0, i8, 9, 0x67, 0x46, 0x3A, 0x34, |
| 733 0xFD, 0x00, 0x00, 0x00, 0x00); |
| 734 TestRegAddrScaledIndex(cmp, r15, r8, 1, 0, i8, 9, 0x67, 0x46, 0x3A, 0x3C, |
| 735 0x05, 0x00, 0x00, 0x00, 0x00); |
| 736 TestRegAddrScaledIndex(cmp, r11, r9, 8, 0, i8, 9, 0x67, 0x46, 0x3a, 0x1C, |
| 737 0xCD, 0x00, 0x00, 0x00, 0x00); |
727 | 738 |
728 /* cmp GPR, 0(Base,Index,Scale) */ | 739 /* cmp GPR, 0(Base,Index,Scale) */ |
729 TestRegAddrBaseScaledIndex(cmp, eax, ecx, edx, 1, 0, i32, 3, 0x3B, 0x04, | 740 TestRegAddrBaseScaledIndex(cmp, eax, ecx, edx, 1, 0, i32, 4, 0x67, 0x3B, 0x04, |
730 0x11); | 741 0x11); |
731 TestRegAddrBaseScaledIndex(cmp, ecx, edx, ebx, 2, 0, i32, 3, 0x3B, 0x0C, | 742 TestRegAddrBaseScaledIndex(cmp, ecx, edx, ebx, 2, 0, i32, 4, 0x67, 0x3B, 0x0C, |
732 0x5A); | 743 0x5A); |
733 TestRegAddrBaseScaledIndex(cmp, r8, r9, r10, 1, 0, i32, 4, 0x47, 0x3B, 0x04, | 744 TestRegAddrBaseScaledIndex(cmp, r8, r9, r10, 1, 0, i32, 5, 0x67, 0x47, 0x3B, |
| 745 0x04, 0x11); |
| 746 TestRegAddrBaseScaledIndex(cmp, r9, r10, r11, 2, 0, i32, 5, 0x67, 0x47, 0x3B, |
| 747 0x0C, 0x5A); |
| 748 // esp cannot be an scaled index. |
| 749 TestRegAddrBaseScaledIndex(cmp, ebx, esp, ebp, 4, 0, i32, 4, 0x67, 0x3B, 0x1C, |
| 750 0xAC); |
| 751 TestRegAddrBaseScaledIndex(cmp, esp, ebp, esi, 8, 0, i32, 5, 0x67, 0x3B, 0x64, |
| 752 0xF5, 0x00); |
| 753 TestRegAddrBaseScaledIndex(cmp, ebp, esi, edi, 1, 0, i32, 4, 0x67, 0x3B, 0x2C, |
| 754 0x3E); |
| 755 TestRegAddrBaseScaledIndex(cmp, esi, edi, eax, 2, 0, i32, 4, 0x67, 0x3B, 0x34, |
| 756 0x47); |
| 757 TestRegAddrBaseScaledIndex(cmp, edi, eax, ebx, 4, 0, i32, 4, 0x67, 0x3B, 0x3C, |
| 758 0x98); |
| 759 TestRegAddrBaseScaledIndex(cmp, ebx, ecx, edx, 8, 0, i32, 4, 0x67, 0x3B, 0x1C, |
| 760 0xD1); |
| 761 TestRegAddrBaseScaledIndex(cmp, r11, r12, r13, 4, 0, i32, 5, 0x67, 0x47, 0x3B, |
| 762 0x1C, 0xAC); |
| 763 TestRegAddrBaseScaledIndex(cmp, r12, r13, r14, 8, 0, i32, 6, 0x67, 0x47, 0x3B, |
| 764 0x64, 0xF5, 0x00); |
| 765 TestRegAddrBaseScaledIndex(cmp, r13, r14, r15, 1, 0, i32, 5, 0x67, 0x47, 0x3B, |
| 766 0x2C, 0x3E); |
| 767 TestRegAddrBaseScaledIndex(cmp, r14, r15, r8, 2, 0, i32, 5, 0x67, 0x47, 0x3B, |
| 768 0x34, 0x47); |
| 769 TestRegAddrBaseScaledIndex(cmp, r15, r8, r11, 4, 0, i32, 5, 0x67, 0x47, 0x3B, |
| 770 0x3C, 0x98); |
| 771 TestRegAddrBaseScaledIndex(cmp, r11, r9, r10, 8, 0, i32, 5, 0x67, 0x47, 0x3B, |
| 772 0x1C, 0xD1); |
| 773 |
| 774 TestRegAddrBaseScaledIndex(cmp, eax, ecx, edx, 1, 0, i16, 5, 0x66, 0x67, 0x3B, |
| 775 0x04, 0x11); |
| 776 TestRegAddrBaseScaledIndex(cmp, ecx, edx, ebx, 2, 0, i16, 5, 0x66, 0x67, 0x3B, |
| 777 0x0C, 0x5A); |
| 778 TestRegAddrBaseScaledIndex(cmp, r8, r9, r10, 1, 0, i16, 6, 0x66, 0x67, 0x47, |
| 779 0x3B, 0x04, 0x11); |
| 780 TestRegAddrBaseScaledIndex(cmp, r9, r10, r11, 2, 0, i16, 6, 0x66, 0x67, 0x47, |
| 781 0x3B, 0x0C, 0x5A); |
| 782 // esp cannot be an scaled index. |
| 783 TestRegAddrBaseScaledIndex(cmp, ebx, esp, ebp, 4, 0, i16, 5, 0x66, 0x67, 0x3B, |
| 784 0x1C, 0xAC); |
| 785 TestRegAddrBaseScaledIndex(cmp, esp, ebp, esi, 8, 0, i16, 6, 0x66, 0x67, 0x3B, |
| 786 0x64, 0xF5, 0x00); |
| 787 TestRegAddrBaseScaledIndex(cmp, ebp, esi, edi, 1, 0, i16, 5, 0x66, 0x67, 0x3B, |
| 788 0x2C, 0x3E); |
| 789 TestRegAddrBaseScaledIndex(cmp, esi, edi, eax, 2, 0, i16, 5, 0x66, 0x67, 0x3B, |
| 790 0x34, 0x47); |
| 791 TestRegAddrBaseScaledIndex(cmp, edi, eax, ebx, 4, 0, i16, 5, 0x66, 0x67, 0x3B, |
| 792 0x3C, 0x98); |
| 793 TestRegAddrBaseScaledIndex(cmp, ebx, ecx, edx, 8, 0, i16, 5, 0x66, 0x67, 0x3B, |
| 794 0x1C, 0xD1); |
| 795 TestRegAddrBaseScaledIndex(cmp, r11, r12, r13, 4, 0, i16, 6, 0x66, 0x67, 0x47, |
| 796 0x3B, 0x1C, 0xAC); |
| 797 TestRegAddrBaseScaledIndex(cmp, r12, r13, r14, 8, 0, i16, 7, 0x66, 0x67, 0x47, |
| 798 0x3B, 0x64, 0xF5, 0x00); |
| 799 TestRegAddrBaseScaledIndex(cmp, r13, r14, r15, 1, 0, i16, 6, 0x66, 0x67, 0x47, |
| 800 0x3B, 0x2C, 0x3E); |
| 801 TestRegAddrBaseScaledIndex(cmp, r14, r15, r8, 2, 0, i16, 6, 0x66, 0x67, 0x47, |
| 802 0x3B, 0x34, 0x47); |
| 803 TestRegAddrBaseScaledIndex(cmp, r15, r8, r11, 4, 0, i16, 6, 0x66, 0x67, 0x47, |
| 804 0x3B, 0x3C, 0x98); |
| 805 TestRegAddrBaseScaledIndex(cmp, r11, r9, r10, 8, 0, i16, 6, 0x66, 0x67, 0x47, |
| 806 0x3B, 0x1C, 0xD1); |
| 807 |
| 808 TestRegAddrBaseScaledIndex(cmp, eax, ecx, edx, 1, 0, i8, 4, 0x67, 0x3A, 0x04, |
734 0x11); | 809 0x11); |
735 TestRegAddrBaseScaledIndex(cmp, r9, r10, r11, 2, 0, i32, 4, 0x47, 0x3B, 0x0C, | 810 TestRegAddrBaseScaledIndex(cmp, ecx, edx, ebx, 2, 0, i8, 4, 0x67, 0x3A, 0x0C, |
736 0x5A); | 811 0x5A); |
737 // esp cannot be an scaled index. | 812 TestRegAddrBaseScaledIndex(cmp, r8, r9, r10, 1, 0, i8, 5, 0x67, 0x47, 0x3A, |
738 TestRegAddrBaseScaledIndex(cmp, ebx, esp, ebp, 4, 0, i32, 3, 0x3B, 0x1C, | 813 0x04, 0x11); |
| 814 TestRegAddrBaseScaledIndex(cmp, r9, r10, r11, 2, 0, i8, 5, 0x67, 0x47, 0x3A, |
| 815 0x0C, 0x5A); |
| 816 // esp cannot be an scaled index. |
| 817 TestRegAddrBaseScaledIndex(cmp, ebx, esp, ebp, 4, 0, i8, 4, 0x67, 0x3A, 0x1C, |
739 0xAC); | 818 0xAC); |
740 TestRegAddrBaseScaledIndex(cmp, esp, ebp, esi, 8, 0, i32, 4, 0x3B, 0x64, 0xF5, | 819 TestRegAddrBaseScaledIndex(cmp, esp, ebp, esi, 8, 0, i8, 5, 0x67, 0x3A, 0x64, |
741 0x00); | 820 0xF5, 0x00); |
742 TestRegAddrBaseScaledIndex(cmp, ebp, esi, edi, 1, 0, i32, 3, 0x3B, 0x2C, | 821 TestRegAddrBaseScaledIndex(cmp, ebp, esi, edi, 1, 0, i8, 5, 0x67, 0x40, 0x3A, |
743 0x3E); | 822 0x2C, 0x3E); |
744 TestRegAddrBaseScaledIndex(cmp, esi, edi, eax, 2, 0, i32, 3, 0x3B, 0x34, | 823 TestRegAddrBaseScaledIndex(cmp, esi, edi, eax, 2, 0, i8, 5, 0x67, 0x40, 0x3A, |
745 0x47); | 824 0x34, 0x47); |
746 TestRegAddrBaseScaledIndex(cmp, edi, eax, ebx, 4, 0, i32, 3, 0x3B, 0x3C, | 825 TestRegAddrBaseScaledIndex(cmp, edi, eax, ebx, 4, 0, i8, 5, 0x67, 0x40, 0x3A, |
747 0x98); | 826 0x3C, 0x98); |
748 TestRegAddrBaseScaledIndex(cmp, ebx, ecx, edx, 8, 0, i32, 3, 0x3B, 0x1C, | 827 TestRegAddrBaseScaledIndex(cmp, ebx, ecx, edx, 8, 0, i8, 4, 0x67, 0x3A, 0x1C, |
749 0xD1); | 828 0xD1); |
750 TestRegAddrBaseScaledIndex(cmp, r11, r12, r13, 4, 0, i32, 4, 0x47, 0x3B, 0x1C, | 829 TestRegAddrBaseScaledIndex(cmp, r11, r12, r13, 4, 0, i8, 5, 0x67, 0x47, 0x3A, |
751 0xAC); | |
752 TestRegAddrBaseScaledIndex(cmp, r12, r13, r14, 8, 0, i32, 5, 0x47, 0x3B, 0x64, | |
753 0xF5, 0x00); | |
754 TestRegAddrBaseScaledIndex(cmp, r13, r14, r15, 1, 0, i32, 4, 0x47, 0x3B, 0x2C, | |
755 0x3E); | |
756 TestRegAddrBaseScaledIndex(cmp, r14, r15, r8, 2, 0, i32, 4, 0x47, 0x3B, 0x34, | |
757 0x47); | |
758 TestRegAddrBaseScaledIndex(cmp, r15, r8, r11, 4, 0, i32, 4, 0x47, 0x3B, 0x3C, | |
759 0x98); | |
760 TestRegAddrBaseScaledIndex(cmp, r11, r9, r10, 8, 0, i32, 4, 0x47, 0x3B, 0x1C, | |
761 0xD1); | |
762 | |
763 TestRegAddrBaseScaledIndex(cmp, eax, ecx, edx, 1, 0, i16, 4, 0x66, 0x3B, 0x04, | |
764 0x11); | |
765 TestRegAddrBaseScaledIndex(cmp, ecx, edx, ebx, 2, 0, i16, 4, 0x66, 0x3B, 0x0C, | |
766 0x5A); | |
767 TestRegAddrBaseScaledIndex(cmp, r8, r9, r10, 1, 0, i16, 5, 0x66, 0x47, 0x3B, | |
768 0x04, 0x11); | |
769 TestRegAddrBaseScaledIndex(cmp, r9, r10, r11, 2, 0, i16, 5, 0x66, 0x47, 0x3B, | |
770 0x0C, 0x5A); | |
771 // esp cannot be an scaled index. | |
772 TestRegAddrBaseScaledIndex(cmp, ebx, esp, ebp, 4, 0, i16, 4, 0x66, 0x3B, 0x1C, | |
773 0xAC); | |
774 TestRegAddrBaseScaledIndex(cmp, esp, ebp, esi, 8, 0, i16, 5, 0x66, 0x3B, 0x64, | |
775 0xF5, 0x00); | |
776 TestRegAddrBaseScaledIndex(cmp, ebp, esi, edi, 1, 0, i16, 4, 0x66, 0x3B, 0x2C, | |
777 0x3E); | |
778 TestRegAddrBaseScaledIndex(cmp, esi, edi, eax, 2, 0, i16, 4, 0x66, 0x3B, 0x34, | |
779 0x47); | |
780 TestRegAddrBaseScaledIndex(cmp, edi, eax, ebx, 4, 0, i16, 4, 0x66, 0x3B, 0x3C, | |
781 0x98); | |
782 TestRegAddrBaseScaledIndex(cmp, ebx, ecx, edx, 8, 0, i16, 4, 0x66, 0x3B, 0x1C, | |
783 0xD1); | |
784 TestRegAddrBaseScaledIndex(cmp, r11, r12, r13, 4, 0, i16, 5, 0x66, 0x47, 0x3B, | |
785 0x1C, 0xAC); | 830 0x1C, 0xAC); |
786 TestRegAddrBaseScaledIndex(cmp, r12, r13, r14, 8, 0, i16, 6, 0x66, 0x47, 0x3B, | 831 TestRegAddrBaseScaledIndex(cmp, r12, r13, r14, 8, 0, i8, 6, 0x67, 0x47, 0x3A, |
787 0x64, 0xF5, 0x00); | 832 0x64, 0xF5, 0x00); |
788 TestRegAddrBaseScaledIndex(cmp, r13, r14, r15, 1, 0, i16, 5, 0x66, 0x47, 0x3B, | 833 TestRegAddrBaseScaledIndex(cmp, r13, r14, r15, 1, 0, i8, 5, 0x67, 0x47, 0x3A, |
789 0x2C, 0x3E); | 834 0x2C, 0x3E); |
790 TestRegAddrBaseScaledIndex(cmp, r14, r15, r8, 2, 0, i16, 5, 0x66, 0x47, 0x3B, | 835 TestRegAddrBaseScaledIndex(cmp, r14, r15, r8, 2, 0, i8, 5, 0x67, 0x47, 0x3A, |
791 0x34, 0x47); | 836 0x34, 0x47); |
792 TestRegAddrBaseScaledIndex(cmp, r15, r8, r11, 4, 0, i16, 5, 0x66, 0x47, 0x3B, | 837 TestRegAddrBaseScaledIndex(cmp, r15, r8, r11, 4, 0, i8, 5, 0x67, 0x47, 0x3A, |
793 0x3C, 0x98); | 838 0x3C, 0x98); |
794 TestRegAddrBaseScaledIndex(cmp, r11, r9, r10, 8, 0, i16, 5, 0x66, 0x47, 0x3B, | 839 TestRegAddrBaseScaledIndex(cmp, r11, r9, r10, 8, 0, i8, 5, 0x67, 0x47, 0x3A, |
795 0x1C, 0xD1); | 840 0x1C, 0xD1); |
796 | 841 |
797 TestRegAddrBaseScaledIndex(cmp, eax, ecx, edx, 1, 0, i8, 3, 0x3A, 0x04, 0x11); | |
798 TestRegAddrBaseScaledIndex(cmp, ecx, edx, ebx, 2, 0, i8, 3, 0x3A, 0x0C, 0x5A); | |
799 TestRegAddrBaseScaledIndex(cmp, r8, r9, r10, 1, 0, i8, 4, 0x47, 0x3A, 0x04, | |
800 0x11); | |
801 TestRegAddrBaseScaledIndex(cmp, r9, r10, r11, 2, 0, i8, 4, 0x47, 0x3A, 0x0C, | |
802 0x5A); | |
803 // esp cannot be an scaled index. | |
804 TestRegAddrBaseScaledIndex(cmp, ebx, esp, ebp, 4, 0, i8, 3, 0x3A, 0x1C, 0xAC); | |
805 TestRegAddrBaseScaledIndex(cmp, esp, ebp, esi, 8, 0, i8, 5, 0x40, 0x3A, 0x64, | |
806 0xF5, 0x00); | |
807 TestRegAddrBaseScaledIndex(cmp, ebp, esi, edi, 1, 0, i8, 4, 0x40, 0x3A, 0x2C, | |
808 0x3E); | |
809 TestRegAddrBaseScaledIndex(cmp, esi, edi, eax, 2, 0, i8, 4, 0x40, 0x3A, 0x34, | |
810 0x47); | |
811 TestRegAddrBaseScaledIndex(cmp, edi, eax, ebx, 4, 0, i8, 4, 0x40, 0x3A, 0x3C, | |
812 0x98); | |
813 TestRegAddrBaseScaledIndex(cmp, ebx, ecx, edx, 8, 0, i8, 3, 0x3A, 0x1C, 0xD1); | |
814 TestRegAddrBaseScaledIndex(cmp, r11, r12, r13, 4, 0, i8, 4, 0x47, 0x3A, 0x1C, | |
815 0xAC); | |
816 TestRegAddrBaseScaledIndex(cmp, r12, r13, r14, 8, 0, i8, 5, 0x47, 0x3A, 0x64, | |
817 0xF5, 0x00); | |
818 TestRegAddrBaseScaledIndex(cmp, r13, r14, r15, 1, 0, i8, 4, 0x47, 0x3A, 0x2C, | |
819 0x3E); | |
820 TestRegAddrBaseScaledIndex(cmp, r14, r15, r8, 2, 0, i8, 4, 0x47, 0x3A, 0x34, | |
821 0x47); | |
822 TestRegAddrBaseScaledIndex(cmp, r15, r8, r11, 4, 0, i8, 4, 0x47, 0x3A, 0x3C, | |
823 0x98); | |
824 TestRegAddrBaseScaledIndex(cmp, r11, r9, r10, 8, 0, i8, 4, 0x47, 0x3A, 0x1C, | |
825 0xD1); | |
826 | |
827 /* cmp GPR, Imm8(Base,Index,Scale) */ | 842 /* cmp GPR, Imm8(Base,Index,Scale) */ |
828 TestRegAddrBaseScaledIndex(cmp, eax, ecx, edx, 1, 0x40, i32, 4, 0x3B, 0x44, | 843 TestRegAddrBaseScaledIndex(cmp, eax, ecx, edx, 1, 0x40, i32, 5, 0x67, 0x3B, |
829 0x11, 0x40); | |
830 TestRegAddrBaseScaledIndex(cmp, ecx, edx, ebx, 2, 0x40, i32, 4, 0x3B, 0x4C, | |
831 0x5A, 0x40); | |
832 TestRegAddrBaseScaledIndex(cmp, r8, r9, r10, 1, 0x40, i32, 5, 0x47, 0x3B, | |
833 0x44, 0x11, 0x40); | 844 0x44, 0x11, 0x40); |
834 TestRegAddrBaseScaledIndex(cmp, r9, r10, r11, 2, 0x40, i32, 5, 0x47, 0x3B, | 845 TestRegAddrBaseScaledIndex(cmp, ecx, edx, ebx, 2, 0x40, i32, 5, 0x67, 0x3B, |
835 0x4C, 0x5A, 0x40); | 846 0x4C, 0x5A, 0x40); |
836 // esp cannot be an scaled index. | 847 TestRegAddrBaseScaledIndex(cmp, r8, r9, r10, 1, 0x40, i32, 6, 0x67, 0x47, |
837 TestRegAddrBaseScaledIndex(cmp, ebx, esp, ebp, 4, 0x40, i32, 4, 0x3B, 0x5C, | 848 0x3B, 0x44, 0x11, 0x40); |
838 0xAC, 0x40); | 849 TestRegAddrBaseScaledIndex(cmp, r9, r10, r11, 2, 0x40, i32, 6, 0x67, 0x47, |
839 TestRegAddrBaseScaledIndex(cmp, esp, ebp, esi, 8, 0x40, i32, 4, 0x3B, 0x64, | 850 0x3B, 0x4C, 0x5A, 0x40); |
840 0xF5, 0x40); | 851 // esp cannot be an scaled index. |
841 TestRegAddrBaseScaledIndex(cmp, ebp, esi, edi, 1, 0x40, i32, 4, 0x3B, 0x6C, | 852 TestRegAddrBaseScaledIndex(cmp, ebx, esp, ebp, 4, 0x40, i32, 5, 0x67, 0x3B, |
842 0x3E, 0x40); | |
843 TestRegAddrBaseScaledIndex(cmp, esi, edi, eax, 2, 0x40, i32, 4, 0x3B, 0x74, | |
844 0x47, 0x40); | |
845 TestRegAddrBaseScaledIndex(cmp, edi, eax, ebx, 4, 0x40, i32, 4, 0x3B, 0x7C, | |
846 0x98, 0x40); | |
847 TestRegAddrBaseScaledIndex(cmp, ebx, ecx, edx, 8, 0x40, i32, 4, 0x3B, 0x5C, | |
848 0xD1, 0x40); | |
849 TestRegAddrBaseScaledIndex(cmp, r11, r12, r13, 4, 0x40, i32, 5, 0x47, 0x3B, | |
850 0x5C, 0xAC, 0x40); | 853 0x5C, 0xAC, 0x40); |
851 TestRegAddrBaseScaledIndex(cmp, r12, r13, r14, 8, 0x40, i32, 5, 0x47, 0x3B, | 854 TestRegAddrBaseScaledIndex(cmp, esp, ebp, esi, 8, 0x40, i32, 5, 0x67, 0x3B, |
852 0x64, 0xF5, 0x40); | 855 0x64, 0xF5, 0x40); |
853 TestRegAddrBaseScaledIndex(cmp, r13, r14, r15, 1, 0x40, i32, 5, 0x47, 0x3B, | 856 TestRegAddrBaseScaledIndex(cmp, ebp, esi, edi, 1, 0x40, i32, 5, 0x67, 0x3B, |
854 0x6C, 0x3E, 0x40); | 857 0x6C, 0x3E, 0x40); |
855 TestRegAddrBaseScaledIndex(cmp, r14, r15, r8, 2, 0x40, i32, 5, 0x47, 0x3B, | 858 TestRegAddrBaseScaledIndex(cmp, esi, edi, eax, 2, 0x40, i32, 5, 0x67, 0x3B, |
856 0x74, 0x47, 0x40); | 859 0x74, 0x47, 0x40); |
857 TestRegAddrBaseScaledIndex(cmp, r15, r8, r11, 4, 0x40, i32, 5, 0x47, 0x3B, | 860 TestRegAddrBaseScaledIndex(cmp, edi, eax, ebx, 4, 0x40, i32, 5, 0x67, 0x3B, |
858 0x7C, 0x98, 0x40); | 861 0x7C, 0x98, 0x40); |
859 TestRegAddrBaseScaledIndex(cmp, r11, r9, r10, 8, 0x40, i32, 5, 0x47, 0x3B, | 862 TestRegAddrBaseScaledIndex(cmp, ebx, ecx, edx, 8, 0x40, i32, 5, 0x67, 0x3B, |
860 0x5C, 0xD1, 0x40); | 863 0x5C, 0xD1, 0x40); |
861 | 864 TestRegAddrBaseScaledIndex(cmp, r11, r12, r13, 4, 0x40, i32, 6, 0x67, 0x47, |
862 TestRegAddrBaseScaledIndex(cmp, eax, ecx, edx, 1, 0x40, i16, 5, 0x66, 0x3B, | 865 0x3B, 0x5C, 0xAC, 0x40); |
| 866 TestRegAddrBaseScaledIndex(cmp, r12, r13, r14, 8, 0x40, i32, 6, 0x67, 0x47, |
| 867 0x3B, 0x64, 0xF5, 0x40); |
| 868 TestRegAddrBaseScaledIndex(cmp, r13, r14, r15, 1, 0x40, i32, 6, 0x67, 0x47, |
| 869 0x3B, 0x6C, 0x3E, 0x40); |
| 870 TestRegAddrBaseScaledIndex(cmp, r14, r15, r8, 2, 0x40, i32, 6, 0x67, 0x47, |
| 871 0x3B, 0x74, 0x47, 0x40); |
| 872 TestRegAddrBaseScaledIndex(cmp, r15, r8, r11, 4, 0x40, i32, 6, 0x67, 0x47, |
| 873 0x3B, 0x7C, 0x98, 0x40); |
| 874 TestRegAddrBaseScaledIndex(cmp, r11, r9, r10, 8, 0x40, i32, 6, 0x67, 0x47, |
| 875 0x3B, 0x5C, 0xD1, 0x40); |
| 876 |
| 877 TestRegAddrBaseScaledIndex(cmp, eax, ecx, edx, 1, 0x40, i16, 6, 0x66, 0x67, |
| 878 0x3B, 0x44, 0x11, 0x40); |
| 879 TestRegAddrBaseScaledIndex(cmp, ecx, edx, ebx, 2, 0x40, i16, 6, 0x66, 0x67, |
| 880 0x3B, 0x4C, 0x5A, 0x40); |
| 881 TestRegAddrBaseScaledIndex(cmp, r8, r9, r10, 1, 0x40, i16, 7, 0x66, 0x67, |
| 882 0x47, 0x3B, 0x44, 0x11, 0x40); |
| 883 TestRegAddrBaseScaledIndex(cmp, r9, r10, r11, 2, 0x40, i16, 7, 0x66, 0x67, |
| 884 0x47, 0x3B, 0x4C, 0x5A, 0x40); |
| 885 // esp cannot be an scaled index. |
| 886 TestRegAddrBaseScaledIndex(cmp, ebx, esp, ebp, 4, 0x40, i16, 6, 0x66, 0x67, |
| 887 0x3B, 0x5C, 0xAC, 0x40); |
| 888 TestRegAddrBaseScaledIndex(cmp, esp, ebp, esi, 8, 0x40, i16, 6, 0x66, 0x67, |
| 889 0x3B, 0x64, 0xF5, 0x40); |
| 890 TestRegAddrBaseScaledIndex(cmp, ebp, esi, edi, 1, 0x40, i16, 6, 0x66, 0x67, |
| 891 0x3B, 0x6C, 0x3E, 0x40); |
| 892 TestRegAddrBaseScaledIndex(cmp, esi, edi, eax, 2, 0x40, i16, 6, 0x66, 0x67, |
| 893 0x3B, 0x74, 0x47, 0x40); |
| 894 TestRegAddrBaseScaledIndex(cmp, edi, eax, ebx, 4, 0x40, i16, 6, 0x66, 0x67, |
| 895 0x3B, 0x7C, 0x98, 0x40); |
| 896 TestRegAddrBaseScaledIndex(cmp, ebx, ecx, edx, 8, 0x40, i16, 6, 0x66, 0x67, |
| 897 0x3B, 0x5C, 0xD1, 0x40); |
| 898 TestRegAddrBaseScaledIndex(cmp, r11, r12, r13, 4, 0x40, i16, 7, 0x66, 0x67, |
| 899 0x47, 0x3B, 0x5C, 0xAC, 0x40); |
| 900 TestRegAddrBaseScaledIndex(cmp, r12, r13, r14, 8, 0x40, i16, 7, 0x66, 0x67, |
| 901 0x47, 0x3B, 0x64, 0xF5, 0x40); |
| 902 TestRegAddrBaseScaledIndex(cmp, r13, r14, r15, 1, 0x40, i16, 7, 0x66, 0x67, |
| 903 0x47, 0x3B, 0x6C, 0x3E, 0x40); |
| 904 TestRegAddrBaseScaledIndex(cmp, r14, r15, r8, 2, 0x40, i16, 7, 0x66, 0x67, |
| 905 0x47, 0x3B, 0x74, 0x47, 0x40); |
| 906 TestRegAddrBaseScaledIndex(cmp, r15, r8, r11, 4, 0x40, i16, 7, 0x66, 0x67, |
| 907 0x47, 0x3B, 0x7C, 0x98, 0x40); |
| 908 TestRegAddrBaseScaledIndex(cmp, r11, r9, r10, 8, 0x40, i16, 7, 0x66, 0x67, |
| 909 0x47, 0x3B, 0x5C, 0xD1, 0x40); |
| 910 |
| 911 TestRegAddrBaseScaledIndex(cmp, eax, ecx, edx, 1, 0x40, i8, 5, 0x67, 0x3A, |
863 0x44, 0x11, 0x40); | 912 0x44, 0x11, 0x40); |
864 TestRegAddrBaseScaledIndex(cmp, ecx, edx, ebx, 2, 0x40, i16, 5, 0x66, 0x3B, | 913 TestRegAddrBaseScaledIndex(cmp, ecx, edx, ebx, 2, 0x40, i8, 5, 0x67, 0x3A, |
865 0x4C, 0x5A, 0x40); | 914 0x4C, 0x5A, 0x40); |
866 TestRegAddrBaseScaledIndex(cmp, r8, r9, r10, 1, 0x40, i16, 6, 0x66, 0x47, | 915 TestRegAddrBaseScaledIndex(cmp, r8, r9, r10, 1, 0x40, i8, 6, 0x67, 0x47, 0x3A, |
867 0x3B, 0x44, 0x11, 0x40); | 916 0x44, 0x11, 0x40); |
868 TestRegAddrBaseScaledIndex(cmp, r9, r10, r11, 2, 0x40, i16, 6, 0x66, 0x47, | 917 TestRegAddrBaseScaledIndex(cmp, r9, r10, r11, 2, 0x40, i8, 6, 0x67, 0x47, |
869 0x3B, 0x4C, 0x5A, 0x40); | 918 0x3A, 0x4C, 0x5A, 0x40); |
870 // esp cannot be an scaled index. | 919 // esp cannot be an scaled index. |
871 TestRegAddrBaseScaledIndex(cmp, ebx, esp, ebp, 4, 0x40, i16, 5, 0x66, 0x3B, | 920 TestRegAddrBaseScaledIndex(cmp, ebx, esp, ebp, 4, 0x40, i8, 5, 0x67, 0x3A, |
872 0x5C, 0xAC, 0x40); | 921 0x5C, 0xAC, 0x40); |
873 TestRegAddrBaseScaledIndex(cmp, esp, ebp, esi, 8, 0x40, i16, 5, 0x66, 0x3B, | 922 TestRegAddrBaseScaledIndex(cmp, esp, ebp, esi, 8, 0x40, i8, 5, 0x67, 0x3A, |
874 0x64, 0xF5, 0x40); | 923 0x64, 0xF5, 0x40); |
875 TestRegAddrBaseScaledIndex(cmp, ebp, esi, edi, 1, 0x40, i16, 5, 0x66, 0x3B, | 924 TestRegAddrBaseScaledIndex(cmp, ebp, esi, edi, 1, 0x40, i8, 6, 0x67, 0x40, |
876 0x6C, 0x3E, 0x40); | 925 0x3A, 0x6C, 0x3E, 0x40); |
877 TestRegAddrBaseScaledIndex(cmp, esi, edi, eax, 2, 0x40, i16, 5, 0x66, 0x3B, | 926 TestRegAddrBaseScaledIndex(cmp, esi, edi, eax, 2, 0x40, i8, 6, 0x67, 0x40, |
878 0x74, 0x47, 0x40); | 927 0x3A, 0x74, 0x47, 0x40); |
879 TestRegAddrBaseScaledIndex(cmp, edi, eax, ebx, 4, 0x40, i16, 5, 0x66, 0x3B, | 928 TestRegAddrBaseScaledIndex(cmp, edi, eax, ebx, 4, 0x40, i8, 6, 0x67, 0x40, |
880 0x7C, 0x98, 0x40); | 929 0x3A, 0x7C, 0x98, 0x40); |
881 TestRegAddrBaseScaledIndex(cmp, ebx, ecx, edx, 8, 0x40, i16, 5, 0x66, 0x3B, | 930 TestRegAddrBaseScaledIndex(cmp, ebx, ecx, edx, 8, 0x40, i8, 5, 0x67, 0x3A, |
882 0x5C, 0xD1, 0x40); | 931 0x5C, 0xD1, 0x40); |
883 TestRegAddrBaseScaledIndex(cmp, r11, r12, r13, 4, 0x40, i16, 6, 0x66, 0x47, | 932 TestRegAddrBaseScaledIndex(cmp, r11, r12, r13, 4, 0x40, i8, 6, 0x67, 0x47, |
884 0x3B, 0x5C, 0xAC, 0x40); | 933 0x3A, 0x5C, 0xAC, 0x40); |
885 TestRegAddrBaseScaledIndex(cmp, r12, r13, r14, 8, 0x40, i16, 6, 0x66, 0x47, | 934 TestRegAddrBaseScaledIndex(cmp, r12, r13, r14, 8, 0x40, i8, 6, 0x67, 0x47, |
886 0x3B, 0x64, 0xF5, 0x40); | 935 0x3A, 0x64, 0xF5, 0x40); |
887 TestRegAddrBaseScaledIndex(cmp, r13, r14, r15, 1, 0x40, i16, 6, 0x66, 0x47, | 936 TestRegAddrBaseScaledIndex(cmp, r13, r14, r15, 1, 0x40, i8, 6, 0x67, 0x47, |
888 0x3B, 0x6C, 0x3E, 0x40); | 937 0x3A, 0x6C, 0x3E, 0x40); |
889 TestRegAddrBaseScaledIndex(cmp, r14, r15, r8, 2, 0x40, i16, 6, 0x66, 0x47, | 938 TestRegAddrBaseScaledIndex(cmp, r14, r15, r8, 2, 0x40, i8, 6, 0x67, 0x47, |
890 0x3B, 0x74, 0x47, 0x40); | 939 0x3A, 0x74, 0x47, 0x40); |
891 TestRegAddrBaseScaledIndex(cmp, r15, r8, r11, 4, 0x40, i16, 6, 0x66, 0x47, | 940 TestRegAddrBaseScaledIndex(cmp, r15, r8, r11, 4, 0x40, i8, 6, 0x67, 0x47, |
892 0x3B, 0x7C, 0x98, 0x40); | 941 0x3A, 0x7C, 0x98, 0x40); |
893 TestRegAddrBaseScaledIndex(cmp, r11, r9, r10, 8, 0x40, i16, 6, 0x66, 0x47, | 942 TestRegAddrBaseScaledIndex(cmp, r11, r9, r10, 8, 0x40, i8, 6, 0x67, 0x47, |
894 0x3B, 0x5C, 0xD1, 0x40); | 943 0x3A, 0x5C, 0xD1, 0x40); |
895 | |
896 TestRegAddrBaseScaledIndex(cmp, eax, ecx, edx, 1, 0x40, i8, 4, 0x3A, 0x44, | |
897 0x11, 0x40); | |
898 TestRegAddrBaseScaledIndex(cmp, ecx, edx, ebx, 2, 0x40, i8, 4, 0x3A, 0x4C, | |
899 0x5A, 0x40); | |
900 TestRegAddrBaseScaledIndex(cmp, r8, r9, r10, 1, 0x40, i8, 5, 0x47, 0x3A, 0x44, | |
901 0x11, 0x40); | |
902 TestRegAddrBaseScaledIndex(cmp, r9, r10, r11, 2, 0x40, i8, 5, 0x47, 0x3A, | |
903 0x4C, 0x5A, 0x40); | |
904 // esp cannot be an scaled index. | |
905 TestRegAddrBaseScaledIndex(cmp, ebx, esp, ebp, 4, 0x40, i8, 4, 0x3A, 0x5C, | |
906 0xAC, 0x40); | |
907 TestRegAddrBaseScaledIndex(cmp, esp, ebp, esi, 8, 0x40, i8, 5, 0x40, 0x3A, | |
908 0x64, 0xF5, 0x40); | |
909 TestRegAddrBaseScaledIndex(cmp, ebp, esi, edi, 1, 0x40, i8, 5, 0x40, 0x3A, | |
910 0x6C, 0x3E, 0x40); | |
911 TestRegAddrBaseScaledIndex(cmp, esi, edi, eax, 2, 0x40, i8, 5, 0x40, 0x3A, | |
912 0x74, 0x47, 0x40); | |
913 TestRegAddrBaseScaledIndex(cmp, edi, eax, ebx, 4, 0x40, i8, 5, 0x40, 0x3A, | |
914 0x7C, 0x98, 0x40); | |
915 TestRegAddrBaseScaledIndex(cmp, ebx, ecx, edx, 8, 0x40, i8, 4, 0x3A, 0x5C, | |
916 0xD1, 0x40); | |
917 TestRegAddrBaseScaledIndex(cmp, r11, r12, r13, 4, 0x40, i8, 5, 0x47, 0x3A, | |
918 0x5C, 0xAC, 0x40); | |
919 TestRegAddrBaseScaledIndex(cmp, r12, r13, r14, 8, 0x40, i8, 5, 0x47, 0x3A, | |
920 0x64, 0xF5, 0x40); | |
921 TestRegAddrBaseScaledIndex(cmp, r13, r14, r15, 1, 0x40, i8, 5, 0x47, 0x3A, | |
922 0x6C, 0x3E, 0x40); | |
923 TestRegAddrBaseScaledIndex(cmp, r14, r15, r8, 2, 0x40, i8, 5, 0x47, 0x3A, | |
924 0x74, 0x47, 0x40); | |
925 TestRegAddrBaseScaledIndex(cmp, r15, r8, r11, 4, 0x40, i8, 5, 0x47, 0x3A, | |
926 0x7C, 0x98, 0x40); | |
927 TestRegAddrBaseScaledIndex(cmp, r11, r9, r10, 8, 0x40, i8, 5, 0x47, 0x3A, | |
928 0x5C, 0xD1, 0x40); | |
929 | 944 |
930 /* cmp GPR, Imm32(Base,Index,Scale) */ | 945 /* cmp GPR, Imm32(Base,Index,Scale) */ |
931 TestRegAddrBaseScaledIndex(cmp, eax, ecx, edx, 1, 0xF0, i32, 7, 0x3B, 0x84, | 946 TestRegAddrBaseScaledIndex(cmp, eax, ecx, edx, 1, 0xF0, i32, 8, 0x67, 0x3B, |
932 0x11, 0xF0, 0x00, 0x00, 0x00); | |
933 TestRegAddrBaseScaledIndex(cmp, ecx, edx, ebx, 2, 0xF0, i32, 7, 0x3B, 0x8C, | |
934 0x5A, 0xF0, 0x00, 0x00, 0x00); | |
935 TestRegAddrBaseScaledIndex(cmp, r8, r9, r10, 1, 0xF0, i32, 8, 0x47, 0x3B, | |
936 0x84, 0x11, 0xF0, 0x00, 0x00, 0x00); | 947 0x84, 0x11, 0xF0, 0x00, 0x00, 0x00); |
937 TestRegAddrBaseScaledIndex(cmp, r9, r10, r11, 2, 0xF0, i32, 8, 0x47, 0x3B, | 948 TestRegAddrBaseScaledIndex(cmp, ecx, edx, ebx, 2, 0xF0, i32, 8, 0x67, 0x3B, |
938 0x8C, 0x5A, 0xF0, 0x00, 0x00, 0x00); | 949 0x8C, 0x5A, 0xF0, 0x00, 0x00, 0x00); |
939 // esp cannot be an scaled index. | 950 TestRegAddrBaseScaledIndex(cmp, r8, r9, r10, 1, 0xF0, i32, 9, 0x67, 0x47, |
940 TestRegAddrBaseScaledIndex(cmp, ebx, esp, ebp, 4, 0xF0, i32, 7, 0x3B, 0x9C, | 951 0x3B, 0x84, 0x11, 0xF0, 0x00, 0x00, 0x00); |
941 0xAC, 0xF0, 0x00, 0x00, 0x00); | 952 TestRegAddrBaseScaledIndex(cmp, r9, r10, r11, 2, 0xF0, i32, 9, 0x67, 0x47, |
942 TestRegAddrBaseScaledIndex(cmp, esp, ebp, esi, 8, 0xF0, i32, 7, 0x3B, 0xA4, | 953 0x3B, 0x8C, 0x5A, 0xF0, 0x00, 0x00, 0x00); |
943 0xF5, 0xF0, 0x00, 0x00, 0x00); | 954 // esp cannot be an scaled index. |
944 TestRegAddrBaseScaledIndex(cmp, ebp, esi, edi, 1, 0xF0, i32, 7, 0x3B, 0xAC, | 955 TestRegAddrBaseScaledIndex(cmp, ebx, esp, ebp, 4, 0xF0, i32, 8, 0x67, 0x3B, |
945 0x3E, 0xF0, 0x00, 0x00, 0x00); | |
946 TestRegAddrBaseScaledIndex(cmp, esi, edi, eax, 2, 0xF0, i32, 7, 0x3B, 0xB4, | |
947 0x47, 0xF0, 0x00, 0x00, 0x00); | |
948 TestRegAddrBaseScaledIndex(cmp, edi, eax, ebx, 4, 0xF0, i32, 7, 0x3B, 0xBC, | |
949 0x98, 0xF0, 0x00, 0x00, 0x00); | |
950 TestRegAddrBaseScaledIndex(cmp, ebx, ecx, edx, 8, 0xF0, i32, 7, 0x3B, 0x9C, | |
951 0xD1, 0xF0, 0x00, 0x00, 0x00); | |
952 TestRegAddrBaseScaledIndex(cmp, r11, r12, r13, 4, 0xF0, i32, 8, 0x47, 0x3B, | |
953 0x9C, 0xAC, 0xF0, 0x00, 0x00, 0x00); | 956 0x9C, 0xAC, 0xF0, 0x00, 0x00, 0x00); |
954 TestRegAddrBaseScaledIndex(cmp, r12, r13, r14, 8, 0xF0, i32, 8, 0x47, 0x3B, | 957 TestRegAddrBaseScaledIndex(cmp, esp, ebp, esi, 8, 0xF0, i32, 8, 0x67, 0x3B, |
955 0xA4, 0xF5, 0xF0, 0x00, 0x00, 0x00); | 958 0xA4, 0xF5, 0xF0, 0x00, 0x00, 0x00); |
956 TestRegAddrBaseScaledIndex(cmp, r13, r14, r15, 1, 0xF0, i32, 8, 0x47, 0x3B, | 959 TestRegAddrBaseScaledIndex(cmp, ebp, esi, edi, 1, 0xF0, i32, 8, 0x67, 0x3B, |
957 0xAC, 0x3E, 0xF0, 0x00, 0x00, 0x00); | 960 0xAC, 0x3E, 0xF0, 0x00, 0x00, 0x00); |
958 TestRegAddrBaseScaledIndex(cmp, r14, r15, r8, 2, 0xF0, i32, 8, 0x47, 0x3B, | 961 TestRegAddrBaseScaledIndex(cmp, esi, edi, eax, 2, 0xF0, i32, 8, 0x67, 0x3B, |
959 0xB4, 0x47, 0xF0, 0x00, 0x00, 0x00); | 962 0xB4, 0x47, 0xF0, 0x00, 0x00, 0x00); |
960 TestRegAddrBaseScaledIndex(cmp, r15, r8, r11, 4, 0xF0, i32, 8, 0x47, 0x3B, | 963 TestRegAddrBaseScaledIndex(cmp, edi, eax, ebx, 4, 0xF0, i32, 8, 0x67, 0x3B, |
961 0xBC, 0x98, 0xF0, 0x00, 0x00, 0x00); | 964 0xBC, 0x98, 0xF0, 0x00, 0x00, 0x00); |
962 TestRegAddrBaseScaledIndex(cmp, r11, r9, r10, 8, 0xF0, i32, 8, 0x47, 0x3B, | 965 TestRegAddrBaseScaledIndex(cmp, ebx, ecx, edx, 8, 0xF0, i32, 8, 0x67, 0x3B, |
963 0x9C, 0xD1, 0xF0, 0x00, 0x00, 0x00); | 966 0x9C, 0xD1, 0xF0, 0x00, 0x00, 0x00); |
964 | 967 TestRegAddrBaseScaledIndex(cmp, r11, r12, r13, 4, 0xF0, i32, 9, 0x67, 0x47, |
965 TestRegAddrBaseScaledIndex(cmp, eax, ecx, edx, 1, 0xF0, i16, 8, 0x66, 0x3B, | 968 0x3B, 0x9C, 0xAC, 0xF0, 0x00, 0x00, 0x00); |
| 969 TestRegAddrBaseScaledIndex(cmp, r12, r13, r14, 8, 0xF0, i32, 9, 0x67, 0x47, |
| 970 0x3B, 0xA4, 0xF5, 0xF0, 0x00, 0x00, 0x00); |
| 971 TestRegAddrBaseScaledIndex(cmp, r13, r14, r15, 1, 0xF0, i32, 9, 0x67, 0x47, |
| 972 0x3B, 0xAC, 0x3E, 0xF0, 0x00, 0x00, 0x00); |
| 973 TestRegAddrBaseScaledIndex(cmp, r14, r15, r8, 2, 0xF0, i32, 9, 0x67, 0x47, |
| 974 0x3B, 0xB4, 0x47, 0xF0, 0x00, 0x00, 0x00); |
| 975 TestRegAddrBaseScaledIndex(cmp, r15, r8, r11, 4, 0xF0, i32, 9, 0x67, 0x47, |
| 976 0x3B, 0xBC, 0x98, 0xF0, 0x00, 0x00, 0x00); |
| 977 TestRegAddrBaseScaledIndex(cmp, r11, r9, r10, 8, 0xF0, i32, 9, 0x67, 0x47, |
| 978 0x3B, 0x9C, 0xD1, 0xF0, 0x00, 0x00, 0x00); |
| 979 |
| 980 TestRegAddrBaseScaledIndex(cmp, eax, ecx, edx, 1, 0xF0, i16, 9, 0x66, 0x67, |
| 981 0x3B, 0x84, 0x11, 0xF0, 0x00, 0x00, 0x00); |
| 982 TestRegAddrBaseScaledIndex(cmp, ecx, edx, ebx, 2, 0xF0, i16, 9, 0x66, 0x67, |
| 983 0x3B, 0x8C, 0x5A, 0xF0, 0x00, 0x00, 0x00); |
| 984 TestRegAddrBaseScaledIndex(cmp, r8, r9, r10, 1, 0xF0, i16, 10, 0x66, 0x67, |
| 985 0x47, 0x3B, 0x84, 0x11, 0xF0, 0x00, 0x00, 0x00); |
| 986 TestRegAddrBaseScaledIndex(cmp, r9, r10, r11, 2, 0xF0, i16, 10, 0x66, 0x67, |
| 987 0x47, 0x3B, 0x8C, 0x5A, 0xF0, 0x00, 0x00, 0x00); |
| 988 // esp cannot be an scaled index. |
| 989 TestRegAddrBaseScaledIndex(cmp, ebx, esp, ebp, 4, 0xF0, i16, 9, 0x66, 0x67, |
| 990 0x3B, 0x9C, 0xAC, 0xF0, 0x00, 0x00, 0x00); |
| 991 TestRegAddrBaseScaledIndex(cmp, esp, ebp, esi, 8, 0xF0, i16, 9, 0x66, 0x67, |
| 992 0x3B, 0xA4, 0xF5, 0xF0, 0x00, 0x00, 0x00); |
| 993 TestRegAddrBaseScaledIndex(cmp, ebp, esi, edi, 1, 0xF0, i16, 9, 0x66, 0x67, |
| 994 0x3B, 0xAC, 0x3E, 0xF0, 0x00, 0x00, 0x00); |
| 995 TestRegAddrBaseScaledIndex(cmp, esi, edi, eax, 2, 0xF0, i16, 9, 0x66, 0x67, |
| 996 0x3B, 0xB4, 0x47, 0xF0, 0x00, 0x00, 0x00); |
| 997 TestRegAddrBaseScaledIndex(cmp, edi, eax, ebx, 4, 0xF0, i16, 9, 0x66, 0x67, |
| 998 0x3B, 0xBC, 0x98, 0xF0, 0x00, 0x00, 0x00); |
| 999 TestRegAddrBaseScaledIndex(cmp, ebx, ecx, edx, 8, 0xF0, i16, 9, 0x66, 0x67, |
| 1000 0x3B, 0x9C, 0xD1, 0xF0, 0x00, 0x00, 0x00); |
| 1001 TestRegAddrBaseScaledIndex(cmp, r11, r12, r13, 4, 0xF0, i16, 10, 0x66, 0x67, |
| 1002 0x47, 0x3B, 0x9C, 0xAC, 0xF0, 0x00, 0x00, 0x00); |
| 1003 TestRegAddrBaseScaledIndex(cmp, r12, r13, r14, 8, 0xF0, i16, 10, 0x66, 0x67, |
| 1004 0x47, 0x3B, 0xA4, 0xF5, 0xF0, 0x00, 0x00, 0x00); |
| 1005 TestRegAddrBaseScaledIndex(cmp, r13, r14, r15, 1, 0xF0, i16, 10, 0x66, 0x67, |
| 1006 0x47, 0x3B, 0xAC, 0x3E, 0xF0, 0x00, 0x00, 0x00); |
| 1007 TestRegAddrBaseScaledIndex(cmp, r14, r15, r8, 2, 0xF0, i16, 10, 0x66, 0x67, |
| 1008 0x47, 0x3B, 0xB4, 0x47, 0xF0, 0x00, 0x00, 0x00); |
| 1009 TestRegAddrBaseScaledIndex(cmp, r15, r8, r11, 4, 0xF0, i16, 10, 0x66, 0x67, |
| 1010 0x47, 0x3B, 0xBC, 0x98, 0xF0, 0x00, 0x00, 0x00); |
| 1011 TestRegAddrBaseScaledIndex(cmp, r11, r9, r10, 8, 0xF0, i16, 10, 0x66, 0x67, |
| 1012 0x47, 0x3B, 0x9C, 0xD1, 0xF0, 0x00, 0x00, 0x00); |
| 1013 |
| 1014 TestRegAddrBaseScaledIndex(cmp, eax, ecx, edx, 1, 0xF0, i8, 8, 0x67, 0x3A, |
966 0x84, 0x11, 0xF0, 0x00, 0x00, 0x00); | 1015 0x84, 0x11, 0xF0, 0x00, 0x00, 0x00); |
967 TestRegAddrBaseScaledIndex(cmp, ecx, edx, ebx, 2, 0xF0, i16, 8, 0x66, 0x3B, | 1016 TestRegAddrBaseScaledIndex(cmp, ecx, edx, ebx, 2, 0xF0, i8, 8, 0x67, 0x3A, |
968 0x8C, 0x5A, 0xF0, 0x00, 0x00, 0x00); | 1017 0x8C, 0x5A, 0xF0, 0x00, 0x00, 0x00); |
969 TestRegAddrBaseScaledIndex(cmp, r8, r9, r10, 1, 0xF0, i16, 9, 0x66, 0x47, | 1018 TestRegAddrBaseScaledIndex(cmp, r8, r9, r10, 1, 0xF0, i8, 9, 0x67, 0x47, 0x3A, |
970 0x3B, 0x84, 0x11, 0xF0, 0x00, 0x00, 0x00); | 1019 0x84, 0x11, 0xF0, 0x00, 0x00, 0x00); |
971 TestRegAddrBaseScaledIndex(cmp, r9, r10, r11, 2, 0xF0, i16, 9, 0x66, 0x47, | 1020 TestRegAddrBaseScaledIndex(cmp, r9, r10, r11, 2, 0xF0, i8, 9, 0x67, 0x47, |
972 0x3B, 0x8C, 0x5A, 0xF0, 0x00, 0x00, 0x00); | 1021 0x3A, 0x8C, 0x5A, 0xF0, 0x00, 0x00, 0x00); |
973 // esp cannot be an scaled index. | 1022 // esp cannot be an scaled index. |
974 TestRegAddrBaseScaledIndex(cmp, ebx, esp, ebp, 4, 0xF0, i16, 8, 0x66, 0x3B, | 1023 TestRegAddrBaseScaledIndex(cmp, ebx, esp, ebp, 4, 0xF0, i8, 8, 0x67, 0x3A, |
975 0x9C, 0xAC, 0xF0, 0x00, 0x00, 0x00); | 1024 0x9C, 0xAC, 0xF0, 0x00, 0x00, 0x00); |
976 TestRegAddrBaseScaledIndex(cmp, esp, ebp, esi, 8, 0xF0, i16, 8, 0x66, 0x3B, | 1025 TestRegAddrBaseScaledIndex(cmp, esp, ebp, esi, 8, 0xF0, i8, 8, 0x67, 0x3A, |
977 0xA4, 0xF5, 0xF0, 0x00, 0x00, 0x00); | 1026 0xA4, 0xF5, 0xF0, 0x00, 0x00, 0x00); |
978 TestRegAddrBaseScaledIndex(cmp, ebp, esi, edi, 1, 0xF0, i16, 8, 0x66, 0x3B, | 1027 TestRegAddrBaseScaledIndex(cmp, ebp, esi, edi, 1, 0xF0, i8, 9, 0x67, 0x40, |
979 0xAC, 0x3E, 0xF0, 0x00, 0x00, 0x00); | 1028 0x3A, 0xAC, 0x3E, 0xF0, 0x00, 0x00, 0x00); |
980 TestRegAddrBaseScaledIndex(cmp, esi, edi, eax, 2, 0xF0, i16, 8, 0x66, 0x3B, | 1029 TestRegAddrBaseScaledIndex(cmp, esi, edi, eax, 2, 0xF0, i8, 9, 0x67, 0x40, |
981 0xB4, 0x47, 0xF0, 0x00, 0x00, 0x00); | 1030 0x3A, 0xB4, 0x47, 0xF0, 0x00, 0x00, 0x00); |
982 TestRegAddrBaseScaledIndex(cmp, edi, eax, ebx, 4, 0xF0, i16, 8, 0x66, 0x3B, | 1031 TestRegAddrBaseScaledIndex(cmp, edi, eax, ebx, 4, 0xF0, i8, 9, 0x67, 0x40, |
983 0xBC, 0x98, 0xF0, 0x00, 0x00, 0x00); | 1032 0x3A, 0xBC, 0x98, 0xF0, 0x00, 0x00, 0x00); |
984 TestRegAddrBaseScaledIndex(cmp, ebx, ecx, edx, 8, 0xF0, i16, 8, 0x66, 0x3B, | 1033 TestRegAddrBaseScaledIndex(cmp, ebx, ecx, edx, 8, 0xF0, i8, 8, 0x67, 0x3A, |
985 0x9C, 0xD1, 0xF0, 0x00, 0x00, 0x00); | 1034 0x9C, 0xD1, 0xF0, 0x00, 0x00, 0x00); |
986 TestRegAddrBaseScaledIndex(cmp, r11, r12, r13, 4, 0xF0, i16, 9, 0x66, 0x47, | 1035 TestRegAddrBaseScaledIndex(cmp, r11, r12, r13, 4, 0xF0, i8, 9, 0x67, 0x47, |
987 0x3B, 0x9C, 0xAC, 0xF0, 0x00, 0x00, 0x00); | 1036 0x3A, 0x9C, 0xAC, 0xF0, 0x00, 0x00, 0x00); |
988 TestRegAddrBaseScaledIndex(cmp, r12, r13, r14, 8, 0xF0, i16, 9, 0x66, 0x47, | 1037 TestRegAddrBaseScaledIndex(cmp, r12, r13, r14, 8, 0xF0, i8, 9, 0x67, 0x47, |
989 0x3B, 0xA4, 0xF5, 0xF0, 0x00, 0x00, 0x00); | 1038 0x3A, 0xA4, 0xF5, 0xF0, 0x00, 0x00, 0x00); |
990 TestRegAddrBaseScaledIndex(cmp, r13, r14, r15, 1, 0xF0, i16, 9, 0x66, 0x47, | 1039 TestRegAddrBaseScaledIndex(cmp, r13, r14, r15, 1, 0xF0, i8, 9, 0x67, 0x47, |
991 0x3B, 0xAC, 0x3E, 0xF0, 0x00, 0x00, 0x00); | 1040 0x3A, 0xAC, 0x3E, 0xF0, 0x00, 0x00, 0x00); |
992 TestRegAddrBaseScaledIndex(cmp, r14, r15, r8, 2, 0xF0, i16, 9, 0x66, 0x47, | 1041 TestRegAddrBaseScaledIndex(cmp, r14, r15, r8, 2, 0xF0, i8, 9, 0x67, 0x47, |
993 0x3B, 0xB4, 0x47, 0xF0, 0x00, 0x00, 0x00); | 1042 0x3A, 0xB4, 0x47, 0xF0, 0x00, 0x00, 0x00); |
994 TestRegAddrBaseScaledIndex(cmp, r15, r8, r11, 4, 0xF0, i16, 9, 0x66, 0x47, | 1043 TestRegAddrBaseScaledIndex(cmp, r15, r8, r11, 4, 0xF0, i8, 9, 0x67, 0x47, |
995 0x3B, 0xBC, 0x98, 0xF0, 0x00, 0x00, 0x00); | 1044 0x3A, 0xBC, 0x98, 0xF0, 0x00, 0x00, 0x00); |
996 TestRegAddrBaseScaledIndex(cmp, r11, r9, r10, 8, 0xF0, i16, 9, 0x66, 0x47, | 1045 TestRegAddrBaseScaledIndex(cmp, r11, r9, r10, 8, 0xF0, i8, 9, 0x67, 0x47, |
997 0x3B, 0x9C, 0xD1, 0xF0, 0x00, 0x00, 0x00); | 1046 0x3A, 0x9C, 0xD1, 0xF0, 0x00, 0x00, 0x00); |
998 | |
999 TestRegAddrBaseScaledIndex(cmp, eax, ecx, edx, 1, 0xF0, i8, 7, 0x3A, 0x84, | |
1000 0x11, 0xF0, 0x00, 0x00, 0x00); | |
1001 TestRegAddrBaseScaledIndex(cmp, ecx, edx, ebx, 2, 0xF0, i8, 7, 0x3A, 0x8C, | |
1002 0x5A, 0xF0, 0x00, 0x00, 0x00); | |
1003 TestRegAddrBaseScaledIndex(cmp, r8, r9, r10, 1, 0xF0, i8, 8, 0x47, 0x3A, 0x84, | |
1004 0x11, 0xF0, 0x00, 0x00, 0x00); | |
1005 TestRegAddrBaseScaledIndex(cmp, r9, r10, r11, 2, 0xF0, i8, 8, 0x47, 0x3A, | |
1006 0x8C, 0x5A, 0xF0, 0x00, 0x00, 0x00); | |
1007 // esp cannot be an scaled index. | |
1008 TestRegAddrBaseScaledIndex(cmp, ebx, esp, ebp, 4, 0xF0, i8, 7, 0x3A, 0x9C, | |
1009 0xAC, 0xF0, 0x00, 0x00, 0x00); | |
1010 TestRegAddrBaseScaledIndex(cmp, esp, ebp, esi, 8, 0xF0, i8, 8, 0x40, 0x3A, | |
1011 0xA4, 0xF5, 0xF0, 0x00, 0x00, 0x00); | |
1012 TestRegAddrBaseScaledIndex(cmp, ebp, esi, edi, 1, 0xF0, i8, 8, 0x40, 0x3A, | |
1013 0xAC, 0x3E, 0xF0, 0x00, 0x00, 0x00); | |
1014 TestRegAddrBaseScaledIndex(cmp, esi, edi, eax, 2, 0xF0, i8, 8, 0x40, 0x3A, | |
1015 0xB4, 0x47, 0xF0, 0x00, 0x00, 0x00); | |
1016 TestRegAddrBaseScaledIndex(cmp, edi, eax, ebx, 4, 0xF0, i8, 8, 0x40, 0x3A, | |
1017 0xBC, 0x98, 0xF0, 0x00, 0x00, 0x00); | |
1018 TestRegAddrBaseScaledIndex(cmp, ebx, ecx, edx, 8, 0xF0, i8, 7, 0x3A, 0x9C, | |
1019 0xD1, 0xF0, 0x00, 0x00, 0x00); | |
1020 TestRegAddrBaseScaledIndex(cmp, r11, r12, r13, 4, 0xF0, i8, 8, 0x47, 0x3A, | |
1021 0x9C, 0xAC, 0xF0, 0x00, 0x00, 0x00); | |
1022 TestRegAddrBaseScaledIndex(cmp, r12, r13, r14, 8, 0xF0, i8, 8, 0x47, 0x3A, | |
1023 0xA4, 0xF5, 0xF0, 0x00, 0x00, 0x00); | |
1024 TestRegAddrBaseScaledIndex(cmp, r13, r14, r15, 1, 0xF0, i8, 8, 0x47, 0x3A, | |
1025 0xAC, 0x3E, 0xF0, 0x00, 0x00, 0x00); | |
1026 TestRegAddrBaseScaledIndex(cmp, r14, r15, r8, 2, 0xF0, i8, 8, 0x47, 0x3A, | |
1027 0xB4, 0x47, 0xF0, 0x00, 0x00, 0x00); | |
1028 TestRegAddrBaseScaledIndex(cmp, r15, r8, r11, 4, 0xF0, i8, 8, 0x47, 0x3A, | |
1029 0xBC, 0x98, 0xF0, 0x00, 0x00, 0x00); | |
1030 TestRegAddrBaseScaledIndex(cmp, r11, r9, r10, 8, 0xF0, i8, 8, 0x47, 0x3A, | |
1031 0x9C, 0xD1, 0xF0, 0x00, 0x00, 0x00); | |
1032 | 1047 |
1033 /* cmp Addr, Imm */ | 1048 /* cmp Addr, Imm */ |
1034 // Note: at this point we trust the assembler knows how to encode addresses, | 1049 // Note: at this point we trust the assembler knows how to encode addresses, |
1035 // so no more exhaustive addressing mode testing. | 1050 // so no more exhaustive addressing mode testing. |
1036 TestAddrBaseScaledIndexImm(cmp, eax, ecx, 1, 0xF0, 0x12, i32, 8, 0x83, 0xBC, | 1051 TestAddrBaseScaledIndexImm(cmp, eax, ecx, 1, 0xF0, 0x12, i32, 9, 0x67, 0x83, |
1037 0x08, 0xF0, 0x00, 0x00, 0x00, 0x12); | |
1038 TestAddrBaseScaledIndexImm(cmp, ecx, edx, 1, 0xF0, 0xF0, i32, 11, 0x81, 0xBC, | |
1039 0x11, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, | |
1040 0x00); | |
1041 TestAddrBaseScaledIndexImm(cmp, r8, r9, 1, 0xF0, 0x12, i32, 9, 0x43, 0x83, | |
1042 0xBC, 0x08, 0xF0, 0x00, 0x00, 0x00, 0x12); | 1052 0xBC, 0x08, 0xF0, 0x00, 0x00, 0x00, 0x12); |
1043 TestAddrBaseScaledIndexImm(cmp, r9, r10, 1, 0xF0, 0xF0, i32, 12, 0x43, 0x81, | 1053 TestAddrBaseScaledIndexImm(cmp, ecx, edx, 1, 0xF0, 0xF0, i32, 12, 0x67, 0x81, |
1044 0xBC, 0x11, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, | 1054 0xBC, 0x11, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, |
1045 0x00, 0x00); | 1055 0x00, 0x00); |
1046 | 1056 TestAddrBaseScaledIndexImm(cmp, r8, r9, 1, 0xF0, 0x12, i32, 10, 0x67, 0x43, |
1047 TestAddrBaseScaledIndexImm(cmp, eax, ecx, 1, 0xF0, 0x12, i16, 9, 0x66, 0x83, | |
1048 0xBC, 0x08, 0xF0, 0x00, 0x00, 0x00, 0x12); | |
1049 TestAddrBaseScaledIndexImm(cmp, ecx, edx, 1, 0xF0, 0xF0, i16, 10, 0x66, 0x81, | |
1050 0xBC, 0x11, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00); | |
1051 TestAddrBaseScaledIndexImm(cmp, r8, r9, 1, 0xF0, 0x12, i16, 10, 0x66, 0x43, | |
1052 0x83, 0xBC, 0x08, 0xF0, 0x00, 0x00, 0x00, 0x12); | 1057 0x83, 0xBC, 0x08, 0xF0, 0x00, 0x00, 0x00, 0x12); |
1053 TestAddrBaseScaledIndexImm(cmp, r9, r10, 1, 0xF0, 0xF0, i16, 11, 0x66, 0x43, | 1058 TestAddrBaseScaledIndexImm(cmp, r9, r10, 1, 0xF0, 0xF0, i32, 13, 0x67, 0x43, |
| 1059 0x81, 0xBC, 0x11, 0xF0, 0x00, 0x00, 0x00, 0xF0, |
| 1060 0x00, 0x00, 0x00); |
| 1061 |
| 1062 TestAddrBaseScaledIndexImm(cmp, eax, ecx, 1, 0xF0, 0x12, i16, 10, 0x66, 0x67, |
| 1063 0x83, 0xBC, 0x08, 0xF0, 0x00, 0x00, 0x00, 0x12); |
| 1064 TestAddrBaseScaledIndexImm(cmp, ecx, edx, 1, 0xF0, 0xF0, i16, 11, 0x66, 0x67, |
1054 0x81, 0xBC, 0x11, 0xF0, 0x00, 0x00, 0x00, 0xF0, | 1065 0x81, 0xBC, 0x11, 0xF0, 0x00, 0x00, 0x00, 0xF0, |
1055 0x00); | 1066 0x00); |
1056 | 1067 TestAddrBaseScaledIndexImm(cmp, r8, r9, 1, 0xF0, 0x12, i16, 11, 0x66, 0x67, |
1057 TestAddrBaseScaledIndexImm(cmp, eax, ecx, 1, 0xF0, 0x12, i8, 8, 0x80, 0xBC, | 1068 0x43, 0x83, 0xBC, 0x08, 0xF0, 0x00, 0x00, 0x00, |
1058 0x08, 0xF0, 0x00, 0x00, 0x00, 0x12); | 1069 0x12); |
1059 TestAddrBaseScaledIndexImm(cmp, r8, r9, 1, 0xF0, 0x12, i8, 9, 0x43, 0x80, | 1070 TestAddrBaseScaledIndexImm(cmp, r9, r10, 1, 0xF0, 0xF0, i16, 12, 0x66, 0x67, |
| 1071 0x43, 0x81, 0xBC, 0x11, 0xF0, 0x00, 0x00, 0x00, |
| 1072 0xF0, 0x00); |
| 1073 |
| 1074 TestAddrBaseScaledIndexImm(cmp, eax, ecx, 1, 0xF0, 0x12, i8, 9, 0x67, 0x80, |
1060 0xBC, 0x08, 0xF0, 0x00, 0x00, 0x00, 0x12); | 1075 0xBC, 0x08, 0xF0, 0x00, 0x00, 0x00, 0x12); |
| 1076 TestAddrBaseScaledIndexImm(cmp, r8, r9, 1, 0xF0, 0x12, i8, 10, 0x67, 0x43, |
| 1077 0x80, 0xBC, 0x08, 0xF0, 0x00, 0x00, 0x00, 0x12); |
1061 | 1078 |
1062 /* cmp Addr, GPR */ | 1079 /* cmp Addr, GPR */ |
1063 TestAddrBaseScaledIndexReg(cmp, eax, ecx, 1, 0xF0, edx, i32, 7, 0x39, 0x94, | 1080 TestAddrBaseScaledIndexReg(cmp, eax, ecx, 1, 0xF0, edx, i32, 8, 0x67, 0x39, |
1064 0x08, 0xF0, 0x00, 0x00, 0x00); | |
1065 TestAddrBaseScaledIndexReg(cmp, r8, r9, 1, 0xF0, r10, i32, 8, 0x47, 0x39, | |
1066 0x94, 0x08, 0xF0, 0x00, 0x00, 0x00); | 1081 0x94, 0x08, 0xF0, 0x00, 0x00, 0x00); |
1067 | 1082 TestAddrBaseScaledIndexReg(cmp, r8, r9, 1, 0xF0, r10, i32, 9, 0x67, 0x47, |
1068 TestAddrBaseScaledIndexReg(cmp, eax, ecx, 1, 0xF0, edx, i16, 8, 0x66, 0x39, | 1083 0x39, 0x94, 0x08, 0xF0, 0x00, 0x00, 0x00); |
| 1084 |
| 1085 TestAddrBaseScaledIndexReg(cmp, eax, ecx, 1, 0xF0, edx, i16, 9, 0x66, 0x67, |
| 1086 0x39, 0x94, 0x08, 0xF0, 0x00, 0x00, 0x00); |
| 1087 TestAddrBaseScaledIndexReg(cmp, r8, r9, 1, 0xF0, r10, i16, 10, 0x66, 0x67, |
| 1088 0x47, 0x39, 0x94, 0x08, 0xF0, 0x00, 0x00, 0x00); |
| 1089 |
| 1090 TestAddrBaseScaledIndexReg(cmp, eax, ecx, 1, 0xF0, edx, i8, 8, 0x67, 0x38, |
1069 0x94, 0x08, 0xF0, 0x00, 0x00, 0x00); | 1091 0x94, 0x08, 0xF0, 0x00, 0x00, 0x00); |
1070 TestAddrBaseScaledIndexReg(cmp, r8, r9, 1, 0xF0, r10, i16, 9, 0x66, 0x47, | 1092 TestAddrBaseScaledIndexReg(cmp, r8, r9, 1, 0xF0, r10, i8, 9, 0x67, 0x47, 0x38, |
1071 0x39, 0x94, 0x08, 0xF0, 0x00, 0x00, 0x00); | 1093 0x94, 0x08, 0xF0, 0x00, 0x00, 0x00); |
1072 | |
1073 TestAddrBaseScaledIndexReg(cmp, eax, ecx, 1, 0xF0, edx, i8, 7, 0x38, 0x94, | |
1074 0x08, 0xF0, 0x00, 0x00, 0x00); | |
1075 TestAddrBaseScaledIndexReg(cmp, r8, r9, 1, 0xF0, r10, i8, 8, 0x47, 0x38, 0x94, | |
1076 0x08, 0xF0, 0x00, 0x00, 0x00); | |
1077 | 1094 |
1078 #undef TestAddrBaseScaledIndexReg | 1095 #undef TestAddrBaseScaledIndexReg |
1079 #undef TestAddrBaseScaledIndexImm | 1096 #undef TestAddrBaseScaledIndexImm |
1080 #undef TestRegAddrBaseScaledIndex | 1097 #undef TestRegAddrBaseScaledIndex |
1081 #undef TestRegAddrScaledIndex | 1098 #undef TestRegAddrScaledIndex |
1082 #undef TestRegAddrBase | 1099 #undef TestRegAddrBase |
1083 #undef TestRegAbsoluteAddr | 1100 #undef TestRegAbsoluteAddr |
1084 #undef TestRegImm | 1101 #undef TestRegImm |
1085 #undef TestRegReg | 1102 #undef TestRegReg |
1086 } | 1103 } |
(...skipping 29 matching lines...) Expand all Loading... |
1116 EXPECT_FLOAT_EQ(1.0f, test.contentsOfDword<float>(S0)); | 1133 EXPECT_FLOAT_EQ(1.0f, test.contentsOfDword<float>(S0)); |
1117 EXPECT_FLOAT_EQ(2.0f, test.contentsOfDword<float>(S1)); | 1134 EXPECT_FLOAT_EQ(2.0f, test.contentsOfDword<float>(S1)); |
1118 EXPECT_FLOAT_EQ(3.0f, test.contentsOfDword<float>(S2)); | 1135 EXPECT_FLOAT_EQ(3.0f, test.contentsOfDword<float>(S2)); |
1119 EXPECT_FLOAT_EQ(4.0f, test.contentsOfDword<float>(S3)); | 1136 EXPECT_FLOAT_EQ(4.0f, test.contentsOfDword<float>(S3)); |
1120 } | 1137 } |
1121 | 1138 |
1122 } // end of anonymous namespace | 1139 } // end of anonymous namespace |
1123 } // end of namespace Test | 1140 } // end of namespace Test |
1124 } // end of namespace X8664 | 1141 } // end of namespace X8664 |
1125 } // end of namespace Ice | 1142 } // end of namespace Ice |
OLD | NEW |