Merge branch 'next' of https://github.com/aquynh/capstone into python

This commit is contained in:
Michael Cohen 2015-01-26 17:33:21 +01:00
commit f601fddc53
37 changed files with 38560 additions and 38069 deletions

View File

@ -955,8 +955,7 @@ static void printAddrModeTBH(MCInst *MI, unsigned Op, SStream *O)
MI->flat_insn->detail->arm.operands[MI->flat_insn->detail->arm.op_count].mem.index = MCOperand_getReg(MO2);
SStream_concat0(O, ", lsl #1]");
if (MI->csh->detail) {
MI->flat_insn->detail->arm.operands[MI->flat_insn->detail->arm.op_count].shift.type = ARM_SFT_LSL;
MI->flat_insn->detail->arm.operands[MI->flat_insn->detail->arm.op_count].shift.value = 1;
MI->flat_insn->detail->arm.operands[MI->flat_insn->detail->arm.op_count].mem.lshift = 1;
}
set_mem_access(MI, false);
}
@ -2091,8 +2090,7 @@ static void printT2AddrModeSoRegOperand(MCInst *MI,
SStream_concat0(O, ", lsl ");
SStream_concat(O, "#%d", ShAmt);
if (MI->csh->detail) {
MI->flat_insn->detail->arm.operands[MI->flat_insn->detail->arm.op_count - 1].shift.type = ARM_SFT_LSL;
MI->flat_insn->detail->arm.operands[MI->flat_insn->detail->arm.op_count - 1].shift.value = ShAmt;
MI->flat_insn->detail->arm.operands[MI->flat_insn->detail->arm.op_count].mem.lshift = ShAmt;
}
}

View File

@ -153,14 +153,6 @@ static void printSSECC(MCInst *MI, unsigned Op, SStream *OS)
case 5: SStream_concat0(OS, "nlt"); op_addSseCC(MI, X86_SSE_CC_NLT); break;
case 6: SStream_concat0(OS, "nle"); op_addSseCC(MI, X86_SSE_CC_NLE); break;
case 7: SStream_concat0(OS, "ord"); op_addSseCC(MI, X86_SSE_CC_ORD); break;
case 8: SStream_concat0(OS, "eq_uq"); op_addSseCC(MI, X86_SSE_CC_EQ_UQ); break;
case 9: SStream_concat0(OS, "nge"); op_addSseCC(MI, X86_SSE_CC_NGE); break;
case 0xa: SStream_concat0(OS, "ngt"); op_addSseCC(MI, X86_SSE_CC_NGT); break;
case 0xb: SStream_concat0(OS, "false"); op_addSseCC(MI, X86_SSE_CC_FALSE); break;
case 0xc: SStream_concat0(OS, "neq_oq"); op_addSseCC(MI, X86_SSE_CC_NEQ_OQ); break;
case 0xd: SStream_concat0(OS, "ge"); op_addSseCC(MI, X86_SSE_CC_GE); break;
case 0xe: SStream_concat0(OS, "gt"); op_addSseCC(MI, X86_SSE_CC_GT); break;
case 0xf: SStream_concat0(OS, "true"); op_addSseCC(MI, X86_SSE_CC_TRUE); break;
}
}

View File

@ -1640,8 +1640,6 @@ static int readModRM(struct InternalInstruction *insn)
case TYPE_SEGMENTREG: \
return prefix##_ES + (index & 7); \
case TYPE_DEBUGREG: \
if (index > 7) \
*valid = 0; \
return prefix##_DR0 + index; \
case TYPE_CONTROLREG: \
return prefix##_CR0 + index; \
@ -1874,7 +1872,7 @@ static int readMaskRegister(struct InternalInstruction *insn)
return 0;
}
/*
* readOperands - Consults the specifier for an instruction and consumes all
* operands for that instruction, interpreting them as it goes.
@ -1888,7 +1886,7 @@ static int readOperands(struct InternalInstruction *insn)
int hasVVVV, needVVVV;
int sawRegImm = 0;
// printf(">>> readOperands()\n");
// printf(">>> readOperands(): ID = %u\n", insn->instructionID);
/* If non-zero vvvv specified, need to make sure one of the operands
uses it. */
hasVVVV = !readVVVV(insn);
@ -2031,6 +2029,7 @@ static bool invalidPrefix(struct InternalInstruction *insn)
case X86_ADC64mi8:
case X86_ADC64mr:
case X86_ADC8mi:
case X86_ADC8mi8:
case X86_ADC8mr:
// ADD
@ -2043,6 +2042,7 @@ static bool invalidPrefix(struct InternalInstruction *insn)
case X86_ADD64mi32:
case X86_ADD64mi8:
case X86_ADD64mr:
case X86_ADD82_8mi8:
case X86_ADD8mi:
case X86_ADD8mr:
@ -2056,6 +2056,7 @@ static bool invalidPrefix(struct InternalInstruction *insn)
case X86_AND64mi32:
case X86_AND64mi8:
case X86_AND64mr:
case X86_AND82_8mi8:
case X86_AND8mi:
case X86_AND8mr:
@ -2121,6 +2122,7 @@ static bool invalidPrefix(struct InternalInstruction *insn)
case X86_OR64mi32:
case X86_OR64mi8:
case X86_OR64mr:
case X86_OR82_8mi8:
case X86_OR8mi:
case X86_OR8mr:
@ -2135,6 +2137,7 @@ static bool invalidPrefix(struct InternalInstruction *insn)
case X86_SBB64mi8:
case X86_SBB64mr:
case X86_SBB8mi:
case X86_SBB8mi8:
case X86_SBB8mr:
// SUB
@ -2147,6 +2150,7 @@ static bool invalidPrefix(struct InternalInstruction *insn)
case X86_SUB64mi32:
case X86_SUB64mi8:
case X86_SUB64mr:
case X86_SUB82_8mi8:
case X86_SUB8mi:
case X86_SUB8mr:
@ -2172,6 +2176,7 @@ static bool invalidPrefix(struct InternalInstruction *insn)
case X86_XOR64mi32:
case X86_XOR64mi8:
case X86_XOR64mr:
case X86_XOR82_8mi8:
case X86_XOR8mi:
case X86_XOR8mr:

View File

