| 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 |