@ -350,7 +350,15 @@
ENTRY(DR4) \
ENTRY(DR5) \
ENTRY(DR6) \
ENTRY(DR7)
ENTRY(DR7) \
ENTRY(DR8) \
ENTRY(DR9) \
ENTRY(DR10) \
ENTRY(DR11) \
ENTRY(DR12) \
ENTRY(DR13) \
ENTRY(DR14) \
ENTRY(DR15)
#define REGS_CONTROL \
ENTRY(CR0) \

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@
\*===----------------------------------------------------------------------===*/
/* Capstone Disassembly Engine, http://www.capstone-engine.org */
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */
/// printInstruction - This method is automatically generated by tablegen
/// from the instruction set description.
@ -69,8 +69,10 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
8532099U, // ADC64rm
2240643U, // ADC64rr
2232451U, // ADC64rr_REV
2240643U, // ADC82_8ri8
5384U, // ADC8i8
155779U, // ADC8mi
155779U, // ADC8mi8
155779U, // ADC8mr
2240643U, // ADC8ri
10629251U, // ADC8rm
@ -116,11 +118,12 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
2240699U, // ADD64rr
0U, // ADD64rr_DB
2232507U, // ADD64rr_REV
155835U, // ADD82_8mi8
2240699U, // ADD82_8ri8
5393U, // ADD8i8
155835U, // ADD8mi
155835U, // ADD8mr
2240699U, // ADD8ri
2240699U, // ADD8ri8
10629307U, // ADD8rm
2240699U, // ADD8rr
2232507U, // ADD8rr_REV
@ -159,11 +162,12 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
8532204U, // AND64rm
2240748U, // AND64rr
2232556U, // AND64rr_REV
155884U, // AND82_8mi8
2240748U, // AND82_8ri8
5402U, // AND8i8
155884U, // AND8mi
155884U, // AND8mr
2240748U, // AND8ri
2240748U, // AND8ri8
10629356U, // AND8rm
2240748U, // AND8rr
2232556U, // AND8rr_REV
@ -448,8 +452,10 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
16913109U, // CMP64rm
14815957U, // CMP64rr
14815957U, // CMP64rr_REV
14815957U, // CMP82_8ri8
5419U, // CMP8i8
156373U, // CMP8mi
156373U, // CMP8mi8
156373U, // CMP8mr
14815957U, // CMP8ri
21107413U, // CMP8rm
@ -889,6 +895,7 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
14815513U, // MOVSX64_NOREXrr32
19010750U, // MOVSX64rm16
12718361U, // MOVSX64rm32
12718361U, // MOVSX64rm32_alt
21107902U, // MOVSX64rm8
14816446U, // MOVSX64rr16
14815513U, // MOVSX64rr32
@ -993,11 +1000,12 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
8532834U, // OR64rm
2241378U, // OR64rr
2233186U, // OR64rr_REV
156514U, // OR82_8mi8
2241378U, // OR82_8ri8
5429U, // OR8i8
156514U, // OR8mi
156514U, // OR8mr
2241378U, // OR8ri
2241378U, // OR8ri8
10629986U, // OR8rm
2241378U, // OR8rr
2233186U, // OR8rr_REV
@ -1302,8 +1310,10 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
8532045U, // SBB64rm
2240589U, // SBB64rr
2232397U, // SBB64rr_REV
2240589U, // SBB82_8ri8
5344U, // SBB8i8
155725U, // SBB8mi
155725U, // SBB8mi8
155725U, // SBB8mr
2240589U, // SBB8ri
10629197U, // SBB8rm
@ -1495,11 +1505,12 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
8532087U, // SUB64rm
2240631U, // SUB64rr
2232439U, // SUB64rr_REV
155767U, // SUB82_8mi8
2240631U, // SUB82_8ri8
5375U, // SUB8i8
155767U, // SUB8mi
155767U, // SUB8mr
2240631U, // SUB8ri
2240631U, // SUB8ri8
10629239U, // SUB8rm
2240631U, // SUB8rr
2232439U, // SUB8rr_REV
@ -1667,11 +1678,12 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
8532846U, // XOR64rm
2241390U, // XOR64rr
2233198U, // XOR64rr_REV
156526U, // XOR82_8mi8
2241390U, // XOR82_8ri8
5428U, // XOR8i8
156526U, // XOR8mi
156526U, // XOR8mr
2241390U, // XOR8ri
2241390U, // XOR8ri8
10629998U, // XOR8rm
2241390U, // XOR8rr
2233198U, // XOR8rr_REV
@ -2146,7 +2158,7 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
printi64mem(MI, 0, O);
break;
case 6:
// ADC8mi, ADC8mr, ADD8mi, ADD8mr, AND8mi, AND8mr, CMP8mi, CMP8mr, CMPXCH...
// ADC8mi, ADC8mi8, ADC8mr, ADD82_8mi8, ADD8mi, ADD8mr, AND82_8mi8, AND8m...
printi8mem(MI, 0, O);
break;
case 7:
@ -2515,7 +2527,7 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
/// for the specified register.
static char *getRegisterName(unsigned RegNo)
{
// assert(RegNo && RegNo < 234 && "Invalid register number!");
// assert(RegNo && RegNo < 242 && "Invalid register number!");
#ifndef CAPSTONE_DIET
static char AsmStrs[] = {
@ -2531,221 +2543,230 @@ static char *getRegisterName(unsigned RegNo)
/* 54 */ 'y', 'm', 'm', '1', '0', 0,
/* 60 */ 'z', 'm', 'm', '1', '0', 0,
/* 66 */ 'c', 'r', '1', '0', 0,
/* 71 */ 'x', 'm', 'm', '2', '0', 0,
/* 77 */ 'y', 'm', 'm', '2', '0', 0,
/* 83 */ 'z', 'm', 'm', '2', '0', 0,
/* 89 */ 'x', 'm', 'm', '3', '0', 0,
/* 95 */ 'y', 'm', 'm', '3', '0', 0,
/* 101 */ 'z', 'm', 'm', '3', '0', 0,
/* 107 */ 'k', '0', 0,
/* 110 */ 'x', 'm', 'm', '0', 0,
/* 115 */ 'y', 'm', 'm', '0', 0,
/* 120 */ 'z', 'm', 'm', '0', 0,
/* 125 */ 'f', 'p', '0', 0,
/* 129 */ 'c', 'r', '0', 0,
/* 133 */ 'd', 'r', '0', 0,
/* 137 */ 'x', 'm', 'm', '1', '1', 0,
/* 143 */ 'y', 'm', 'm', '1', '1', 0,
/* 149 */ 'z', 'm', 'm', '1', '1', 0,
/* 155 */ 'c', 'r', '1', '1', 0,
/* 160 */ 'x', 'm', 'm', '2', '1', 0,
/* 166 */ 'y', 'm', 'm', '2', '1', 0,
/* 172 */ 'z', 'm', 'm', '2', '1', 0,
/* 178 */ 'x', 'm', 'm', '3', '1', 0,
/* 184 */ 'y', 'm', 'm', '3', '1', 0,
/* 190 */ 'z', 'm', 'm', '3', '1', 0,
/* 196 */ 'k', '1', 0,
/* 199 */ 'x', 'm', 'm', '1', 0,
/* 204 */ 'y', 'm', 'm', '1', 0,
/* 209 */ 'z', 'm', 'm', '1', 0,
/* 214 */ 'f', 'p', '1', 0,
/* 218 */ 'c', 'r', '1', 0,
/* 222 */ 'd', 'r', '1', 0,
/* 226 */ 'x', 'm', 'm', '1', '2', 0,
/* 232 */ 'y', 'm', 'm', '1', '2', 0,
/* 238 */ 'z', 'm', 'm', '1', '2', 0,
/* 244 */ 'c', 'r', '1', '2', 0,
/* 249 */ 'x', 'm', 'm', '2', '2', 0,
/* 255 */ 'y', 'm', 'm', '2', '2', 0,
/* 261 */ 'z', 'm', 'm', '2', '2', 0,
/* 267 */ 'k', '2', 0,
/* 270 */ 'x', 'm', 'm', '2', 0,
/* 275 */ 'y', 'm', 'm', '2', 0,
/* 280 */ 'z', 'm', 'm', '2', 0,
/* 285 */ 'f', 'p', '2', 0,
/* 289 */ 'c', 'r', '2', 0,
/* 293 */ 'd', 'r', '2', 0,
/* 297 */ 'x', 'm', 'm', '1', '3', 0,
/* 303 */ 'y', 'm', 'm', '1', '3', 0,
/* 309 */ 'z', 'm', 'm', '1', '3', 0,
/* 315 */ 'c', 'r', '1', '3', 0,
/* 320 */ 'x', 'm', 'm', '2', '3', 0,
/* 326 */ 'y', 'm', 'm', '2', '3', 0,
/* 332 */ 'z', 'm', 'm', '2', '3', 0,
/* 338 */ 'k', '3', 0,
/* 341 */ 'x', 'm', 'm', '3', 0,
/* 346 */ 'y', 'm', 'm', '3', 0,
/* 351 */ 'z', 'm', 'm', '3', 0,
/* 356 */ 'f', 'p', '3', 0,
/* 360 */ 'c', 'r', '3', 0,
/* 364 */ 'd', 'r', '3', 0,
/* 368 */ 'x', 'm', 'm', '1', '4', 0,
/* 374 */ 'y', 'm', 'm', '1', '4', 0,
/* 380 */ 'z', 'm', 'm', '1', '4', 0,
/* 386 */ 'c', 'r', '1', '4', 0,
/* 391 */ 'x', 'm', 'm', '2', '4', 0,
/* 397 */ 'y', 'm', 'm', '2', '4', 0,
/* 403 */ 'z', 'm', 'm', '2', '4', 0,
/* 409 */ 'k', '4', 0,
/* 412 */ 'x', 'm', 'm', '4', 0,
/* 417 */ 'y', 'm', 'm', '4', 0,
/* 422 */ 'z', 'm', 'm', '4', 0,
/* 427 */ 'f', 'p', '4', 0,
/* 431 */ 'c', 'r', '4', 0,
/* 435 */ 'd', 'r', '4', 0,
/* 439 */ 'x', 'm', 'm', '1', '5', 0,
/* 445 */ 'y', 'm', 'm', '1', '5', 0,
/* 451 */ 'z', 'm', 'm', '1', '5', 0,
/* 457 */ 'c', 'r', '1', '5', 0,
/* 462 */ 'x', 'm', 'm', '2', '5', 0,
/* 468 */ 'y', 'm', 'm', '2', '5', 0,
/* 474 */ 'z', 'm', 'm', '2', '5', 0,
/* 480 */ 'k', '5', 0,
/* 483 */ 'x', 'm', 'm', '5', 0,
/* 488 */ 'y', 'm', 'm', '5', 0,
/* 493 */ 'z', 'm', 'm', '5', 0,
/* 498 */ 'f', 'p', '5', 0,
/* 502 */ 'c', 'r', '5', 0,
/* 506 */ 'd', 'r', '5', 0,
/* 510 */ 'x', 'm', 'm', '1', '6', 0,
/* 516 */ 'y', 'm', 'm', '1', '6', 0,
/* 522 */ 'z', 'm', 'm', '1', '6', 0,
/* 528 */ 'x', 'm', 'm', '2', '6', 0,
/* 534 */ 'y', 'm', 'm', '2', '6', 0,
/* 540 */ 'z', 'm', 'm', '2', '6', 0,
/* 546 */ 'k', '6', 0,
/* 549 */ 'x', 'm', 'm', '6', 0,
/* 554 */ 'y', 'm', 'm', '6', 0,
/* 559 */ 'z', 'm', 'm', '6', 0,
/* 564 */ 'f', 'p', '6', 0,
/* 568 */ 'c', 'r', '6', 0,
/* 572 */ 'd', 'r', '6', 0,
/* 576 */ 'x', 'm', 'm', '1', '7', 0,
/* 582 */ 'y', 'm', 'm', '1', '7', 0,
/* 588 */ 'z', 'm', 'm', '1', '7', 0,
/* 594 */ 'x', 'm', 'm', '2', '7', 0,
/* 600 */ 'y', 'm', 'm', '2', '7', 0,
/* 606 */ 'z', 'm', 'm', '2', '7', 0,
/* 612 */ 'k', '7', 0,
/* 615 */ 'x', 'm', 'm', '7', 0,
/* 620 */ 'y', 'm', 'm', '7', 0,
/* 625 */ 'z', 'm', 'm', '7', 0,
/* 630 */ 'f', 'p', '7', 0,
/* 634 */ 'c', 'r', '7', 0,
/* 638 */ 'd', 'r', '7', 0,
/* 642 */ 'x', 'm', 'm', '1', '8', 0,
/* 648 */ 'y', 'm', 'm', '1', '8', 0,
/* 654 */ 'z', 'm', 'm', '1', '8', 0,
/* 660 */ 'x', 'm', 'm', '2', '8', 0,
/* 666 */ 'y', 'm', 'm', '2', '8', 0,
/* 672 */ 'z', 'm', 'm', '2', '8', 0,
/* 678 */ 'x', 'm', 'm', '8', 0,
/* 683 */ 'y', 'm', 'm', '8', 0,
/* 688 */ 'z', 'm', 'm', '8', 0,
/* 693 */ 'c', 'r', '8', 0,
/* 697 */ 'x', 'm', 'm', '1', '9', 0,
/* 703 */ 'y', 'm', 'm', '1', '9', 0,
/* 709 */ 'z', 'm', 'm', '1', '9', 0,
/* 715 */ 'x', 'm', 'm', '2', '9', 0,
/* 721 */ 'y', 'm', 'm', '2', '9', 0,
/* 727 */ 'z', 'm', 'm', '2', '9', 0,
/* 733 */ 'x', 'm', 'm', '9', 0,
/* 738 */ 'y', 'm', 'm', '9', 0,
/* 743 */ 'z', 'm', 'm', '9', 0,
/* 748 */ 'c', 'r', '9', 0,
/* 752 */ 'r', '1', '0', 'b', 0,
/* 757 */ 'r', '1', '1', 'b', 0,
/* 762 */ 'r', '1', '2', 'b', 0,
/* 767 */ 'r', '1', '3', 'b', 0,
/* 772 */ 'r', '1', '4', 'b', 0,
/* 777 */ 'r', '1', '5', 'b', 0,
/* 782 */ 'r', '8', 'b', 0,
/* 786 */ 'r', '9', 'b', 0,
/* 790 */ 'r', '1', '0', 'd', 0,
/* 795 */ 'r', '1', '1', 'd', 0,
/* 800 */ 'r', '1', '2', 'd', 0,
/* 805 */ 'r', '1', '3', 'd', 0,
/* 810 */ 'r', '1', '4', 'd', 0,
/* 815 */ 'r', '1', '5', 'd', 0,
/* 820 */ 'r', '8', 'd', 0,
/* 824 */ 'r', '9', 'd', 0,
/* 828 */ 'a', 'h', 0,
/* 831 */ 'b', 'h', 0,
/* 834 */ 'c', 'h', 0,
/* 837 */ 'd', 'h', 0,
/* 840 */ 'e', 'd', 'i', 0,
/* 844 */ 'r', 'd', 'i', 0,
/* 848 */ 'e', 's', 'i', 0,
/* 852 */ 'r', 's', 'i', 0,
/* 856 */ 'a', 'l', 0,
/* 859 */ 'b', 'l', 0,
/* 862 */ 'c', 'l', 0,
/* 865 */ 'd', 'l', 0,
/* 868 */ 'd', 'i', 'l', 0,
/* 872 */ 's', 'i', 'l', 0,
/* 876 */ 'b', 'p', 'l', 0,
/* 880 */ 's', 'p', 'l', 0,
/* 884 */ 'e', 'b', 'p', 0,
/* 888 */ 'r', 'b', 'p', 0,
/* 892 */ 'e', 'i', 'p', 0,
/* 896 */ 'r', 'i', 'p', 0,
/* 900 */ 'e', 's', 'p', 0,
/* 904 */ 'r', 's', 'p', 0,
/* 908 */ 'c', 's', 0,
/* 911 */ 'd', 's', 0,
/* 914 */ 'e', 's', 0,
/* 917 */ 'f', 's', 0,
/* 920 */ 'f', 'l', 'a', 'g', 's', 0,
/* 926 */ 's', 's', 0,
/* 929 */ 'r', '1', '0', 'w', 0,
/* 934 */ 'r', '1', '1', 'w', 0,
/* 939 */ 'r', '1', '2', 'w', 0,
/* 944 */ 'r', '1', '3', 'w', 0,
/* 949 */ 'r', '1', '4', 'w', 0,
/* 954 */ 'r', '1', '5', 'w', 0,
/* 959 */ 'r', '8', 'w', 0,
/* 963 */ 'r', '9', 'w', 0,
/* 967 */ 'f', 'p', 's', 'w', 0,
/* 972 */ 'e', 'a', 'x', 0,
/* 976 */ 'r', 'a', 'x', 0,
/* 980 */ 'e', 'b', 'x', 0,
/* 984 */ 'r', 'b', 'x', 0,
/* 988 */ 'e', 'c', 'x', 0,
/* 992 */ 'r', 'c', 'x', 0,
/* 996 */ 'e', 'd', 'x', 0,
/* 1000 */ 'r', 'd', 'x', 0,
/* 1004 */ 'e', 'i', 'z', 0,
/* 1008 */ 'r', 'i', 'z', 0,
/* 71 */ 'd', 'r', '1', '0', 0,
/* 76 */ 'x', 'm', 'm', '2', '0', 0,
/* 82 */ 'y', 'm', 'm', '2', '0', 0,
/* 88 */ 'z', 'm', 'm', '2', '0', 0,
/* 94 */ 'x', 'm', 'm', '3', '0', 0,
/* 100 */ 'y', 'm', 'm', '3', '0', 0,
/* 106 */ 'z', 'm', 'm', '3', '0', 0,
/* 112 */ 'k', '0', 0,
/* 115 */ 'x', 'm', 'm', '0', 0,
/* 120 */ 'y', 'm', 'm', '0', 0,
/* 125 */ 'z', 'm', 'm', '0', 0,
/* 130 */ 'f', 'p', '0', 0,
/* 134 */ 'c', 'r', '0', 0,
/* 138 */ 'd', 'r', '0', 0,
/* 142 */ 'x', 'm', 'm', '1', '1', 0,
/* 148 */ 'y', 'm', 'm', '1', '1', 0,
/* 154 */ 'z', 'm', 'm', '1', '1', 0,
/* 160 */ 'c', 'r', '1', '1', 0,
/* 165 */ 'd', 'r', '1', '1', 0,
/* 170 */ 'x', 'm', 'm', '2', '1', 0,
/* 176 */ 'y', 'm', 'm', '2', '1', 0,
/* 182 */ 'z', 'm', 'm', '2', '1', 0,
/* 188 */ 'x', 'm', 'm', '3', '1', 0,
/* 194 */ 'y', 'm', 'm', '3', '1', 0,
/* 200 */ 'z', 'm', 'm', '3', '1', 0,
/* 206 */ 'k', '1', 0,
/* 209 */ 'x', 'm', 'm', '1', 0,
/* 214 */ 'y', 'm', 'm', '1', 0,
/* 219 */ 'z', 'm', 'm', '1', 0,
/* 224 */ 'f', 'p', '1', 0,
/* 228 */ 'c', 'r', '1', 0,
/* 232 */ 'd', 'r', '1', 0,
/* 236 */ 'x', 'm', 'm', '1', '2', 0,
/* 242 */ 'y', 'm', 'm', '1', '2', 0,
/* 248 */ 'z', 'm', 'm', '1', '2', 0,
/* 254 */ 'c', 'r', '1', '2', 0,
/* 259 */ 'd', 'r', '1', '2', 0,
/* 264 */ 'x', 'm', 'm', '2', '2', 0,
/* 270 */ 'y', 'm', 'm', '2', '2', 0,
/* 276 */ 'z', 'm', 'm', '2', '2', 0,
/* 282 */ 'k', '2', 0,
/* 285 */ 'x', 'm', 'm', '2', 0,
/* 290 */ 'y', 'm', 'm', '2', 0,
/* 295 */ 'z', 'm', 'm', '2', 0,
/* 300 */ 'f', 'p', '2', 0,
/* 304 */ 'c', 'r', '2', 0,
/* 308 */ 'd', 'r', '2', 0,
/* 312 */ 'x', 'm', 'm', '1', '3', 0,
/* 318 */ 'y', 'm', 'm', '1', '3', 0,
/* 324 */ 'z', 'm', 'm', '1', '3', 0,
/* 330 */ 'c', 'r', '1', '3', 0,
/* 335 */ 'd', 'r', '1', '3', 0,
/* 340 */ 'x', 'm', 'm', '2', '3', 0,
/* 346 */ 'y', 'm', 'm', '2', '3', 0,
/* 352 */ 'z', 'm', 'm', '2', '3', 0,
/* 358 */ 'k', '3', 0,
/* 361 */ 'x', 'm', 'm', '3', 0,
/* 366 */ 'y', 'm', 'm', '3', 0,
/* 371 */ 'z', 'm', 'm', '3', 0,
/* 376 */ 'f', 'p', '3', 0,
/* 380 */ 'c', 'r', '3', 0,
/* 384 */ 'd', 'r', '3', 0,
/* 388 */ 'x', 'm', 'm', '1', '4', 0,
/* 394 */ 'y', 'm', 'm', '1', '4', 0,
/* 400 */ 'z', 'm', 'm', '1', '4', 0,
/* 406 */ 'c', 'r', '1', '4', 0,
/* 411 */ 'd', 'r', '1', '4', 0,
/* 416 */ 'x', 'm', 'm', '2', '4', 0,
/* 422 */ 'y', 'm', 'm', '2', '4', 0,
/* 428 */ 'z', 'm', 'm', '2', '4', 0,
/* 434 */ 'k', '4', 0,
/* 437 */ 'x', 'm', 'm', '4', 0,
/* 442 */ 'y', 'm', 'm', '4', 0,
/* 447 */ 'z', 'm', 'm', '4', 0,
/* 452 */ 'f', 'p', '4', 0,
/* 456 */ 'c', 'r', '4', 0,
/* 460 */ 'd', 'r', '4', 0,
/* 464 */ 'x', 'm', 'm', '1', '5', 0,
/* 470 */ 'y', 'm', 'm', '1', '5', 0,
/* 476 */ 'z', 'm', 'm', '1', '5', 0,
/* 482 */ 'c', 'r', '1', '5', 0,
/* 487 */ 'd', 'r', '1', '5', 0,
/* 492 */ 'x', 'm', 'm', '2', '5', 0,
/* 498 */ 'y', 'm', 'm', '2', '5', 0,
/* 504 */ 'z', 'm', 'm', '2', '5', 0,
/* 510 */ 'k', '5', 0,
/* 513 */ 'x', 'm', 'm', '5', 0,
/* 518 */ 'y', 'm', 'm', '5', 0,
/* 523 */ 'z', 'm', 'm', '5', 0,
/* 528 */ 'f', 'p', '5', 0,
/* 532 */ 'c', 'r', '5', 0,
/* 536 */ 'd', 'r', '5', 0,
/* 540 */ 'x', 'm', 'm', '1', '6', 0,
/* 546 */ 'y', 'm', 'm', '1', '6', 0,
/* 552 */ 'z', 'm', 'm', '1', '6', 0,
/* 558 */ 'x', 'm', 'm', '2', '6', 0,
/* 564 */ 'y', 'm', 'm', '2', '6', 0,
/* 570 */ 'z', 'm', 'm', '2', '6', 0,
/* 576 */ 'k', '6', 0,
/* 579 */ 'x', 'm', 'm', '6', 0,
/* 584 */ 'y', 'm', 'm', '6', 0,
/* 589 */ 'z', 'm', 'm', '6', 0,
/* 594 */ 'f', 'p', '6', 0,
/* 598 */ 'c', 'r', '6', 0,
/* 602 */ 'd', 'r', '6', 0,
/* 606 */ 'x', 'm', 'm', '1', '7', 0,
/* 612 */ 'y', 'm', 'm', '1', '7', 0,
/* 618 */ 'z', 'm', 'm', '1', '7', 0,
/* 624 */ 'x', 'm', 'm', '2', '7', 0,
/* 630 */ 'y', 'm', 'm', '2', '7', 0,
/* 636 */ 'z', 'm', 'm', '2', '7', 0,
/* 642 */ 'k', '7', 0,
/* 645 */ 'x', 'm', 'm', '7', 0,
/* 650 */ 'y', 'm', 'm', '7', 0,
/* 655 */ 'z', 'm', 'm', '7', 0,
/* 660 */ 'f', 'p', '7', 0,
/* 664 */ 'c', 'r', '7', 0,
/* 668 */ 'd', 'r', '7', 0,
/* 672 */ 'x', 'm', 'm', '1', '8', 0,
/* 678 */ 'y', 'm', 'm', '1', '8', 0,
/* 684 */ 'z', 'm', 'm', '1', '8', 0,
/* 690 */ 'x', 'm', 'm', '2', '8', 0,
/* 696 */ 'y', 'm', 'm', '2', '8', 0,
/* 702 */ 'z', 'm', 'm', '2', '8', 0,
/* 708 */ 'x', 'm', 'm', '8', 0,
/* 713 */ 'y', 'm', 'm', '8', 0,
/* 718 */ 'z', 'm', 'm', '8', 0,
/* 723 */ 'c', 'r', '8', 0,
/* 727 */ 'd', 'r', '8', 0,
/* 731 */ 'x', 'm', 'm', '1', '9', 0,
/* 737 */ 'y', 'm', 'm', '1', '9', 0,
/* 743 */ 'z', 'm', 'm', '1', '9', 0,
/* 749 */ 'x', 'm', 'm', '2', '9', 0,
/* 755 */ 'y', 'm', 'm', '2', '9', 0,
/* 761 */ 'z', 'm', 'm', '2', '9', 0,
/* 767 */ 'x', 'm', 'm', '9', 0,
/* 772 */ 'y', 'm', 'm', '9', 0,
/* 777 */ 'z', 'm', 'm', '9', 0,
/* 782 */ 'c', 'r', '9', 0,
/* 786 */ 'd', 'r', '9', 0,
/* 790 */ 'r', '1', '0', 'b', 0,
/* 795 */ 'r', '1', '1', 'b', 0,
/* 800 */ 'r', '1', '2', 'b', 0,
/* 805 */ 'r', '1', '3', 'b', 0,
/* 810 */ 'r', '1', '4', 'b', 0,
/* 815 */ 'r', '1', '5', 'b', 0,
/* 820 */ 'r', '8', 'b', 0,
/* 824 */ 'r', '9', 'b', 0,
/* 828 */ 'r', '1', '0', 'd', 0,
/* 833 */ 'r', '1', '1', 'd', 0,
/* 838 */ 'r', '1', '2', 'd', 0,
/* 843 */ 'r', '1', '3', 'd', 0,
/* 848 */ 'r', '1', '4', 'd', 0,
/* 853 */ 'r', '1', '5', 'd', 0,
/* 858 */ 'r', '8', 'd', 0,
/* 862 */ 'r', '9', 'd', 0,
/* 866 */ 'a', 'h', 0,
/* 869 */ 'b', 'h', 0,
/* 872 */ 'c', 'h', 0,
/* 875 */ 'd', 'h', 0,
/* 878 */ 'e', 'd', 'i', 0,
/* 882 */ 'r', 'd', 'i', 0,
/* 886 */ 'e', 's', 'i', 0,
/* 890 */ 'r', 's', 'i', 0,
/* 894 */ 'a', 'l', 0,
/* 897 */ 'b', 'l', 0,
/* 900 */ 'c', 'l', 0,
/* 903 */ 'd', 'l', 0,
/* 906 */ 'd', 'i', 'l', 0,
/* 910 */ 's', 'i', 'l', 0,
/* 914 */ 'b', 'p', 'l', 0,
/* 918 */ 's', 'p', 'l', 0,
/* 922 */ 'e', 'b', 'p', 0,
/* 926 */ 'r', 'b', 'p', 0,
/* 930 */ 'e', 'i', 'p', 0,
/* 934 */ 'r', 'i', 'p', 0,
/* 938 */ 'e', 's', 'p', 0,
/* 942 */ 'r', 's', 'p', 0,
/* 946 */ 'c', 's', 0,
/* 949 */ 'd', 's', 0,
/* 952 */ 'e', 's', 0,
/* 955 */ 'f', 's', 0,
/* 958 */ 'f', 'l', 'a', 'g', 's', 0,
/* 964 */ 's', 's', 0,
/* 967 */ 'r', '1', '0', 'w', 0,
/* 972 */ 'r', '1', '1', 'w', 0,
/* 977 */ 'r', '1', '2', 'w', 0,
/* 982 */ 'r', '1', '3', 'w', 0,
/* 987 */ 'r', '1', '4', 'w', 0,
/* 992 */ 'r', '1', '5', 'w', 0,
/* 997 */ 'r', '8', 'w', 0,
/* 1001 */ 'r', '9', 'w', 0,
/* 1005 */ 'f', 'p', 's', 'w', 0,
/* 1010 */ 'e', 'a', 'x', 0,
/* 1014 */ 'r', 'a', 'x', 0,
/* 1018 */ 'e', 'b', 'x', 0,
/* 1022 */ 'r', 'b', 'x', 0,
/* 1026 */ 'e', 'c', 'x', 0,
/* 1030 */ 'r', 'c', 'x', 0,
/* 1034 */ 'e', 'd', 'x', 0,
/* 1038 */ 'r', 'd', 'x', 0,
/* 1042 */ 'e', 'i', 'z', 0,
/* 1046 */ 'r', 'i', 'z', 0,
};
static const uint32_t RegAsmOffset[] = {
828, 856, 973, 831, 859, 885, 876, 981, 834, 862, 908, 989, 837, 841,
868, 865, 911, 997, 972, 884, 980, 988, 840, 996, 920, 892, 1004, 914,
848, 900, 967, 917, 923, 893, 976, 888, 984, 992, 844, 1000, 896, 1008,
852, 904, 849, 872, 901, 880, 926, 129, 218, 289, 360, 431, 502, 568,
634, 693, 748, 66, 155, 244, 315, 386, 457, 133, 222, 293, 364, 435,
506, 572, 638, 125, 214, 285, 356, 427, 498, 564, 630, 107, 196, 267,
338, 409, 480, 546, 612, 111, 200, 271, 342, 413, 484, 550, 616, 694,
749, 67, 156, 245, 316, 387, 458, 0, 6, 12, 18, 24, 30, 36,
42, 110, 199, 270, 341, 412, 483, 549, 615, 678, 733, 48, 137, 226,
297, 368, 439, 510, 576, 642, 697, 71, 160, 249, 320, 391, 462, 528,
594, 660, 715, 89, 178, 115, 204, 275, 346, 417, 488, 554, 620, 683,
738, 54, 143, 232, 303, 374, 445, 516, 582, 648, 703, 77, 166, 255,
326, 397, 468, 534, 600, 666, 721, 95, 184, 120, 209, 280, 351, 422,
493, 559, 625, 688, 743, 60, 149, 238, 309, 380, 451, 522, 588, 654,
709, 83, 172, 261, 332, 403, 474, 540, 606, 672, 727, 101, 190, 782,
786, 752, 757, 762, 767, 772, 777, 820, 824, 790, 795, 800, 805, 810,
815, 959, 963, 929, 934, 939, 944, 949, 954,
866, 894, 1011, 869, 897, 923, 914, 1019, 872, 900, 946, 1027, 875, 879,
906, 903, 949, 1035, 1010, 922, 1018, 1026, 878, 1034, 958, 930, 1042, 952,
886, 938, 1005, 955, 961, 931, 1014, 926, 1022, 1030, 882, 1038, 934, 1046,
890, 942, 887, 910, 939, 918, 964, 134, 228, 304, 380, 456, 532, 598,
664, 723, 782, 66, 160, 254, 330, 406, 482, 138, 232, 308, 384, 460,
536, 602, 668, 727, 786, 71, 165, 259, 335, 411, 487, 130, 224, 300,
376, 452, 528, 594, 660, 112, 206, 282, 358, 434, 510, 576, 642, 116,
210, 286, 362, 438, 514, 580, 646, 724, 783, 67, 161, 255, 331, 407,
483, 0, 6, 12, 18, 24, 30, 36, 42, 115, 209, 285, 361, 437,
513, 579, 645, 708, 767, 48, 142, 236, 312, 388, 464, 540, 606, 672,
731, 76, 170, 264, 340, 416, 492, 558, 624, 690, 749, 94, 188, 120,
214, 290, 366, 442, 518, 584, 650, 713, 772, 54, 148, 242, 318, 394,
470, 546, 612, 678, 737, 82, 176, 270, 346, 422, 498, 564, 630, 696,
755, 100, 194, 125, 219, 295, 371, 447, 523, 589, 655, 718, 777, 60,
154, 248, 324, 400, 476, 552, 618, 684, 743, 88, 182, 276, 352, 428,
504, 570, 636, 702, 761, 106, 200, 820, 824, 790, 795, 800, 805, 810,
815, 858, 862, 828, 833, 838, 843, 848, 853, 997, 1001, 967, 972, 977,
982, 987, 992,
};
//int i;

View File

@ -7,7 +7,7 @@
\*===----------------------------------------------------------------------===*/
/* Capstone Disassembly Engine, http://www.capstone-engine.org */
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */
/// printInstruction - This method is automatically generated by tablegen
/// from the instruction set description.
@ -69,8 +69,10 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
1623380U, // ADC64rm
1598804U, // ADC64rr
2123092U, // ADC64rr_REV
1597486U, // ADC82_8ri8
4726830U, // ADC8i8
5259310U, // ADC8mi
5259310U, // ADC8mi8
5259310U, // ADC8mr
1597486U, // ADC8ri
57390U, // ADC8rm
@ -116,11 +118,12 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
1598838U, // ADD64rr
0U, // ADD64rr_DB
2123126U, // ADD64rr_REV
5259329U, // ADD82_8mi8
1597505U, // ADD82_8ri8
4726849U, // ADD8i8
5259329U, // ADD8mi
5259329U, // ADD8mr
1597505U, // ADD8ri
1597505U, // ADD8ri8
57409U, // ADD8rm
1597505U, // ADD8rr
2121793U, // ADD8rr_REV
@ -159,11 +162,12 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
1623439U, // AND64rm
1598863U, // AND64rr
2123151U, // AND64rr_REV
5259335U, // AND82_8mi8
1597511U, // AND82_8ri8
4726855U, // AND8i8
5259335U, // AND8mi
5259335U, // AND8mr
1597511U, // AND8ri
1597511U, // AND8ri8
57415U, // AND8rm
1597511U, // AND8rr
2121799U, // AND8rr_REV
@ -448,8 +452,10 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
83630U, // CMP64rm
22619822U, // CMP64rr
22619822U, // CMP64rr_REV
22618245U, // CMP82_8ri8
4726917U, // CMP8i8
5259397U, // CMP8mi
5259397U, // CMP8mi8
5259397U, // CMP8mr
22618245U, // CMP8ri
139397U, // CMP8rm
@ -889,6 +895,7 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
22619760U, // MOVSX64_NOREXrr32
100306U, // MOVSX64rm16
67184U, // MOVSX64rm32
67184U, // MOVSX64rm32_alt
140598U, // MOVSX64rm8
22620114U, // MOVSX64rr16
22619760U, // MOVSX64rr32
@ -993,11 +1000,12 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
1623780U, // OR64rm
1599204U, // OR64rr
2123492U, // OR64rr_REV
5259422U, // OR82_8mi8
1597598U, // OR82_8ri8
4726942U, // OR8i8
5259422U, // OR8mi
5259422U, // OR8mr
1597598U, // OR8ri
1597598U, // OR8ri8
57502U, // OR8rm
1597598U, // OR8rr
2121886U, // OR8rr_REV
@ -1302,8 +1310,10 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
1623344U, // SBB64rm
1598768U, // SBB64rr
2123056U, // SBB64rr_REV
1597474U, // SBB82_8ri8
4726818U, // SBB8i8
5259298U, // SBB8mi
5259298U, // SBB8mi8
5259298U, // SBB8mr
1597474U, // SBB8ri
57378U, // SBB8rm
@ -1495,11 +1505,12 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
1623358U, // SUB64rm
1598782U, // SUB64rr
2123070U, // SUB64rr_REV
5259304U, // SUB82_8mi8
1597480U, // SUB82_8ri8
4726824U, // SUB8i8
5259304U, // SUB8mi
5259304U, // SUB8mr
1597480U, // SUB8ri
1597480U, // SUB8ri8
57384U, // SUB8rm
1597480U, // SUB8rr
2121768U, // SUB8rr_REV
@ -1667,11 +1678,12 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
1623794U, // XOR64rm
1599218U, // XOR64rr
2123506U, // XOR64rr_REV
5259427U, // XOR82_8mi8
1597603U, // XOR82_8ri8
4726947U, // XOR8i8
5259427U, // XOR8mi
5259427U, // XOR8mr
1597603U, // XOR8ri
1597603U, // XOR8ri8
57507U, // XOR8rm
1597603U, // XOR8rr
2121891U, // XOR8rr_REV
@ -2615,7 +2627,7 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
return;
break;
case 10:
// ADC8mi, ADC8mr, ADD8mi, ADD8mr, AND8mi, AND8mr, CMP8mi, CMP8mr, CMPXCH...
// ADC8mi, ADC8mi8, ADC8mr, ADD82_8mi8, ADD8mi, ADD8mr, AND82_8mi8, AND8m...
printi8mem(MI, 0, O);
break;
case 11:
@ -2798,7 +2810,7 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
/// for the specified register.
static char *getRegisterName(unsigned RegNo)
{
// assert(RegNo && RegNo < 234 && "Invalid register number!");
// assert(RegNo && RegNo < 242 && "Invalid register number!");
#ifndef CAPSTONE_DIET
static char AsmStrs[] = {
@ -2814,221 +2826,230 @@ static char *getRegisterName(unsigned RegNo)
/* 54 */ 'y', 'm', 'm', '1', '0', 0,
/* 60 */ 'z', 'm', 'm', '1', '0', 0,
/* 66 */ 'c', 'r', '1', '0', 0,
/* 71 */ 'x', 'm', 'm', '2', '0', 0,
/* 77 */ 'y', 'm', 'm', '2', '0', 0,
/* 83 */ 'z', 'm', 'm', '2', '0', 0,
/* 89 */ 'x', 'm', 'm', '3', '0', 0,
/* 95 */ 'y', 'm', 'm', '3', '0', 0,
/* 101 */ 'z', 'm', 'm', '3', '0', 0,
/* 107 */ 'k', '0', 0,
/* 110 */ 'x', 'm', 'm', '0', 0,
/* 115 */ 'y', 'm', 'm', '0', 0,
/* 120 */ 'z', 'm', 'm', '0', 0,
/* 125 */ 'f', 'p', '0', 0,
/* 129 */ 'c', 'r', '0', 0,
/* 133 */ 'd', 'r', '0', 0,
/* 137 */ 'x', 'm', 'm', '1', '1', 0,
/* 143 */ 'y', 'm', 'm', '1', '1', 0,
/* 149 */ 'z', 'm', 'm', '1', '1', 0,
/* 155 */ 'c', 'r', '1', '1', 0,
/* 160 */ 'x', 'm', 'm', '2', '1', 0,
/* 166 */ 'y', 'm', 'm', '2', '1', 0,
/* 172 */ 'z', 'm', 'm', '2', '1', 0,
/* 178 */ 'x', 'm', 'm', '3', '1', 0,
/* 184 */ 'y', 'm', 'm', '3', '1', 0,
/* 190 */ 'z', 'm', 'm', '3', '1', 0,
/* 196 */ 'k', '1', 0,
/* 199 */ 'x', 'm', 'm', '1', 0,
/* 204 */ 'y', 'm', 'm', '1', 0,
/* 209 */ 'z', 'm', 'm', '1', 0,
/* 214 */ 'f', 'p', '1', 0,
/* 218 */ 'c', 'r', '1', 0,
/* 222 */ 'd', 'r', '1', 0,
/* 226 */ 'x', 'm', 'm', '1', '2', 0,
/* 232 */ 'y', 'm', 'm', '1', '2', 0,
/* 238 */ 'z', 'm', 'm', '1', '2', 0,
/* 244 */ 'c', 'r', '1', '2', 0,
/* 249 */ 'x', 'm', 'm', '2', '2', 0,
/* 255 */ 'y', 'm', 'm', '2', '2', 0,
/* 261 */ 'z', 'm', 'm', '2', '2', 0,
/* 267 */ 'k', '2', 0,
/* 270 */ 'x', 'm', 'm', '2', 0,
/* 275 */ 'y', 'm', 'm', '2', 0,
/* 280 */ 'z', 'm', 'm', '2', 0,
/* 285 */ 'f', 'p', '2', 0,
/* 289 */ 'c', 'r', '2', 0,
/* 293 */ 'd', 'r', '2', 0,
/* 297 */ 'x', 'm', 'm', '1', '3', 0,
/* 303 */ 'y', 'm', 'm', '1', '3', 0,
/* 309 */ 'z', 'm', 'm', '1', '3', 0,
/* 315 */ 'c', 'r', '1', '3', 0,
/* 320 */ 'x', 'm', 'm', '2', '3', 0,
/* 326 */ 'y', 'm', 'm', '2', '3', 0,
/* 332 */ 'z', 'm', 'm', '2', '3', 0,
/* 338 */ 'k', '3', 0,
/* 341 */ 'x', 'm', 'm', '3', 0,
/* 346 */ 'y', 'm', 'm', '3', 0,
/* 351 */ 'z', 'm', 'm', '3', 0,
/* 356 */ 'f', 'p', '3', 0,
/* 360 */ 'c', 'r', '3', 0,
/* 364 */ 'd', 'r', '3', 0,
/* 368 */ 'x', 'm', 'm', '1', '4', 0,
/* 374 */ 'y', 'm', 'm', '1', '4', 0,
/* 380 */ 'z', 'm', 'm', '1', '4', 0,
/* 386 */ 'c', 'r', '1', '4', 0,
/* 391 */ 'x', 'm', 'm', '2', '4', 0,
/* 397 */ 'y', 'm', 'm', '2', '4', 0,
/* 403 */ 'z', 'm', 'm', '2', '4', 0,
/* 409 */ 'k', '4', 0,
/* 412 */ 'x', 'm', 'm', '4', 0,
/* 417 */ 'y', 'm', 'm', '4', 0,
/* 422 */ 'z', 'm', 'm', '4', 0,
/* 427 */ 'f', 'p', '4', 0,
/* 431 */ 'c', 'r', '4', 0,
/* 435 */ 'd', 'r', '4', 0,
/* 439 */ 'x', 'm', 'm', '1', '5', 0,
/* 445 */ 'y', 'm', 'm', '1', '5', 0,
/* 451 */ 'z', 'm', 'm', '1', '5', 0,
/* 457 */ 'c', 'r', '1', '5', 0,
/* 462 */ 'x', 'm', 'm', '2', '5', 0,
/* 468 */ 'y', 'm', 'm', '2', '5', 0,
/* 474 */ 'z', 'm', 'm', '2', '5', 0,
/* 480 */ 'k', '5', 0,
/* 483 */ 'x', 'm', 'm', '5', 0,
/* 488 */ 'y', 'm', 'm', '5', 0,
/* 493 */ 'z', 'm', 'm', '5', 0,
/* 498 */ 'f', 'p', '5', 0,
/* 502 */ 'c', 'r', '5', 0,
/* 506 */ 'd', 'r', '5', 0,
/* 510 */ 'x', 'm', 'm', '1', '6', 0,
/* 516 */ 'y', 'm', 'm', '1', '6', 0,
/* 522 */ 'z', 'm', 'm', '1', '6', 0,
/* 528 */ 'x', 'm', 'm', '2', '6', 0,
/* 534 */ 'y', 'm', 'm', '2', '6', 0,
/* 540 */ 'z', 'm', 'm', '2', '6', 0,
/* 546 */ 'k', '6', 0,
/* 549 */ 'x', 'm', 'm', '6', 0,
/* 554 */ 'y', 'm', 'm', '6', 0,
/* 559 */ 'z', 'm', 'm', '6', 0,
/* 564 */ 'f', 'p', '6', 0,
/* 568 */ 'c', 'r', '6', 0,
/* 572 */ 'd', 'r', '6', 0,
/* 576 */ 'x', 'm', 'm', '1', '7', 0,
/* 582 */ 'y', 'm', 'm', '1', '7', 0,
/* 588 */ 'z', 'm', 'm', '1', '7', 0,
/* 594 */ 'x', 'm', 'm', '2', '7', 0,
/* 600 */ 'y', 'm', 'm', '2', '7', 0,
/* 606 */ 'z', 'm', 'm', '2', '7', 0,
/* 612 */ 'k', '7', 0,
/* 615 */ 'x', 'm', 'm', '7', 0,
/* 620 */ 'y', 'm', 'm', '7', 0,
/* 625 */ 'z', 'm', 'm', '7', 0,
/* 630 */ 'f', 'p', '7', 0,
/* 634 */ 'c', 'r', '7', 0,
/* 638 */ 'd', 'r', '7', 0,
/* 642 */ 'x', 'm', 'm', '1', '8', 0,
/* 648 */ 'y', 'm', 'm', '1', '8', 0,
/* 654 */ 'z', 'm', 'm', '1', '8', 0,
/* 660 */ 'x', 'm', 'm', '2', '8', 0,
/* 666 */ 'y', 'm', 'm', '2', '8', 0,
/* 672 */ 'z', 'm', 'm', '2', '8', 0,
/* 678 */ 'x', 'm', 'm', '8', 0,
/* 683 */ 'y', 'm', 'm', '8', 0,
/* 688 */ 'z', 'm', 'm', '8', 0,
/* 693 */ 'c', 'r', '8', 0,
/* 697 */ 'x', 'm', 'm', '1', '9', 0,
/* 703 */ 'y', 'm', 'm', '1', '9', 0,
/* 709 */ 'z', 'm', 'm', '1', '9', 0,
/* 715 */ 'x', 'm', 'm', '2', '9', 0,
/* 721 */ 'y', 'm', 'm', '2', '9', 0,
/* 727 */ 'z', 'm', 'm', '2', '9', 0,
/* 733 */ 'x', 'm', 'm', '9', 0,
/* 738 */ 'y', 'm', 'm', '9', 0,
/* 743 */ 'z', 'm', 'm', '9', 0,
/* 748 */ 'c', 'r', '9', 0,
/* 752 */ 'r', '1', '0', 'b', 0,
/* 757 */ 'r', '1', '1', 'b', 0,
/* 762 */ 'r', '1', '2', 'b', 0,
/* 767 */ 'r', '1', '3', 'b', 0,
/* 772 */ 'r', '1', '4', 'b', 0,
/* 777 */ 'r', '1', '5', 'b', 0,
/* 782 */ 'r', '8', 'b', 0,
/* 786 */ 'r', '9', 'b', 0,
/* 790 */ 'r', '1', '0', 'd', 0,
/* 795 */ 'r', '1', '1', 'd', 0,
/* 800 */ 'r', '1', '2', 'd', 0,
/* 805 */ 'r', '1', '3', 'd', 0,
/* 810 */ 'r', '1', '4', 'd', 0,
/* 815 */ 'r', '1', '5', 'd', 0,
/* 820 */ 'r', '8', 'd', 0,
/* 824 */ 'r', '9', 'd', 0,
/* 828 */ 'a', 'h', 0,
/* 831 */ 'b', 'h', 0,
/* 834 */ 'c', 'h', 0,
/* 837 */ 'd', 'h', 0,
/* 840 */ 'e', 'd', 'i', 0,
/* 844 */ 'r', 'd', 'i', 0,
/* 848 */ 'e', 's', 'i', 0,
/* 852 */ 'r', 's', 'i', 0,
/* 856 */ 'a', 'l', 0,
/* 859 */ 'b', 'l', 0,
/* 862 */ 'c', 'l', 0,
/* 865 */ 'd', 'l', 0,
/* 868 */ 'd', 'i', 'l', 0,
/* 872 */ 's', 'i', 'l', 0,
/* 876 */ 'b', 'p', 'l', 0,
/* 880 */ 's', 'p', 'l', 0,
/* 884 */ 'e', 'b', 'p', 0,
/* 888 */ 'r', 'b', 'p', 0,
/* 892 */ 'e', 'i', 'p', 0,
/* 896 */ 'r', 'i', 'p', 0,
/* 900 */ 'e', 's', 'p', 0,
/* 904 */ 'r', 's', 'p', 0,
/* 908 */ 'c', 's', 0,
/* 911 */ 'd', 's', 0,
/* 914 */ 'e', 's', 0,
/* 917 */ 'f', 's', 0,
/* 920 */ 'f', 'l', 'a', 'g', 's', 0,
/* 926 */ 's', 's', 0,
/* 929 */ 'r', '1', '0', 'w', 0,
/* 934 */ 'r', '1', '1', 'w', 0,
/* 939 */ 'r', '1', '2', 'w', 0,
/* 944 */ 'r', '1', '3', 'w', 0,
/* 949 */ 'r', '1', '4', 'w', 0,
/* 954 */ 'r', '1', '5', 'w', 0,
/* 959 */ 'r', '8', 'w', 0,
/* 963 */ 'r', '9', 'w', 0,
/* 967 */ 'f', 'p', 's', 'w', 0,
/* 972 */ 'e', 'a', 'x', 0,
/* 976 */ 'r', 'a', 'x', 0,
/* 980 */ 'e', 'b', 'x', 0,
/* 984 */ 'r', 'b', 'x', 0,
/* 988 */ 'e', 'c', 'x', 0,
/* 992 */ 'r', 'c', 'x', 0,
/* 996 */ 'e', 'd', 'x', 0,
/* 1000 */ 'r', 'd', 'x', 0,
/* 1004 */ 'e', 'i', 'z', 0,
/* 1008 */ 'r', 'i', 'z', 0,
/* 71 */ 'd', 'r', '1', '0', 0,
/* 76 */ 'x', 'm', 'm', '2', '0', 0,
/* 82 */ 'y', 'm', 'm', '2', '0', 0,
/* 88 */ 'z', 'm', 'm', '2', '0', 0,
/* 94 */ 'x', 'm', 'm', '3', '0', 0,
/* 100 */ 'y', 'm', 'm', '3', '0', 0,
/* 106 */ 'z', 'm', 'm', '3', '0', 0,
/* 112 */ 'k', '0', 0,
/* 115 */ 'x', 'm', 'm', '0', 0,
/* 120 */ 'y', 'm', 'm', '0', 0,
/* 125 */ 'z', 'm', 'm', '0', 0,
/* 130 */ 'f', 'p', '0', 0,
/* 134 */ 'c', 'r', '0', 0,
/* 138 */ 'd', 'r', '0', 0,
/* 142 */ 'x', 'm', 'm', '1', '1', 0,
/* 148 */ 'y', 'm', 'm', '1', '1', 0,
/* 154 */ 'z', 'm', 'm', '1', '1', 0,
/* 160 */ 'c', 'r', '1', '1', 0,
/* 165 */ 'd', 'r', '1', '1', 0,
/* 170 */ 'x', 'm', 'm', '2', '1', 0,
/* 176 */ 'y', 'm', 'm', '2', '1', 0,
/* 182 */ 'z', 'm', 'm', '2', '1', 0,
/* 188 */ 'x', 'm', 'm', '3', '1', 0,
/* 194 */ 'y', 'm', 'm', '3', '1', 0,
/* 200 */ 'z', 'm', 'm', '3', '1', 0,
/* 206 */ 'k', '1', 0,
/* 209 */ 'x', 'm', 'm', '1', 0,
/* 214 */ 'y', 'm', 'm', '1', 0,
/* 219 */ 'z', 'm', 'm', '1', 0,
/* 224 */ 'f', 'p', '1', 0,
/* 228 */ 'c', 'r', '1', 0,
/* 232 */ 'd', 'r', '1', 0,
/* 236 */ 'x', 'm', 'm', '1', '2', 0,
/* 242 */ 'y', 'm', 'm', '1', '2', 0,
/* 248 */ 'z', 'm', 'm', '1', '2', 0,
/* 254 */ 'c', 'r', '1', '2', 0,
/* 259 */ 'd', 'r', '1', '2', 0,
/* 264 */ 'x', 'm', 'm', '2', '2', 0,
/* 270 */ 'y', 'm', 'm', '2', '2', 0,
/* 276 */ 'z', 'm', 'm', '2', '2', 0,
/* 282 */ 'k', '2', 0,
/* 285 */ 'x', 'm', 'm', '2', 0,
/* 290 */ 'y', 'm', 'm', '2', 0,
/* 295 */ 'z', 'm', 'm', '2', 0,
/* 300 */ 'f', 'p', '2', 0,
/* 304 */ 'c', 'r', '2', 0,
/* 308 */ 'd', 'r', '2', 0,
/* 312 */ 'x', 'm', 'm', '1', '3', 0,
/* 318 */ 'y', 'm', 'm', '1', '3', 0,
/* 324 */ 'z', 'm', 'm', '1', '3', 0,
/* 330 */ 'c', 'r', '1', '3', 0,
/* 335 */ 'd', 'r', '1', '3', 0,
/* 340 */ 'x', 'm', 'm', '2', '3', 0,
/* 346 */ 'y', 'm', 'm', '2', '3', 0,
/* 352 */ 'z', 'm', 'm', '2', '3', 0,
/* 358 */ 'k', '3', 0,
/* 361 */ 'x', 'm', 'm', '3', 0,
/* 366 */ 'y', 'm', 'm', '3', 0,
/* 371 */ 'z', 'm', 'm', '3', 0,
/* 376 */ 'f', 'p', '3', 0,
/* 380 */ 'c', 'r', '3', 0,
/* 384 */ 'd', 'r', '3', 0,
/* 388 */ 'x', 'm', 'm', '1', '4', 0,
/* 394 */ 'y', 'm', 'm', '1', '4', 0,
/* 400 */ 'z', 'm', 'm', '1', '4', 0,
/* 406 */ 'c', 'r', '1', '4', 0,
/* 411 */ 'd', 'r', '1', '4', 0,
/* 416 */ 'x', 'm', 'm', '2', '4', 0,
/* 422 */ 'y', 'm', 'm', '2', '4', 0,
/* 428 */ 'z', 'm', 'm', '2', '4', 0,
/* 434 */ 'k', '4', 0,
/* 437 */ 'x', 'm', 'm', '4', 0,
/* 442 */ 'y', 'm', 'm', '4', 0,
/* 447 */ 'z', 'm', 'm', '4', 0,
/* 452 */ 'f', 'p', '4', 0,
/* 456 */ 'c', 'r', '4', 0,
/* 460 */ 'd', 'r', '4', 0,
/* 464 */ 'x', 'm', 'm', '1', '5', 0,
/* 470 */ 'y', 'm', 'm', '1', '5', 0,
/* 476 */ 'z', 'm', 'm', '1', '5', 0,
/* 482 */ 'c', 'r', '1', '5', 0,
/* 487 */ 'd', 'r', '1', '5', 0,
/* 492 */ 'x', 'm', 'm', '2', '5', 0,
/* 498 */ 'y', 'm', 'm', '2', '5', 0,
/* 504 */ 'z', 'm', 'm', '2', '5', 0,
/* 510 */ 'k', '5', 0,
/* 513 */ 'x', 'm', 'm', '5', 0,
/* 518 */ 'y', 'm', 'm', '5', 0,
/* 523 */ 'z', 'm', 'm', '5', 0,
/* 528 */ 'f', 'p', '5', 0,
/* 532 */ 'c', 'r', '5', 0,
/* 536 */ 'd', 'r', '5', 0,
/* 540 */ 'x', 'm', 'm', '1', '6', 0,
/* 546 */ 'y', 'm', 'm', '1', '6', 0,
/* 552 */ 'z', 'm', 'm', '1', '6', 0,
/* 558 */ 'x', 'm', 'm', '2', '6', 0,
/* 564 */ 'y', 'm', 'm', '2', '6', 0,
/* 570 */ 'z', 'm', 'm', '2', '6', 0,
/* 576 */ 'k', '6', 0,
/* 579 */ 'x', 'm', 'm', '6', 0,
/* 584 */ 'y', 'm', 'm', '6', 0,
/* 589 */ 'z', 'm', 'm', '6', 0,
/* 594 */ 'f', 'p', '6', 0,
/* 598 */ 'c', 'r', '6', 0,
/* 602 */ 'd', 'r', '6', 0,
/* 606 */ 'x', 'm', 'm', '1', '7', 0,
/* 612 */ 'y', 'm', 'm', '1', '7', 0,
/* 618 */ 'z', 'm', 'm', '1', '7', 0,
/* 624 */ 'x', 'm', 'm', '2', '7', 0,
/* 630 */ 'y', 'm', 'm', '2', '7', 0,
/* 636 */ 'z', 'm', 'm', '2', '7', 0,
/* 642 */ 'k', '7', 0,
/* 645 */ 'x', 'm', 'm', '7', 0,
/* 650 */ 'y', 'm', 'm', '7', 0,
/* 655 */ 'z', 'm', 'm', '7', 0,
/* 660 */ 'f', 'p', '7', 0,
/* 664 */ 'c', 'r', '7', 0,
/* 668 */ 'd', 'r', '7', 0,
/* 672 */ 'x', 'm', 'm', '1', '8', 0,
/* 678 */ 'y', 'm', 'm', '1', '8', 0,
/* 684 */ 'z', 'm', 'm', '1', '8', 0,
/* 690 */ 'x', 'm', 'm', '2', '8', 0,
/* 696 */ 'y', 'm', 'm', '2', '8', 0,
/* 702 */ 'z', 'm', 'm', '2', '8', 0,
/* 708 */ 'x', 'm', 'm', '8', 0,
/* 713 */ 'y', 'm', 'm', '8', 0,
/* 718 */ 'z', 'm', 'm', '8', 0,
/* 723 */ 'c', 'r', '8', 0,
/* 727 */ 'd', 'r', '8', 0,
/* 731 */ 'x', 'm', 'm', '1', '9', 0,
/* 737 */ 'y', 'm', 'm', '1', '9', 0,
/* 743 */ 'z', 'm', 'm', '1', '9', 0,
/* 749 */ 'x', 'm', 'm', '2', '9', 0,
/* 755 */ 'y', 'm', 'm', '2', '9', 0,
/* 761 */ 'z', 'm', 'm', '2', '9', 0,
/* 767 */ 'x', 'm', 'm', '9', 0,
/* 772 */ 'y', 'm', 'm', '9', 0,
/* 777 */ 'z', 'm', 'm', '9', 0,
/* 782 */ 'c', 'r', '9', 0,
/* 786 */ 'd', 'r', '9', 0,
/* 790 */ 'r', '1', '0', 'b', 0,
/* 795 */ 'r', '1', '1', 'b', 0,
/* 800 */ 'r', '1', '2', 'b', 0,
/* 805 */ 'r', '1', '3', 'b', 0,
/* 810 */ 'r', '1', '4', 'b', 0,
/* 815 */ 'r', '1', '5', 'b', 0,
/* 820 */ 'r', '8', 'b', 0,
/* 824 */ 'r', '9', 'b', 0,
/* 828 */ 'r', '1', '0', 'd', 0,
/* 833 */ 'r', '1', '1', 'd', 0,
/* 838 */ 'r', '1', '2', 'd', 0,
/* 843 */ 'r', '1', '3', 'd', 0,
/* 848 */ 'r', '1', '4', 'd', 0,
/* 853 */ 'r', '1', '5', 'd', 0,
/* 858 */ 'r', '8', 'd', 0,
/* 862 */ 'r', '9', 'd', 0,
/* 866 */ 'a', 'h', 0,
/* 869 */ 'b', 'h', 0,
/* 872 */ 'c', 'h', 0,
/* 875 */ 'd', 'h', 0,
/* 878 */ 'e', 'd', 'i', 0,
/* 882 */ 'r', 'd', 'i', 0,
/* 886 */ 'e', 's', 'i', 0,
/* 890 */ 'r', 's', 'i', 0,
/* 894 */ 'a', 'l', 0,
/* 897 */ 'b', 'l', 0,
/* 900 */ 'c', 'l', 0,
/* 903 */ 'd', 'l', 0,
/* 906 */ 'd', 'i', 'l', 0,
/* 910 */ 's', 'i', 'l', 0,
/* 914 */ 'b', 'p', 'l', 0,
/* 918 */ 's', 'p', 'l', 0,
/* 922 */ 'e', 'b', 'p', 0,
/* 926 */ 'r', 'b', 'p', 0,
/* 930 */ 'e', 'i', 'p', 0,
/* 934 */ 'r', 'i', 'p', 0,
/* 938 */ 'e', 's', 'p', 0,
/* 942 */ 'r', 's', 'p', 0,
/* 946 */ 'c', 's', 0,
/* 949 */ 'd', 's', 0,
/* 952 */ 'e', 's', 0,
/* 955 */ 'f', 's', 0,
/* 958 */ 'f', 'l', 'a', 'g', 's', 0,
/* 964 */ 's', 's', 0,
/* 967 */ 'r', '1', '0', 'w', 0,
/* 972 */ 'r', '1', '1', 'w', 0,
/* 977 */ 'r', '1', '2', 'w', 0,
/* 982 */ 'r', '1', '3', 'w', 0,
/* 987 */ 'r', '1', '4', 'w', 0,
/* 992 */ 'r', '1', '5', 'w', 0,
/* 997 */ 'r', '8', 'w', 0,
/* 1001 */ 'r', '9', 'w', 0,
/* 1005 */ 'f', 'p', 's', 'w', 0,
/* 1010 */ 'e', 'a', 'x', 0,
/* 1014 */ 'r', 'a', 'x', 0,
/* 1018 */ 'e', 'b', 'x', 0,
/* 1022 */ 'r', 'b', 'x', 0,
/* 1026 */ 'e', 'c', 'x', 0,
/* 1030 */ 'r', 'c', 'x', 0,
/* 1034 */ 'e', 'd', 'x', 0,
/* 1038 */ 'r', 'd', 'x', 0,
/* 1042 */ 'e', 'i', 'z', 0,
/* 1046 */ 'r', 'i', 'z', 0,
};
static const uint32_t RegAsmOffset[] = {
828, 856, 973, 831, 859, 885, 876, 981, 834, 862, 908, 989, 837, 841,
868, 865, 911, 997, 972, 884, 980, 988, 840, 996, 920, 892, 1004, 914,
848, 900, 967, 917, 923, 893, 976, 888, 984, 992, 844, 1000, 896, 1008,
852, 904, 849, 872, 901, 880, 926, 129, 218, 289, 360, 431, 502, 568,
634, 693, 748, 66, 155, 244, 315, 386, 457, 133, 222, 293, 364, 435,
506, 572, 638, 125, 214, 285, 356, 427, 498, 564, 630, 107, 196, 267,
338, 409, 480, 546, 612, 111, 200, 271, 342, 413, 484, 550, 616, 694,
749, 67, 156, 245, 316, 387, 458, 0, 6, 12, 18, 24, 30, 36,
42, 110, 199, 270, 341, 412, 483, 549, 615, 678, 733, 48, 137, 226,
297, 368, 439, 510, 576, 642, 697, 71, 160, 249, 320, 391, 462, 528,
594, 660, 715, 89, 178, 115, 204, 275, 346, 417, 488, 554, 620, 683,
738, 54, 143, 232, 303, 374, 445, 516, 582, 648, 703, 77, 166, 255,
326, 397, 468, 534, 600, 666, 721, 95, 184, 120, 209, 280, 351, 422,
493, 559, 625, 688, 743, 60, 149, 238, 309, 380, 451, 522, 588, 654,
709, 83, 172, 261, 332, 403, 474, 540, 606, 672, 727, 101, 190, 782,
786, 752, 757, 762, 767, 772, 777, 820, 824, 790, 795, 800, 805, 810,
815, 959, 963, 929, 934, 939, 944, 949, 954,
866, 894, 1011, 869, 897, 923, 914, 1019, 872, 900, 946, 1027, 875, 879,
906, 903, 949, 1035, 1010, 922, 1018, 1026, 878, 1034, 958, 930, 1042, 952,
886, 938, 1005, 955, 961, 931, 1014, 926, 1022, 1030, 882, 1038, 934, 1046,
890, 942, 887, 910, 939, 918, 964, 134, 228, 304, 380, 456, 532, 598,
664, 723, 782, 66, 160, 254, 330, 406, 482, 138, 232, 308, 384, 460,
536, 602, 668, 727, 786, 71, 165, 259, 335, 411, 487, 130, 224, 300,
376, 452, 528, 594, 660, 112, 206, 282, 358, 434, 510, 576, 642, 116,
210, 286, 362, 438, 514, 580, 646, 724, 783, 67, 161, 255, 331, 407,
483, 0, 6, 12, 18, 24, 30, 36, 42, 115, 209, 285, 361, 437,
513, 579, 645, 708, 767, 48, 142, 236, 312, 388, 464, 540, 606, 672,
731, 76, 170, 264, 340, 416, 492, 558, 624, 690, 749, 94, 188, 120,
214, 290, 366, 442, 518, 584, 650, 713, 772, 54, 148, 242, 318, 394,
470, 546, 612, 678, 737, 82, 176, 270, 346, 422, 498, 564, 630, 696,
755, 100, 194, 125, 219, 295, 371, 447, 523, 589, 655, 718, 777, 60,
154, 248, 324, 400, 476, 552, 618, 684, 743, 88, 182, 276, 352, 428,
504, 570, 636, 702, 761, 106, 200, 820, 824, 790, 795, 800, 805, 810,
815, 858, 862, 828, 833, 838, 843, 848, 853, 997, 1001, 967, 972, 977,
982, 987, 992,
};
//int i;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -166,14 +166,6 @@ static void printSSECC(MCInst *MI, unsigned Op, SStream *OS)
case 5: SStream_concat0(OS, "nlt"); op_addSseCC(MI, X86_SSE_CC_NLT); break;
case 6: SStream_concat0(OS, "nle"); op_addSseCC(MI, X86_SSE_CC_NLE); break;
case 7: SStream_concat0(OS, "ord"); op_addSseCC(MI, X86_SSE_CC_ORD); break;
case 8: SStream_concat0(OS, "eq_uq"); op_addSseCC(MI, X86_SSE_CC_EQ_UQ); break;
case 9: SStream_concat0(OS, "nge"); op_addSseCC(MI, X86_SSE_CC_NGE); break;
case 0xa: SStream_concat0(OS, "ngt"); op_addSseCC(MI, X86_SSE_CC_NGT); break;
case 0xb: SStream_concat0(OS, "false"); op_addSseCC(MI, X86_SSE_CC_FALSE); break;
case 0xc: SStream_concat0(OS, "neq_oq"); op_addSseCC(MI, X86_SSE_CC_NEQ_OQ); break;
case 0xd: SStream_concat0(OS, "ge"); op_addSseCC(MI, X86_SSE_CC_GE); break;
case 0xe: SStream_concat0(OS, "gt"); op_addSseCC(MI, X86_SSE_CC_GT); break;
case 0xf: SStream_concat0(OS, "true"); op_addSseCC(MI, X86_SSE_CC_TRUE); break;
}
}

View File

@ -151,6 +151,14 @@ static name_map reg_name_maps[] = {
{ X86_REG_DR5, "dr5" },
{ X86_REG_DR6, "dr6" },
{ X86_REG_DR7, "dr7" },
{ X86_REG_DR8, "dr8" },
{ X86_REG_DR9, "dr9" },
{ X86_REG_DR10, "dr10" },
{ X86_REG_DR11, "dr11" },
{ X86_REG_DR12, "dr12" },
{ X86_REG_DR13, "dr13" },
{ X86_REG_DR14, "dr14" },
{ X86_REG_DR15, "dr15" },
{ X86_REG_FP0, "fp0" },
{ X86_REG_FP1, "fp1" },
{ X86_REG_FP2, "fp2" },
@ -390,6 +398,14 @@ uint8_t regsize_map_32 [] = {
4, // { X86_REG_DR5, "dr5" },
4, // { X86_REG_DR6, "dr6" },
4, // { X86_REG_DR7, "dr7" },
4, // { X86_REG_DR8, "dr8" },
4, // { X86_REG_DR9, "dr9" },
4, // { X86_REG_DR10, "dr10" },
4, // { X86_REG_DR11, "dr11" },
4, // { X86_REG_DR12, "dr12" },
4, // { X86_REG_DR13, "dr13" },
4, // { X86_REG_DR14, "dr14" },
4, // { X86_REG_DR15, "dr15" },
10, // { X86_REG_FP0, "fp0" },
10, // { X86_REG_FP1, "fp1" },
10, // { X86_REG_FP2, "fp2" },
@ -628,6 +644,14 @@ uint8_t regsize_map_64 [] = {
8, // { X86_REG_DR5, "dr5" },
8, // { X86_REG_DR6, "dr6" },
8, // { X86_REG_DR7, "dr7" },
8, // { X86_REG_DR8, "dr8" },
8, // { X86_REG_DR9, "dr9" },
8, // { X86_REG_DR10, "dr10" },
8, // { X86_REG_DR11, "dr11" },
8, // { X86_REG_DR12, "dr12" },
8, // { X86_REG_DR13, "dr13" },
8, // { X86_REG_DR14, "dr14" },
8, // { X86_REG_DR15, "dr15" },
10, // { X86_REG_FP0, "fp0" },
10, // { X86_REG_FP1, "fp1" },
10, // { X86_REG_FP2, "fp2" },
@ -997,6 +1021,7 @@ static name_map insn_name_maps[] = {
{ X86_INS_FPREM, "fprem" },
{ X86_INS_FPREM1, "fprem1" },
{ X86_INS_FPTAN, "fptan" },
{ X86_INS_FFREEP, "ffreep" },
{ X86_INS_FRNDINT, "frndint" },
{ X86_INS_FRSTOR, "frstor" },
{ X86_INS_FNSAVE, "fnsave" },
@ -1489,6 +1514,7 @@ static name_map insn_name_maps[] = {
{ X86_INS_FST, "fst" },
{ X86_INS_FSTP, "fstp" },
{ X86_INS_FSTPNCE, "fstpnce" },
{ X86_INS_FXCH, "fxch" },
{ X86_INS_SUBPD, "subpd" },
{ X86_INS_SUBPS, "subps" },
{ X86_INS_FSUBR, "fsubr" },
@ -2088,7 +2114,6 @@ static name_map insn_name_maps[] = {
{ X86_INS_XACQUIRE, "xacquire" },
{ X86_INS_XBEGIN, "xbegin" },
{ X86_INS_XCHG, "xchg" },
{ X86_INS_FXCH, "fxch" },
{ X86_INS_XCRYPTCBC, "xcryptcbc" },
{ X86_INS_XCRYPTCFB, "xcryptcfb" },
{ X86_INS_XCRYPTCTR, "xcryptctr" },
@ -2109,6 +2134,8 @@ static name_map insn_name_maps[] = {
{ X86_INS_XSHA256, "xsha256" },
{ X86_INS_XSTORE, "xstore" },
{ X86_INS_XTEST, "xtest" },
{ X86_INS_FDISI8087_NOP, "fdisi8087_nop" },
{ X86_INS_FENI8087_NOP, "feni8087_nop" },
};
#endif
@ -2403,6 +2430,12 @@ static insn_map insns[] = { // full x86 instructions
X86_ADC64rr_REV, X86_INS_ADC,
#ifndef CAPSTONE_DIET
{ X86_REG_EFLAGS, 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_ADC82_8ri8, X86_INS_ADC,
#ifndef CAPSTONE_DIET
{ X86_REG_EFLAGS, 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -2415,6 +2448,12 @@ static insn_map insns[] = { // full x86 instructions
X86_ADC8mi, X86_INS_ADC,
#ifndef CAPSTONE_DIET
{ X86_REG_EFLAGS, 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_ADC8mi8, X86_INS_ADC,
#ifndef CAPSTONE_DIET
{ X86_REG_EFLAGS, 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -2631,6 +2670,18 @@ static insn_map insns[] = { // full x86 instructions
X86_ADD64rr_REV, X86_INS_ADD,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_ADD82_8mi8, X86_INS_ADD,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_ADD82_8ri8, X86_INS_ADD,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -2655,12 +2706,6 @@ static insn_map insns[] = { // full x86 instructions
X86_ADD8ri, X86_INS_ADD,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_ADD8ri8, X86_INS_ADD,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -3075,6 +3120,18 @@ static insn_map insns[] = { // full x86 instructions
X86_AND64rr_REV, X86_INS_AND,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_AND82_8mi8, X86_INS_AND,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_AND82_8ri8, X86_INS_AND,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -3099,12 +3156,6 @@ static insn_map insns[] = { // full x86 instructions
X86_AND8ri, X86_INS_AND,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_AND8ri8, X86_INS_AND,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -4863,6 +4914,12 @@ static insn_map insns[] = { // full x86 instructions
X86_CMP64rr_REV, X86_INS_CMP,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_CMP82_8ri8, X86_INS_CMP,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -4875,6 +4932,12 @@ static insn_map insns[] = { // full x86 instructions
X86_CMP8mi, X86_INS_CMP,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_CMP8mi8, X86_INS_CMP,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -6111,6 +6174,12 @@ static insn_map insns[] = { // full x86 instructions
X86_FPTAN, X86_INS_FPTAN,
#ifndef CAPSTONE_DIET
{ 0 }, { 0 }, { 0 }, 0, 0
#endif
},
{
X86_FP_FFREEP, X86_INS_FFREEP,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_FPSW, 0 }, { 0 }, 0, 0
#endif
},
{
@ -11397,6 +11466,12 @@ static insn_map insns[] = { // full x86 instructions
X86_MOVSX64rm32, X86_INS_MOVSXD,
#ifndef CAPSTONE_DIET
{ 0 }, { 0 }, { 0 }, 0, 0
#endif
},
{
X86_MOVSX64rm32_alt, X86_INS_MOVSXD,
#ifndef CAPSTONE_DIET
{ 0 }, { 0 }, { X86_GRP_MODE64, 0 }, 0, 0
#endif
},
{
@ -12225,6 +12300,18 @@ static insn_map insns[] = { // full x86 instructions
X86_OR64rr_REV, X86_INS_OR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_OR82_8mi8, X86_INS_OR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_OR82_8ri8, X86_INS_OR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -12249,12 +12336,6 @@ static insn_map insns[] = { // full x86 instructions
X86_OR8ri, X86_INS_OR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_OR8ri8, X86_INS_OR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -16083,6 +16164,12 @@ static insn_map insns[] = { // full x86 instructions
X86_SBB64rr_REV, X86_INS_SBB,
#ifndef CAPSTONE_DIET
{ X86_REG_EFLAGS, 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_SBB82_8ri8, X86_INS_SBB,
#ifndef CAPSTONE_DIET
{ X86_REG_EFLAGS, 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -16095,6 +16182,12 @@ static insn_map insns[] = { // full x86 instructions
X86_SBB8mi, X86_INS_SBB,
#ifndef CAPSTONE_DIET
{ X86_REG_EFLAGS, 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_SBB8mi8, X86_INS_SBB,
#ifndef CAPSTONE_DIET
{ X86_REG_EFLAGS, 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -17451,6 +17544,18 @@ static insn_map insns[] = { // full x86 instructions
X86_SUB64rr_REV, X86_INS_SUB,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_SUB82_8mi8, X86_INS_SUB,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_SUB82_8ri8, X86_INS_SUB,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -17475,12 +17580,6 @@ static insn_map insns[] = { // full x86 instructions
X86_SUB8ri, X86_INS_SUB,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_SUB8ri8, X86_INS_SUB,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -37707,6 +37806,18 @@ static insn_map insns[] = { // full x86 instructions
X86_XOR64rr_REV, X86_INS_XOR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_XOR82_8mi8, X86_INS_XOR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_XOR82_8ri8, X86_INS_XOR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -37731,12 +37842,6 @@ static insn_map insns[] = { // full x86 instructions
X86_XOR8ri, X86_INS_XOR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_XOR8ri8, X86_INS_XOR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -37851,6 +37956,18 @@ static insn_map insns[] = { // full x86 instructions
X86_XTEST, X86_INS_XTEST,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_fdisi8087_nop, X86_INS_FDISI8087_NOP,
#ifndef CAPSTONE_DIET
{ 0 }, { 0 }, { 0 }, 0, 0
#endif
},
{
X86_feni8087_nop, X86_INS_FENI8087_NOP,
#ifndef CAPSTONE_DIET
{ 0 }, { 0 }, { 0 }, 0, 0
#endif
},
};
@ -38048,6 +38165,12 @@ static insn_map insns[] = { // reduce x86 instructions
X86_ADC64rr_REV, X86_INS_ADC,
#ifndef CAPSTONE_DIET
{ X86_REG_EFLAGS, 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_ADC82_8ri8, X86_INS_ADC,
#ifndef CAPSTONE_DIET
{ X86_REG_EFLAGS, 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -38060,6 +38183,12 @@ static insn_map insns[] = { // reduce x86 instructions
X86_ADC8mi, X86_INS_ADC,
#ifndef CAPSTONE_DIET
{ X86_REG_EFLAGS, 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_ADC8mi8, X86_INS_ADC,
#ifndef CAPSTONE_DIET
{ X86_REG_EFLAGS, 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -38276,6 +38405,18 @@ static insn_map insns[] = { // reduce x86 instructions
X86_ADD64rr_REV, X86_INS_ADD,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_ADD82_8mi8, X86_INS_ADD,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_ADD82_8ri8, X86_INS_ADD,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -38300,12 +38441,6 @@ static insn_map insns[] = { // reduce x86 instructions
X86_ADD8ri, X86_INS_ADD,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_ADD8ri8, X86_INS_ADD,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -38510,6 +38645,18 @@ static insn_map insns[] = { // reduce x86 instructions
X86_AND64rr_REV, X86_INS_AND,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_AND82_8mi8, X86_INS_AND,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_AND82_8ri8, X86_INS_AND,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -38534,12 +38681,6 @@ static insn_map insns[] = { // reduce x86 instructions
X86_AND8ri, X86_INS_AND,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_AND8ri8, X86_INS_AND,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -40142,6 +40283,12 @@ static insn_map insns[] = { // reduce x86 instructions
X86_CMP64rr_REV, X86_INS_CMP,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_CMP82_8ri8, X86_INS_CMP,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -40154,6 +40301,12 @@ static insn_map insns[] = { // reduce x86 instructions
X86_CMP8mi, X86_INS_CMP,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_CMP8mi8, X86_INS_CMP,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -42710,6 +42863,12 @@ static insn_map insns[] = { // reduce x86 instructions
X86_MOVSX64rm32, X86_INS_MOVSXD,
#ifndef CAPSTONE_DIET
{ 0 }, { 0 }, { 0 }, 0, 0
#endif
},
{
X86_MOVSX64rm32_alt, X86_INS_MOVSXD,
#ifndef CAPSTONE_DIET
{ 0 }, { 0 }, { X86_GRP_MODE64, 0 }, 0, 0
#endif
},
{
@ -43334,6 +43493,18 @@ static insn_map insns[] = { // reduce x86 instructions
X86_OR64rr_REV, X86_INS_OR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_OR82_8mi8, X86_INS_OR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_OR82_8ri8, X86_INS_OR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -43358,12 +43529,6 @@ static insn_map insns[] = { // reduce x86 instructions
X86_OR8ri, X86_INS_OR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_OR8ri8, X86_INS_OR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -45158,6 +45323,12 @@ static insn_map insns[] = { // reduce x86 instructions
X86_SBB64rr_REV, X86_INS_SBB,
#ifndef CAPSTONE_DIET
{ X86_REG_EFLAGS, 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_SBB82_8ri8, X86_INS_SBB,
#ifndef CAPSTONE_DIET
{ X86_REG_EFLAGS, 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -45170,6 +45341,12 @@ static insn_map insns[] = { // reduce x86 instructions
X86_SBB8mi, X86_INS_SBB,
#ifndef CAPSTONE_DIET
{ X86_REG_EFLAGS, 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_SBB8mi8, X86_INS_SBB,
#ifndef CAPSTONE_DIET
{ X86_REG_EFLAGS, 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -46232,6 +46409,18 @@ static insn_map insns[] = { // reduce x86 instructions
X86_SUB64rr_REV, X86_INS_SUB,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_SUB82_8mi8, X86_INS_SUB,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_SUB82_8ri8, X86_INS_SUB,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -46256,12 +46445,6 @@ static insn_map insns[] = { // reduce x86 instructions
X86_SUB8ri, X86_INS_SUB,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_SUB8ri8, X86_INS_SUB,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -47114,6 +47297,18 @@ static insn_map insns[] = { // reduce x86 instructions
X86_XOR64rr_REV, X86_INS_XOR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_XOR82_8mi8, X86_INS_XOR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
X86_XOR82_8ri8, X86_INS_XOR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{
@ -47138,12 +47333,6 @@ static insn_map insns[] = { // reduce x86 instructions
X86_XOR8ri, X86_INS_XOR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
#endif
},
{
X86_XOR8ri8, X86_INS_XOR,
#ifndef CAPSTONE_DIET
{ 0 }, { X86_REG_EFLAGS, 0 }, { X86_GRP_NOT64BITMODE, 0 }, 0, 0
#endif
},
{

View File

@ -70,6 +70,8 @@ public class TestArm {
System.out.printf("\t\t\toperands[%d].mem.scale: %d\n", c, (i.value.mem.scale));
if (i.value.mem.disp != 0)
System.out.printf("\t\t\toperands[%d].mem.disp: 0x%x\n", c, (i.value.mem.disp));
if (i.value.mem.lshift != 0)
System.out.printf("\t\t\toperands[%d].mem.lshift: 0x%x\n", c, (i.value.mem.lshift));
}
if (i.vector_index > 0)
System.out.printf("\t\t\toperands[%d].vector_index = %d\n", c, (i.vector_index));

View File

@ -18,10 +18,11 @@ public class Arm {
public int index;
public int scale;
public int disp;
public int lshift;
@Override
public List getFieldOrder() {
return Arrays.asList("base", "index", "scale", "disp");
return Arrays.asList("base", "index", "scale", "disp", "lshift");
}
}

View File

@ -273,7 +273,7 @@ public class Capstone {
}
// Capstone API version
public static final int CS_API_MAJOR = 3;
public static final int CS_API_MAJOR = 4;
public static final int CS_API_MINOR = 0;
// architectures

File diff suppressed because it is too large Load Diff

View File

@ -18,7 +18,8 @@ type arm_op_mem = {
base: int;
index: int;
scale: int;
disp: int
disp: int;
lshift: int;
}
type arm_op_value =

View File

@ -69,6 +69,7 @@ let _ARM_SYSREG_FAULTMASK = 277;;
let _ARM_SYSREG_CONTROL = 278;;
(* The memory barrier constants map directly to the 4-bit encoding of *)
(* the option field for Memory Barrier operations. *)
let _ARM_MB_INVALID = 0;;

View File

@ -147,11 +147,12 @@ CAMLprim value _cs_disasm(cs_arch arch, csh handle, const uint8_t * code, size_t
break;
case ARM_OP_MEM:
tmp = caml_alloc(1, 6);
tmp3 = caml_alloc(4, 0);
tmp3 = caml_alloc(5, 0);
Store_field(tmp3, 0, Val_int(insn[j-1].detail->arm.operands[i].mem.base));
Store_field(tmp3, 1, Val_int(insn[j-1].detail->arm.operands[i].mem.index));
Store_field(tmp3, 2, Val_int(insn[j-1].detail->arm.operands[i].mem.scale));
Store_field(tmp3, 3, Val_int(insn[j-1].detail->arm.operands[i].mem.disp));
Store_field(tmp3, 4, Val_int(insn[j-1].detail->arm.operands[i].mem.lshift));
Store_field(tmp, 0, tmp3);
break;
case ARM_OP_SETEND:

View File

@ -46,6 +46,8 @@ let print_op handle i op =
printf "\t\t\toperands[%u].mem.scale: %d\n" i mem.scale;
if mem.disp != 0 then
printf "\t\t\toperands[%u].mem.disp: 0x%x\n" i mem.disp;
if mem.lshift != 0 then
printf "\t\t\toperands[%u].mem.lshift: 0x%x\n" i mem.lshift;
);
| ARM_OP_SETEND sd -> printf "\t\top[%d]: SETEND = %u\n" i sd;
);

File diff suppressed because it is too large Load Diff

View File

@ -95,7 +95,7 @@ __all__ = [
# Capstone C interface
# API version
CS_API_MAJOR = 3
CS_API_MAJOR = 4
CS_API_MINOR = 0
# architectures

View File

@ -10,6 +10,7 @@ class ArmOpMem(ctypes.Structure):
('index', ctypes.c_uint),
('scale', ctypes.c_int),
('disp', ctypes.c_int),
('lshift', ctypes.c_int),
)
class ArmOpShift(ctypes.Structure):

File diff suppressed because it is too large Load Diff

View File

@ -10,9 +10,13 @@ from distutils.command.build_clib import build_clib
from distutils.command.sdist import sdist
from distutils.core import setup
<<<<<<< HEAD
VERSION = '3.0'
SYSTEM = platform.system().lower()
=======
VERSION = '4.0'
>>>>>>> 58fbf2f6272ab2e77152041717e7524ef0b9b036
class LazyList(list):
"""A list which re-evaluates each time.

View File

@ -3,7 +3,7 @@ from distutils.extension import Extension
from distutils.command.install_lib import install_lib as _install
from Cython.Distutils import build_ext
VERSION = '3.0'
VERSION = '4.0'
compile_args = ['-O3', '-fomit-frame-pointer']

View File

@ -10,7 +10,7 @@ from xprint import to_hex, to_x, to_x_32
ARM_CODE = b"\xED\xFF\xFF\xEB\x04\xe0\x2d\xe5\x00\x00\x00\x00\xe0\x83\x22\xe5\xf1\x02\x03\x0e\x00\x00\xa0\xe3\x02\x30\xc1\xe7\x00\x00\x53\xe3\x00\x02\x01\xf1\x05\x40\xd0\xe8\xf4\x80\x00\x00"
ARM_CODE2 = b"\xd1\xe8\x00\xf0\xf0\x24\x04\x07\x1f\x3c\xf2\xc0\x00\x00\x4f\xf0\x00\x01\x46\x6c"
THUMB_CODE = b"\x70\x47\xeb\x46\x83\xb0\xc9\x68\x1f\xb1\x30\xbf\xaf\xf3\x20\x84"
THUMB_CODE = b"\x70\x47\xeb\x46\x83\xb0\xc9\x68\x1f\xb1\x30\xbf\xaf\xf3\x20\x84\x52\xf8\x23\xf0"
THUMB_CODE2 = b"\x4f\xf0\x00\x01\xbd\xe8\x00\x88\xd1\xe8\x00\xf0\x18\xbf\xad\xbf\xf3\xff\x0b\x0c\x86\xf3\x00\x89\x80\xf3\x00\x8c\x4f\xfa\x99\xf6\xd0\xff\xa2\x01"
THUMB_MCLASS = b"\xef\xf3\x02\x80"
ARMV8 = b"\xe0\x3b\xb2\xee\x42\x00\x01\xe1\x51\xf0\x7f\xf5"
@ -68,6 +68,9 @@ def print_insn_detail(insn):
if i.mem.disp != 0:
print("\t\t\toperands[%u].mem.disp: 0x%s" \
% (c, to_x_32(i.mem.disp)))
if i.mem.lshift != 0:
print("\t\t\toperands[%u].mem.lshift: 0x%s" \
% (c, to_x_32(i.mem.lshift)))
if i.shift.type != ARM_SFT_INVALID and i.shift.value:
print("\t\t\tShift: %u = %u" \
@ -116,7 +119,6 @@ def test_class():
for insn in md.disasm(code, 0x1000):
print_insn_detail(insn)
print ()
print ("0x%x:\n" % (insn.address + insn.size))
except CsError as e:
print("ERROR: %s" % e)

View File

@ -217,6 +217,7 @@ typedef struct arm_op_mem {
unsigned int index; // index register
int scale; // scale for index register (can be 1, or -1)
int disp; // displacement/offset value
int lshift; // left-shift on index register, or 0 if irrelevant.
} arm_op_mem;
// Instruction operand

View File

@ -37,7 +37,7 @@ extern "C" {
#endif
// Capstone API version
#define CS_API_MAJOR 3
#define CS_API_MAJOR 4
#define CS_API_MINOR 0
// Macro to create combined version which can be compared to

View File

@ -30,8 +30,10 @@ typedef enum x86_reg {
X86_REG_CR6, X86_REG_CR7, X86_REG_CR8, X86_REG_CR9, X86_REG_CR10,
X86_REG_CR11, X86_REG_CR12, X86_REG_CR13, X86_REG_CR14, X86_REG_CR15,
X86_REG_DR0, X86_REG_DR1, X86_REG_DR2, X86_REG_DR3, X86_REG_DR4,
X86_REG_DR5, X86_REG_DR6, X86_REG_DR7, X86_REG_FP0, X86_REG_FP1,
X86_REG_FP2, X86_REG_FP3, X86_REG_FP4, X86_REG_FP5, X86_REG_FP6, X86_REG_FP7,
X86_REG_DR5, X86_REG_DR6, X86_REG_DR7, X86_REG_DR8, X86_REG_DR9,
X86_REG_DR10, X86_REG_DR11, X86_REG_DR12, X86_REG_DR13, X86_REG_DR14,
X86_REG_DR15, X86_REG_FP0, X86_REG_FP1, X86_REG_FP2, X86_REG_FP3,
X86_REG_FP4, X86_REG_FP5, X86_REG_FP6, X86_REG_FP7,
X86_REG_K0, X86_REG_K1, X86_REG_K2, X86_REG_K3, X86_REG_K4,
X86_REG_K5, X86_REG_K6, X86_REG_K7, X86_REG_MM0, X86_REG_MM1,
X86_REG_MM2, X86_REG_MM3, X86_REG_MM4, X86_REG_MM5, X86_REG_MM6,
@ -96,14 +98,6 @@ typedef enum x86_sse_cc {
X86_SSE_CC_NLT,
X86_SSE_CC_NLE,
X86_SSE_CC_ORD,
X86_SSE_CC_EQ_UQ,
X86_SSE_CC_NGE,
X86_SSE_CC_NGT,
X86_SSE_CC_FALSE,
X86_SSE_CC_NEQ_OQ,
X86_SSE_CC_GE,
X86_SSE_CC_GT,
X86_SSE_CC_TRUE,
} x86_sse_cc;
//> AVX Code Condition type
@ -156,7 +150,8 @@ typedef enum x86_avx_rm {
typedef enum x86_prefix {
X86_PREFIX_LOCK = 0xf0, // lock (cs_x86.prefix[0]
X86_PREFIX_REP = 0xf3, // rep (cs_x86.prefix[0]
X86_PREFIX_REPNE = 0xf2, // repne (cs_x86.prefix[0]
X86_PREFIX_REPE = 0xf3, // repe/repz (cs_x86.prefix[0]
X86_PREFIX_REPNE = 0xf2, // repne/repnz (cs_x86.prefix[0]
X86_PREFIX_CS = 0x2e, // segment override CS (cs_x86.prefix[1]
X86_PREFIX_SS = 0x36, // segment override SS (cs_x86.prefix[1]
@ -443,6 +438,7 @@ typedef enum x86_insn {
X86_INS_FPREM,
X86_INS_FPREM1,
X86_INS_FPTAN,
X86_INS_FFREEP,
X86_INS_FRNDINT,
X86_INS_FRSTOR,
X86_INS_FNSAVE,
@ -935,6 +931,7 @@ typedef enum x86_insn {
X86_INS_FST,
X86_INS_FSTP,
X86_INS_FSTPNCE,
X86_INS_FXCH,
X86_INS_SUBPD,
X86_INS_SUBPS,
X86_INS_FSUBR,
@ -1534,7 +1531,6 @@ typedef enum x86_insn {
X86_INS_XACQUIRE,
X86_INS_XBEGIN,
X86_INS_XCHG,
X86_INS_FXCH,
X86_INS_XCRYPTCBC,
X86_INS_XCRYPTCFB,
X86_INS_XCRYPTCTR,
@ -1555,8 +1551,10 @@ typedef enum x86_insn {
X86_INS_XSHA256,
X86_INS_XSTORE,
X86_INS_XTEST,
X86_INS_FDISI8087_NOP,
X86_INS_FENI8087_NOP,
X86_INS_ENDING, // mark the end of the list of insn
X86_INS_ENDING, // mark the end of the list of insn
} x86_insn;
//> Group of X86 instructions

View File

@ -2,8 +2,8 @@
# To be used to generate capstone.pc for pkg-config
# version major & minor
PKG_MAJOR = 3
PKG_MAJOR = 4
PKG_MINOR = 0
# version bugfix level. Example: PKG_EXTRA = 1
PKG_EXTRA = 1
PKG_EXTRA =

1
suite/x86/README Normal file
View File

@ -0,0 +1 @@
This directory contains some tools to test X86 engine.

2
suite/x86/verify/README Normal file
View File

@ -0,0 +1,2 @@
This directory contains some tools to verify Capstone output,
as well as semantics of X86 machine code.

View File

@ -70,6 +70,8 @@ static void print_insn_detail(cs_insn *ins)
printf("\t\t\toperands[%u].mem.scale: %u\n", i, op->mem.scale);
if (op->mem.disp != 0)
printf("\t\t\toperands[%u].mem.disp: 0x%x\n", i, op->mem.disp);
if (op->mem.lshift != 0)
printf("\t\t\toperands[%u].mem.lshift: 0x%x\n", i, op->mem.lshift);
break;
case ARM_OP_PIMM:
@ -192,7 +194,7 @@ static void test()
//#define THUMB_CODE "\x01\x47" // bx r0
//#define THUMB_CODE "\x02\x47" // bx r0
//#define THUMB_CODE "\x0a\xbf" // itet eq
#define THUMB_CODE "\x70\x47\xeb\x46\x83\xb0\xc9\x68\x1f\xb1\x30\xbf\xaf\xf3\x20\x84"
#define THUMB_CODE "\x70\x47\xeb\x46\x83\xb0\xc9\x68\x1f\xb1\x30\xbf\xaf\xf3\x20\x84\x52\xf8\x23\xf0"
#define THUMB_CODE2 "\x4f\xf0\x00\x01\xbd\xe8\x00\x88\xd1\xe8\x00\xf0\x18\xbf\xad\xbf\xf3\xff\x0b\x0c\x86\xf3\x00\x89\x80\xf3\x00\x8c\x4f\xfa\x99\xf6\xd0\xff\xa2\x01"
#define THUMB_MCLASS "\xef\xf3\x02\x80"
#define ARMV8 "\xe0\x3b\xb2\xee\x42\x00\x01\xe1\x51\xf0\x7f\xf5"