| /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |
| |* *| |
| |* Assembly Matcher Source Fragment *| |
| |* *| |
| |* Automatically generated file, do not edit! *| |
| |* *| |
| \*===----------------------------------------------------------------------===*/ |
| |
| |
| #ifdef GET_ASSEMBLER_HEADER |
| #undef GET_ASSEMBLER_HEADER |
| // This should be included into the middle of the declaration of |
| // your subclasses implementation of MCTargetAsmParser. |
| FeatureBitset ComputeAvailableFeatures(const FeatureBitset &FB) const; |
| void convertToMCInst(unsigned Kind, MCInst &Inst, unsigned Opcode, |
| const OperandVector &Operands); |
| void convertToMapAndConstraints(unsigned Kind, |
| const OperandVector &Operands) override; |
| unsigned MatchInstructionImpl(const OperandVector &Operands, |
| MCInst &Inst, |
| uint64_t &ErrorInfo, |
| FeatureBitset &MissingFeatures, |
| bool matchingInlineAsm, |
| unsigned VariantID = 0); |
| unsigned MatchInstructionImpl(const OperandVector &Operands, |
| MCInst &Inst, |
| uint64_t &ErrorInfo, |
| bool matchingInlineAsm, |
| unsigned VariantID = 0) { |
| FeatureBitset MissingFeatures; |
| return MatchInstructionImpl(Operands, Inst, ErrorInfo, MissingFeatures, |
| matchingInlineAsm, VariantID); |
| } |
| |
| #endif // GET_ASSEMBLER_HEADER_INFO |
| |
| |
| #ifdef GET_OPERAND_DIAGNOSTIC_TYPES |
| #undef GET_OPERAND_DIAGNOSTIC_TYPES |
| |
| Match_InvalidImmUnsignedi4, |
| END_OPERAND_DIAGNOSTIC_TYPES |
| #endif // GET_OPERAND_DIAGNOSTIC_TYPES |
| |
| |
| #ifdef GET_REGISTER_MATCHER |
| #undef GET_REGISTER_MATCHER |
| |
| // Bits for subtarget features that participate in instruction matching. |
| enum SubtargetFeatureBits : uint8_t { |
| Feature_Not64BitModeBit = 4, |
| Feature_In64BitModeBit = 2, |
| Feature_In16BitModeBit = 0, |
| Feature_Not16BitModeBit = 3, |
| Feature_In32BitModeBit = 1, |
| }; |
| |
| static unsigned MatchRegisterName(StringRef Name) { |
| switch (Name.size()) { |
| default: break; |
| case 2: // 34 strings to match. |
| switch (Name[0]) { |
| default: break; |
| case 'a': // 3 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'h': // 1 string to match. |
| return 1; // "ah" |
| case 'l': // 1 string to match. |
| return 2; // "al" |
| case 'x': // 1 string to match. |
| return 3; // "ax" |
| } |
| break; |
| case 'b': // 4 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'h': // 1 string to match. |
| return 4; // "bh" |
| case 'l': // 1 string to match. |
| return 5; // "bl" |
| case 'p': // 1 string to match. |
| return 6; // "bp" |
| case 'x': // 1 string to match. |
| return 9; // "bx" |
| } |
| break; |
| case 'c': // 4 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'h': // 1 string to match. |
| return 10; // "ch" |
| case 'l': // 1 string to match. |
| return 11; // "cl" |
| case 's': // 1 string to match. |
| return 12; // "cs" |
| case 'x': // 1 string to match. |
| return 13; // "cx" |
| } |
| break; |
| case 'd': // 5 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'h': // 1 string to match. |
| return 15; // "dh" |
| case 'i': // 1 string to match. |
| return 16; // "di" |
| case 'l': // 1 string to match. |
| return 19; // "dl" |
| case 's': // 1 string to match. |
| return 20; // "ds" |
| case 'x': // 1 string to match. |
| return 21; // "dx" |
| } |
| break; |
| case 'e': // 1 string to match. |
| if (Name[1] != 's') |
| break; |
| return 31; // "es" |
| case 'f': // 1 string to match. |
| if (Name[1] != 's') |
| break; |
| return 36; // "fs" |
| case 'g': // 1 string to match. |
| if (Name[1] != 's') |
| break; |
| return 38; // "gs" |
| case 'i': // 1 string to match. |
| if (Name[1] != 'p') |
| break; |
| return 49; // "ip" |
| case 'k': // 8 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 112; // "k0" |
| case '1': // 1 string to match. |
| return 113; // "k1" |
| case '2': // 1 string to match. |
| return 114; // "k2" |
| case '3': // 1 string to match. |
| return 115; // "k3" |
| case '4': // 1 string to match. |
| return 116; // "k4" |
| case '5': // 1 string to match. |
| return 117; // "k5" |
| case '6': // 1 string to match. |
| return 118; // "k6" |
| case '7': // 1 string to match. |
| return 119; // "k7" |
| } |
| break; |
| case 'r': // 2 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case '8': // 1 string to match. |
| return 128; // "r8" |
| case '9': // 1 string to match. |
| return 129; // "r9" |
| } |
| break; |
| case 's': // 4 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'i': // 1 string to match. |
| return 62; // "si" |
| case 'p': // 1 string to match. |
| return 65; // "sp" |
| case 's': // 1 string to match. |
| return 68; // "ss" |
| case 't': // 1 string to match. |
| return 136; // "st" |
| } |
| break; |
| } |
| break; |
| case 3: // 73 strings to match. |
| switch (Name[0]) { |
| default: break; |
| case 'b': // 1 string to match. |
| if (memcmp(Name.data()+1, "pl", 2) != 0) |
| break; |
| return 8; // "bpl" |
| case 'c': // 10 strings to match. |
| if (Name[1] != 'r') |
| break; |
| switch (Name[2]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 72; // "cr0" |
| case '1': // 1 string to match. |
| return 73; // "cr1" |
| case '2': // 1 string to match. |
| return 74; // "cr2" |
| case '3': // 1 string to match. |
| return 75; // "cr3" |
| case '4': // 1 string to match. |
| return 76; // "cr4" |
| case '5': // 1 string to match. |
| return 77; // "cr5" |
| case '6': // 1 string to match. |
| return 78; // "cr6" |
| case '7': // 1 string to match. |
| return 79; // "cr7" |
| case '8': // 1 string to match. |
| return 80; // "cr8" |
| case '9': // 1 string to match. |
| return 81; // "cr9" |
| } |
| break; |
| case 'd': // 11 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'i': // 1 string to match. |
| if (Name[2] != 'l') |
| break; |
| return 18; // "dil" |
| case 'r': // 10 strings to match. |
| switch (Name[2]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 88; // "dr0" |
| case '1': // 1 string to match. |
| return 89; // "dr1" |
| case '2': // 1 string to match. |
| return 90; // "dr2" |
| case '3': // 1 string to match. |
| return 91; // "dr3" |
| case '4': // 1 string to match. |
| return 92; // "dr4" |
| case '5': // 1 string to match. |
| return 93; // "dr5" |
| case '6': // 1 string to match. |
| return 94; // "dr6" |
| case '7': // 1 string to match. |
| return 95; // "dr7" |
| case '8': // 1 string to match. |
| return 96; // "dr8" |
| case '9': // 1 string to match. |
| return 97; // "dr9" |
| } |
| break; |
| } |
| break; |
| case 'e': // 10 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (Name[2] != 'x') |
| break; |
| return 22; // "eax" |
| case 'b': // 2 strings to match. |
| switch (Name[2]) { |
| default: break; |
| case 'p': // 1 string to match. |
| return 23; // "ebp" |
| case 'x': // 1 string to match. |
| return 24; // "ebx" |
| } |
| break; |
| case 'c': // 1 string to match. |
| if (Name[2] != 'x') |
| break; |
| return 25; // "ecx" |
| case 'd': // 2 strings to match. |
| switch (Name[2]) { |
| default: break; |
| case 'i': // 1 string to match. |
| return 26; // "edi" |
| case 'x': // 1 string to match. |
| return 27; // "edx" |
| } |
| break; |
| case 'i': // 2 strings to match. |
| switch (Name[2]) { |
| default: break; |
| case 'p': // 1 string to match. |
| return 29; // "eip" |
| case 'z': // 1 string to match. |
| return 30; // "eiz" |
| } |
| break; |
| case 's': // 2 strings to match. |
| switch (Name[2]) { |
| default: break; |
| case 'i': // 1 string to match. |
| return 32; // "esi" |
| case 'p': // 1 string to match. |
| return 33; // "esp" |
| } |
| break; |
| } |
| break; |
| case 'f': // 8 strings to match. |
| if (Name[1] != 'p') |
| break; |
| switch (Name[2]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 104; // "fp0" |
| case '1': // 1 string to match. |
| return 105; // "fp1" |
| case '2': // 1 string to match. |
| return 106; // "fp2" |
| case '3': // 1 string to match. |
| return 107; // "fp3" |
| case '4': // 1 string to match. |
| return 108; // "fp4" |
| case '5': // 1 string to match. |
| return 109; // "fp5" |
| case '6': // 1 string to match. |
| return 110; // "fp6" |
| case '7': // 1 string to match. |
| return 111; // "fp7" |
| } |
| break; |
| case 'm': // 8 strings to match. |
| if (Name[1] != 'm') |
| break; |
| switch (Name[2]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 120; // "mm0" |
| case '1': // 1 string to match. |
| return 121; // "mm1" |
| case '2': // 1 string to match. |
| return 122; // "mm2" |
| case '3': // 1 string to match. |
| return 123; // "mm3" |
| case '4': // 1 string to match. |
| return 124; // "mm4" |
| case '5': // 1 string to match. |
| return 125; // "mm5" |
| case '6': // 1 string to match. |
| return 126; // "mm6" |
| case '7': // 1 string to match. |
| return 127; // "mm7" |
| } |
| break; |
| case 'r': // 22 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case '1': // 6 strings to match. |
| switch (Name[2]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 130; // "r10" |
| case '1': // 1 string to match. |
| return 131; // "r11" |
| case '2': // 1 string to match. |
| return 132; // "r12" |
| case '3': // 1 string to match. |
| return 133; // "r13" |
| case '4': // 1 string to match. |
| return 134; // "r14" |
| case '5': // 1 string to match. |
| return 135; // "r15" |
| } |
| break; |
| case '8': // 3 strings to match. |
| switch (Name[2]) { |
| default: break; |
| case 'b': // 1 string to match. |
| return 248; // "r8b" |
| case 'd': // 1 string to match. |
| return 264; // "r8d" |
| case 'w': // 1 string to match. |
| return 272; // "r8w" |
| } |
| break; |
| case '9': // 3 strings to match. |
| switch (Name[2]) { |
| default: break; |
| case 'b': // 1 string to match. |
| return 249; // "r9b" |
| case 'd': // 1 string to match. |
| return 265; // "r9d" |
| case 'w': // 1 string to match. |
| return 273; // "r9w" |
| } |
| break; |
| case 'a': // 1 string to match. |
| if (Name[2] != 'x') |
| break; |
| return 51; // "rax" |
| case 'b': // 2 strings to match. |
| switch (Name[2]) { |
| default: break; |
| case 'p': // 1 string to match. |
| return 52; // "rbp" |
| case 'x': // 1 string to match. |
| return 53; // "rbx" |
| } |
| break; |
| case 'c': // 1 string to match. |
| if (Name[2] != 'x') |
| break; |
| return 54; // "rcx" |
| case 'd': // 2 strings to match. |
| switch (Name[2]) { |
| default: break; |
| case 'i': // 1 string to match. |
| return 55; // "rdi" |
| case 'x': // 1 string to match. |
| return 56; // "rdx" |
| } |
| break; |
| case 'i': // 2 strings to match. |
| switch (Name[2]) { |
| default: break; |
| case 'p': // 1 string to match. |
| return 58; // "rip" |
| case 'z': // 1 string to match. |
| return 59; // "riz" |
| } |
| break; |
| case 's': // 2 strings to match. |
| switch (Name[2]) { |
| default: break; |
| case 'i': // 1 string to match. |
| return 60; // "rsi" |
| case 'p': // 1 string to match. |
| return 61; // "rsp" |
| } |
| break; |
| } |
| break; |
| case 's': // 3 strings to match. |
| switch (Name[1]) { |
| default: break; |
| case 'i': // 1 string to match. |
| if (Name[2] != 'l') |
| break; |
| return 64; // "sil" |
| case 'p': // 1 string to match. |
| if (Name[2] != 'l') |
| break; |
| return 67; // "spl" |
| case 's': // 1 string to match. |
| if (Name[2] != 'p') |
| break; |
| return 69; // "ssp" |
| } |
| break; |
| } |
| break; |
| case 4: // 70 strings to match. |
| switch (Name[0]) { |
| default: break; |
| case 'c': // 6 strings to match. |
| if (memcmp(Name.data()+1, "r1", 2) != 0) |
| break; |
| switch (Name[3]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 82; // "cr10" |
| case '1': // 1 string to match. |
| return 83; // "cr11" |
| case '2': // 1 string to match. |
| return 84; // "cr12" |
| case '3': // 1 string to match. |
| return 85; // "cr13" |
| case '4': // 1 string to match. |
| return 86; // "cr14" |
| case '5': // 1 string to match. |
| return 87; // "cr15" |
| } |
| break; |
| case 'd': // 6 strings to match. |
| if (memcmp(Name.data()+1, "r1", 2) != 0) |
| break; |
| switch (Name[3]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 98; // "dr10" |
| case '1': // 1 string to match. |
| return 99; // "dr11" |
| case '2': // 1 string to match. |
| return 100; // "dr12" |
| case '3': // 1 string to match. |
| return 101; // "dr13" |
| case '4': // 1 string to match. |
| return 102; // "dr14" |
| case '5': // 1 string to match. |
| return 103; // "dr15" |
| } |
| break; |
| case 'f': // 2 strings to match. |
| if (Name[1] != 'p') |
| break; |
| switch (Name[2]) { |
| default: break; |
| case 'c': // 1 string to match. |
| if (Name[3] != 'r') |
| break; |
| return 34; // "fpcr" |
| case 's': // 1 string to match. |
| if (Name[3] != 'r') |
| break; |
| return 35; // "fpsr" |
| } |
| break; |
| case 'r': // 18 strings to match. |
| if (Name[1] != '1') |
| break; |
| switch (Name[2]) { |
| default: break; |
| case '0': // 3 strings to match. |
| switch (Name[3]) { |
| default: break; |
| case 'b': // 1 string to match. |
| return 250; // "r10b" |
| case 'd': // 1 string to match. |
| return 266; // "r10d" |
| case 'w': // 1 string to match. |
| return 274; // "r10w" |
| } |
| break; |
| case '1': // 3 strings to match. |
| switch (Name[3]) { |
| default: break; |
| case 'b': // 1 string to match. |
| return 251; // "r11b" |
| case 'd': // 1 string to match. |
| return 267; // "r11d" |
| case 'w': // 1 string to match. |
| return 275; // "r11w" |
| } |
| break; |
| case '2': // 3 strings to match. |
| switch (Name[3]) { |
| default: break; |
| case 'b': // 1 string to match. |
| return 252; // "r12b" |
| case 'd': // 1 string to match. |
| return 268; // "r12d" |
| case 'w': // 1 string to match. |
| return 276; // "r12w" |
| } |
| break; |
| case '3': // 3 strings to match. |
| switch (Name[3]) { |
| default: break; |
| case 'b': // 1 string to match. |
| return 253; // "r13b" |
| case 'd': // 1 string to match. |
| return 269; // "r13d" |
| case 'w': // 1 string to match. |
| return 277; // "r13w" |
| } |
| break; |
| case '4': // 3 strings to match. |
| switch (Name[3]) { |
| default: break; |
| case 'b': // 1 string to match. |
| return 254; // "r14b" |
| case 'd': // 1 string to match. |
| return 270; // "r14d" |
| case 'w': // 1 string to match. |
| return 278; // "r14w" |
| } |
| break; |
| case '5': // 3 strings to match. |
| switch (Name[3]) { |
| default: break; |
| case 'b': // 1 string to match. |
| return 255; // "r15b" |
| case 'd': // 1 string to match. |
| return 271; // "r15d" |
| case 'w': // 1 string to match. |
| return 279; // "r15w" |
| } |
| break; |
| } |
| break; |
| case 't': // 8 strings to match. |
| if (memcmp(Name.data()+1, "mm", 2) != 0) |
| break; |
| switch (Name[3]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 144; // "tmm0" |
| case '1': // 1 string to match. |
| return 145; // "tmm1" |
| case '2': // 1 string to match. |
| return 146; // "tmm2" |
| case '3': // 1 string to match. |
| return 147; // "tmm3" |
| case '4': // 1 string to match. |
| return 148; // "tmm4" |
| case '5': // 1 string to match. |
| return 149; // "tmm5" |
| case '6': // 1 string to match. |
| return 150; // "tmm6" |
| case '7': // 1 string to match. |
| return 151; // "tmm7" |
| } |
| break; |
| case 'x': // 10 strings to match. |
| if (memcmp(Name.data()+1, "mm", 2) != 0) |
| break; |
| switch (Name[3]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 152; // "xmm0" |
| case '1': // 1 string to match. |
| return 153; // "xmm1" |
| case '2': // 1 string to match. |
| return 154; // "xmm2" |
| case '3': // 1 string to match. |
| return 155; // "xmm3" |
| case '4': // 1 string to match. |
| return 156; // "xmm4" |
| case '5': // 1 string to match. |
| return 157; // "xmm5" |
| case '6': // 1 string to match. |
| return 158; // "xmm6" |
| case '7': // 1 string to match. |
| return 159; // "xmm7" |
| case '8': // 1 string to match. |
| return 160; // "xmm8" |
| case '9': // 1 string to match. |
| return 161; // "xmm9" |
| } |
| break; |
| case 'y': // 10 strings to match. |
| if (memcmp(Name.data()+1, "mm", 2) != 0) |
| break; |
| switch (Name[3]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 184; // "ymm0" |
| case '1': // 1 string to match. |
| return 185; // "ymm1" |
| case '2': // 1 string to match. |
| return 186; // "ymm2" |
| case '3': // 1 string to match. |
| return 187; // "ymm3" |
| case '4': // 1 string to match. |
| return 188; // "ymm4" |
| case '5': // 1 string to match. |
| return 189; // "ymm5" |
| case '6': // 1 string to match. |
| return 190; // "ymm6" |
| case '7': // 1 string to match. |
| return 191; // "ymm7" |
| case '8': // 1 string to match. |
| return 192; // "ymm8" |
| case '9': // 1 string to match. |
| return 193; // "ymm9" |
| } |
| break; |
| case 'z': // 10 strings to match. |
| if (memcmp(Name.data()+1, "mm", 2) != 0) |
| break; |
| switch (Name[3]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 216; // "zmm0" |
| case '1': // 1 string to match. |
| return 217; // "zmm1" |
| case '2': // 1 string to match. |
| return 218; // "zmm2" |
| case '3': // 1 string to match. |
| return 219; // "zmm3" |
| case '4': // 1 string to match. |
| return 220; // "zmm4" |
| case '5': // 1 string to match. |
| return 221; // "zmm5" |
| case '6': // 1 string to match. |
| return 222; // "zmm6" |
| case '7': // 1 string to match. |
| return 223; // "zmm7" |
| case '8': // 1 string to match. |
| return 224; // "zmm8" |
| case '9': // 1 string to match. |
| return 225; // "zmm9" |
| } |
| break; |
| } |
| break; |
| case 5: // 75 strings to match. |
| switch (Name[0]) { |
| default: break; |
| case 'f': // 1 string to match. |
| if (memcmp(Name.data()+1, "lags", 4) != 0) |
| break; |
| return 28; // "flags" |
| case 'm': // 1 string to match. |
| if (memcmp(Name.data()+1, "xcsr", 4) != 0) |
| break; |
| return 50; // "mxcsr" |
| case 's': // 7 strings to match. |
| if (memcmp(Name.data()+1, "t(", 2) != 0) |
| break; |
| switch (Name[3]) { |
| default: break; |
| case '1': // 1 string to match. |
| if (Name[4] != ')') |
| break; |
| return 137; // "st(1)" |
| case '2': // 1 string to match. |
| if (Name[4] != ')') |
| break; |
| return 138; // "st(2)" |
| case '3': // 1 string to match. |
| if (Name[4] != ')') |
| break; |
| return 139; // "st(3)" |
| case '4': // 1 string to match. |
| if (Name[4] != ')') |
| break; |
| return 140; // "st(4)" |
| case '5': // 1 string to match. |
| if (Name[4] != ')') |
| break; |
| return 141; // "st(5)" |
| case '6': // 1 string to match. |
| if (Name[4] != ')') |
| break; |
| return 142; // "st(6)" |
| case '7': // 1 string to match. |
| if (Name[4] != ')') |
| break; |
| return 143; // "st(7)" |
| } |
| break; |
| case 'x': // 22 strings to match. |
| if (memcmp(Name.data()+1, "mm", 2) != 0) |
| break; |
| switch (Name[3]) { |
| default: break; |
| case '1': // 10 strings to match. |
| switch (Name[4]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 162; // "xmm10" |
| case '1': // 1 string to match. |
| return 163; // "xmm11" |
| case '2': // 1 string to match. |
| return 164; // "xmm12" |
| case '3': // 1 string to match. |
| return 165; // "xmm13" |
| case '4': // 1 string to match. |
| return 166; // "xmm14" |
| case '5': // 1 string to match. |
| return 167; // "xmm15" |
| case '6': // 1 string to match. |
| return 168; // "xmm16" |
| case '7': // 1 string to match. |
| return 169; // "xmm17" |
| case '8': // 1 string to match. |
| return 170; // "xmm18" |
| case '9': // 1 string to match. |
| return 171; // "xmm19" |
| } |
| break; |
| case '2': // 10 strings to match. |
| switch (Name[4]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 172; // "xmm20" |
| case '1': // 1 string to match. |
| return 173; // "xmm21" |
| case '2': // 1 string to match. |
| return 174; // "xmm22" |
| case '3': // 1 string to match. |
| return 175; // "xmm23" |
| case '4': // 1 string to match. |
| return 176; // "xmm24" |
| case '5': // 1 string to match. |
| return 177; // "xmm25" |
| case '6': // 1 string to match. |
| return 178; // "xmm26" |
| case '7': // 1 string to match. |
| return 179; // "xmm27" |
| case '8': // 1 string to match. |
| return 180; // "xmm28" |
| case '9': // 1 string to match. |
| return 181; // "xmm29" |
| } |
| break; |
| case '3': // 2 strings to match. |
| switch (Name[4]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 182; // "xmm30" |
| case '1': // 1 string to match. |
| return 183; // "xmm31" |
| } |
| break; |
| } |
| break; |
| case 'y': // 22 strings to match. |
| if (memcmp(Name.data()+1, "mm", 2) != 0) |
| break; |
| switch (Name[3]) { |
| default: break; |
| case '1': // 10 strings to match. |
| switch (Name[4]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 194; // "ymm10" |
| case '1': // 1 string to match. |
| return 195; // "ymm11" |
| case '2': // 1 string to match. |
| return 196; // "ymm12" |
| case '3': // 1 string to match. |
| return 197; // "ymm13" |
| case '4': // 1 string to match. |
| return 198; // "ymm14" |
| case '5': // 1 string to match. |
| return 199; // "ymm15" |
| case '6': // 1 string to match. |
| return 200; // "ymm16" |
| case '7': // 1 string to match. |
| return 201; // "ymm17" |
| case '8': // 1 string to match. |
| return 202; // "ymm18" |
| case '9': // 1 string to match. |
| return 203; // "ymm19" |
| } |
| break; |
| case '2': // 10 strings to match. |
| switch (Name[4]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 204; // "ymm20" |
| case '1': // 1 string to match. |
| return 205; // "ymm21" |
| case '2': // 1 string to match. |
| return 206; // "ymm22" |
| case '3': // 1 string to match. |
| return 207; // "ymm23" |
| case '4': // 1 string to match. |
| return 208; // "ymm24" |
| case '5': // 1 string to match. |
| return 209; // "ymm25" |
| case '6': // 1 string to match. |
| return 210; // "ymm26" |
| case '7': // 1 string to match. |
| return 211; // "ymm27" |
| case '8': // 1 string to match. |
| return 212; // "ymm28" |
| case '9': // 1 string to match. |
| return 213; // "ymm29" |
| } |
| break; |
| case '3': // 2 strings to match. |
| switch (Name[4]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 214; // "ymm30" |
| case '1': // 1 string to match. |
| return 215; // "ymm31" |
| } |
| break; |
| } |
| break; |
| case 'z': // 22 strings to match. |
| if (memcmp(Name.data()+1, "mm", 2) != 0) |
| break; |
| switch (Name[3]) { |
| default: break; |
| case '1': // 10 strings to match. |
| switch (Name[4]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 226; // "zmm10" |
| case '1': // 1 string to match. |
| return 227; // "zmm11" |
| case '2': // 1 string to match. |
| return 228; // "zmm12" |
| case '3': // 1 string to match. |
| return 229; // "zmm13" |
| case '4': // 1 string to match. |
| return 230; // "zmm14" |
| case '5': // 1 string to match. |
| return 231; // "zmm15" |
| case '6': // 1 string to match. |
| return 232; // "zmm16" |
| case '7': // 1 string to match. |
| return 233; // "zmm17" |
| case '8': // 1 string to match. |
| return 234; // "zmm18" |
| case '9': // 1 string to match. |
| return 235; // "zmm19" |
| } |
| break; |
| case '2': // 10 strings to match. |
| switch (Name[4]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 236; // "zmm20" |
| case '1': // 1 string to match. |
| return 237; // "zmm21" |
| case '2': // 1 string to match. |
| return 238; // "zmm22" |
| case '3': // 1 string to match. |
| return 239; // "zmm23" |
| case '4': // 1 string to match. |
| return 240; // "zmm24" |
| case '5': // 1 string to match. |
| return 241; // "zmm25" |
| case '6': // 1 string to match. |
| return 242; // "zmm26" |
| case '7': // 1 string to match. |
| return 243; // "zmm27" |
| case '8': // 1 string to match. |
| return 244; // "zmm28" |
| case '9': // 1 string to match. |
| return 245; // "zmm29" |
| } |
| break; |
| case '3': // 2 strings to match. |
| switch (Name[4]) { |
| default: break; |
| case '0': // 1 string to match. |
| return 246; // "zmm30" |
| case '1': // 1 string to match. |
| return 247; // "zmm31" |
| } |
| break; |
| } |
| break; |
| } |
| break; |
| case 6: // 3 strings to match. |
| switch (Name[0]) { |
| default: break; |
| case 'e': // 1 string to match. |
| if (memcmp(Name.data()+1, "flags", 5) != 0) |
| break; |
| return 71; // "eflags" |
| case 'r': // 1 string to match. |
| if (memcmp(Name.data()+1, "flags", 5) != 0) |
| break; |
| return 57; // "rflags" |
| case 't': // 1 string to match. |
| if (memcmp(Name.data()+1, "mmcfg", 5) != 0) |
| break; |
| return 70; // "tmmcfg" |
| } |
| break; |
| case 7: // 3 strings to match. |
| switch (Name[0]) { |
| default: break; |
| case 'd': // 1 string to match. |
| if (memcmp(Name.data()+1, "irflag", 6) != 0) |
| break; |
| return 14; // "dirflag" |
| case 'f': // 1 string to match. |
| if (memcmp(Name.data()+1, "s.base", 6) != 0) |
| break; |
| return 37; // "fs.base" |
| case 'g': // 1 string to match. |
| if (memcmp(Name.data()+1, "s.base", 6) != 0) |
| break; |
| return 39; // "gs.base" |
| } |
| break; |
| } |
| return 0; |
| } |
| |
| #endif // GET_REGISTER_MATCHER |
| |
| |
| #ifdef GET_SUBTARGET_FEATURE_NAME |
| #undef GET_SUBTARGET_FEATURE_NAME |
| |
| // User-level names for subtarget features that participate in |
| // instruction matching. |
| static const char *getSubtargetFeatureName(uint64_t Val) { |
| switch(Val) { |
| case Feature_Not64BitModeBit: return "Not 64-bit mode"; |
| case Feature_In64BitModeBit: return "64-bit mode"; |
| case Feature_In16BitModeBit: return "16-bit mode"; |
| case Feature_Not16BitModeBit: return "Not 16-bit mode"; |
| case Feature_In32BitModeBit: return "32-bit mode"; |
| default: return "(unknown)"; |
| } |
| } |
| |
| #endif // GET_SUBTARGET_FEATURE_NAME |
| |
| |
| #ifdef GET_MATCHER_IMPLEMENTATION |
| #undef GET_MATCHER_IMPLEMENTATION |
| |
| static void applyMnemonicAliases(StringRef &Mnemonic, const FeatureBitset &Features, unsigned VariantID) { |
| switch (VariantID) { |
| case 0: |
| switch (Mnemonic.size()) { |
| default: break; |
| case 3: // 6 strings to match. |
| switch (Mnemonic[0]) { |
| default: break; |
| case 'c': // 4 strings to match. |
| switch (Mnemonic[1]) { |
| default: break; |
| case 'b': // 1 string to match. |
| if (Mnemonic[2] != 'w') |
| break; |
| Mnemonic = "cbtw"; // "cbw" |
| return; |
| case 'd': // 1 string to match. |
| if (Mnemonic[2] != 'q') |
| break; |
| Mnemonic = "cltd"; // "cdq" |
| return; |
| case 'q': // 1 string to match. |
| if (Mnemonic[2] != 'o') |
| break; |
| Mnemonic = "cqto"; // "cqo" |
| return; |
| case 'w': // 1 string to match. |
| if (Mnemonic[2] != 'd') |
| break; |
| Mnemonic = "cwtd"; // "cwd" |
| return; |
| } |
| break; |
| case 'p': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "op", 2) != 0) |
| break; |
| if (Features.test(Feature_In16BitModeBit)) // "pop" |
| Mnemonic = "popw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "popl"; |
| else if (Features.test(Feature_In64BitModeBit)) |
| Mnemonic = "popq"; |
| return; |
| case 'r': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "et", 2) != 0) |
| break; |
| if (Features.test(Feature_In16BitModeBit)) // "ret" |
| Mnemonic = "retw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "retl"; |
| else if (Features.test(Feature_In64BitModeBit)) |
| Mnemonic = "retq"; |
| return; |
| } |
| break; |
| case 4: // 18 strings to match. |
| switch (Mnemonic[0]) { |
| default: break; |
| case 'c': // 3 strings to match. |
| switch (Mnemonic[1]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "ll", 2) != 0) |
| break; |
| if (Features.test(Feature_In16BitModeBit)) // "call" |
| Mnemonic = "callw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "calll"; |
| else if (Features.test(Feature_In64BitModeBit)) |
| Mnemonic = "callq"; |
| return; |
| case 'd': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "qe", 2) != 0) |
| break; |
| Mnemonic = "cltq"; // "cdqe" |
| return; |
| case 'w': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "de", 2) != 0) |
| break; |
| Mnemonic = "cwtl"; // "cwde" |
| return; |
| } |
| break; |
| case 'i': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "ret", 3) != 0) |
| break; |
| if (Features.test(Feature_In16BitModeBit)) // "iret" |
| Mnemonic = "iretw"; |
| else if (Features.test(Feature_Not16BitModeBit)) |
| Mnemonic = "iretl"; |
| return; |
| case 'l': // 3 strings to match. |
| switch (Mnemonic[1]) { |
| default: break; |
| case 'g': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "dt", 2) != 0) |
| break; |
| if (Features.test(Feature_In16BitModeBit)) // "lgdt" |
| Mnemonic = "lgdtw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "lgdtl"; |
| else if (Features.test(Feature_In64BitModeBit)) |
| Mnemonic = "lgdtq"; |
| return; |
| case 'i': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "dt", 2) != 0) |
| break; |
| if (Features.test(Feature_In16BitModeBit)) // "lidt" |
| Mnemonic = "lidtw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "lidtl"; |
| else if (Features.test(Feature_In64BitModeBit)) |
| Mnemonic = "lidtq"; |
| return; |
| case 'r': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "et", 2) != 0) |
| break; |
| if (Features.test(Feature_In16BitModeBit)) // "lret" |
| Mnemonic = "lretw"; |
| else if (Features.test(Feature_Not16BitModeBit)) |
| Mnemonic = "lretl"; |
| return; |
| } |
| break; |
| case 'p': // 3 strings to match. |
| switch (Mnemonic[1]) { |
| default: break; |
| case 'o': // 2 strings to match. |
| if (Mnemonic[2] != 'p') |
| break; |
| switch (Mnemonic[3]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (Features.test(Feature_In16BitModeBit)) // "popa" |
| Mnemonic = "popaw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "popal"; |
| return; |
| case 'f': // 1 string to match. |
| if (Features.test(Feature_In16BitModeBit)) // "popf" |
| Mnemonic = "popfw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "popfl"; |
| else if (Features.test(Feature_In64BitModeBit)) |
| Mnemonic = "popfq"; |
| return; |
| } |
| break; |
| case 'u': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "sh", 2) != 0) |
| break; |
| if (Features.test(Feature_In16BitModeBit)) // "push" |
| Mnemonic = "pushw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "pushl"; |
| else if (Features.test(Feature_In64BitModeBit)) |
| Mnemonic = "pushq"; |
| return; |
| } |
| break; |
| case 'r': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "etn", 3) != 0) |
| break; |
| if (Features.test(Feature_In16BitModeBit)) // "retn" |
| Mnemonic = "retw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "retl"; |
| else if (Features.test(Feature_In64BitModeBit)) |
| Mnemonic = "retq"; |
| return; |
| case 's': // 6 strings to match. |
| switch (Mnemonic[1]) { |
| default: break; |
| case 'a': // 4 strings to match. |
| if (Mnemonic[2] != 'l') |
| break; |
| switch (Mnemonic[3]) { |
| default: break; |
| case 'b': // 1 string to match. |
| Mnemonic = "shlb"; // "salb" |
| return; |
| case 'l': // 1 string to match. |
| Mnemonic = "shll"; // "sall" |
| return; |
| case 'q': // 1 string to match. |
| Mnemonic = "shlq"; // "salq" |
| return; |
| case 'w': // 1 string to match. |
| Mnemonic = "shlw"; // "salw" |
| return; |
| } |
| break; |
| case 'g': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "dt", 2) != 0) |
| break; |
| if (Features.test(Feature_In16BitModeBit)) // "sgdt" |
| Mnemonic = "sgdtw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "sgdtl"; |
| else if (Features.test(Feature_In64BitModeBit)) |
| Mnemonic = "sgdtq"; |
| return; |
| case 'i': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "dt", 2) != 0) |
| break; |
| if (Features.test(Feature_In16BitModeBit)) // "sidt" |
| Mnemonic = "sidtw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "sidtl"; |
| else if (Features.test(Feature_In64BitModeBit)) |
| Mnemonic = "sidtq"; |
| return; |
| } |
| break; |
| case 'u': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "d2a", 3) != 0) |
| break; |
| Mnemonic = "ud2"; // "ud2a" |
| return; |
| } |
| break; |
| case 5: // 12 strings to match. |
| switch (Mnemonic[0]) { |
| default: break; |
| case 'f': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "ildq", 4) != 0) |
| break; |
| Mnemonic = "fildll"; // "fildq" |
| return; |
| case 'p': // 3 strings to match. |
| switch (Mnemonic[1]) { |
| default: break; |
| case 'o': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "pfd", 3) != 0) |
| break; |
| Mnemonic = "popfl"; // "popfd" |
| return; |
| case 'u': // 2 strings to match. |
| if (memcmp(Mnemonic.data()+2, "sh", 2) != 0) |
| break; |
| switch (Mnemonic[4]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (Features.test(Feature_In16BitModeBit)) // "pusha" |
| Mnemonic = "pushaw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "pushal"; |
| return; |
| case 'f': // 1 string to match. |
| if (Features.test(Feature_In16BitModeBit)) // "pushf" |
| Mnemonic = "pushfw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "pushfl"; |
| else if (Features.test(Feature_In64BitModeBit)) |
| Mnemonic = "pushfq"; |
| return; |
| } |
| break; |
| } |
| break; |
| case 's': // 4 strings to match. |
| if (memcmp(Mnemonic.data()+1, "mov", 3) != 0) |
| break; |
| switch (Mnemonic[4]) { |
| default: break; |
| case 'b': // 1 string to match. |
| Mnemonic = "movsb"; // "smovb" |
| return; |
| case 'l': // 1 string to match. |
| Mnemonic = "movsl"; // "smovl" |
| return; |
| case 'q': // 1 string to match. |
| Mnemonic = "movsq"; // "smovq" |
| return; |
| case 'w': // 1 string to match. |
| Mnemonic = "movsw"; // "smovw" |
| return; |
| } |
| break; |
| case 'u': // 3 strings to match. |
| if (memcmp(Mnemonic.data()+1, "d2b", 3) != 0) |
| break; |
| switch (Mnemonic[4]) { |
| default: break; |
| case 'l': // 1 string to match. |
| Mnemonic = "ud1l"; // "ud2bl" |
| return; |
| case 'q': // 1 string to match. |
| Mnemonic = "ud1q"; // "ud2bq" |
| return; |
| case 'w': // 1 string to match. |
| Mnemonic = "ud1w"; // "ud2bw" |
| return; |
| } |
| break; |
| case 'v': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "errw", 4) != 0) |
| break; |
| Mnemonic = "verr"; // "verrw" |
| return; |
| } |
| break; |
| case 6: // 15 strings to match. |
| switch (Mnemonic[0]) { |
| default: break; |
| case 'c': // 6 strings to match. |
| if (memcmp(Mnemonic.data()+1, "mov", 3) != 0) |
| break; |
| switch (Mnemonic[4]) { |
| default: break; |
| case 'c': // 3 strings to match. |
| switch (Mnemonic[5]) { |
| default: break; |
| case 'l': // 1 string to match. |
| Mnemonic = "cmovbl"; // "cmovcl" |
| return; |
| case 'q': // 1 string to match. |
| Mnemonic = "cmovbq"; // "cmovcq" |
| return; |
| case 'w': // 1 string to match. |
| Mnemonic = "cmovbw"; // "cmovcw" |
| return; |
| } |
| break; |
| case 'z': // 3 strings to match. |
| switch (Mnemonic[5]) { |
| default: break; |
| case 'l': // 1 string to match. |
| Mnemonic = "cmovel"; // "cmovzl" |
| return; |
| case 'q': // 1 string to match. |
| Mnemonic = "cmoveq"; // "cmovzq" |
| return; |
| case 'w': // 1 string to match. |
| Mnemonic = "cmovew"; // "cmovzw" |
| return; |
| } |
| break; |
| } |
| break; |
| case 'f': // 4 strings to match. |
| switch (Mnemonic[1]) { |
| default: break; |
| case 'c': // 2 strings to match. |
| if (memcmp(Mnemonic.data()+2, "mov", 3) != 0) |
| break; |
| switch (Mnemonic[5]) { |
| default: break; |
| case 'a': // 1 string to match. |
| Mnemonic = "fcmovnbe"; // "fcmova" |
| return; |
| case 'z': // 1 string to match. |
| Mnemonic = "fcmove"; // "fcmovz" |
| return; |
| } |
| break; |
| case 'i': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "stpq", 4) != 0) |
| break; |
| Mnemonic = "fistpll"; // "fistpq" |
| return; |
| case 'l': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "dcww", 4) != 0) |
| break; |
| Mnemonic = "fldcw"; // "fldcww" |
| return; |
| } |
| break; |
| case 'l': // 2 strings to match. |
| if (memcmp(Mnemonic.data()+1, "eave", 4) != 0) |
| break; |
| switch (Mnemonic[5]) { |
| default: break; |
| case 'l': // 1 string to match. |
| if (Features.test(Feature_Not64BitModeBit)) // "leavel" |
| Mnemonic = "leave"; |
| return; |
| case 'q': // 1 string to match. |
| if (Features.test(Feature_In64BitModeBit)) // "leaveq" |
| Mnemonic = "leave"; |
| return; |
| } |
| break; |
| case 'p': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "ushfd", 5) != 0) |
| break; |
| Mnemonic = "pushfl"; // "pushfd" |
| return; |
| case 's': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "ysret", 5) != 0) |
| break; |
| Mnemonic = "sysretl"; // "sysret" |
| return; |
| case 'x': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "saveq", 5) != 0) |
| break; |
| Mnemonic = "xsave64"; // "xsaveq" |
| return; |
| } |
| break; |
| case 7: // 34 strings to match. |
| switch (Mnemonic[0]) { |
| default: break; |
| case 'c': // 24 strings to match. |
| if (memcmp(Mnemonic.data()+1, "mov", 3) != 0) |
| break; |
| switch (Mnemonic[4]) { |
| default: break; |
| case 'n': // 18 strings to match. |
| switch (Mnemonic[5]) { |
| default: break; |
| case 'a': // 3 strings to match. |
| switch (Mnemonic[6]) { |
| default: break; |
| case 'l': // 1 string to match. |
| Mnemonic = "cmovbel"; // "cmovnal" |
| return; |
| case 'q': // 1 string to match. |
| Mnemonic = "cmovbeq"; // "cmovnaq" |
| return; |
| case 'w': // 1 string to match. |
| Mnemonic = "cmovbew"; // "cmovnaw" |
| return; |
| } |
| break; |
| case 'b': // 3 strings to match. |
| switch (Mnemonic[6]) { |
| default: break; |
| case 'l': // 1 string to match. |
| Mnemonic = "cmovael"; // "cmovnbl" |
| return; |
| case 'q': // 1 string to match. |
| Mnemonic = "cmovaeq"; // "cmovnbq" |
| return; |
| case 'w': // 1 string to match. |
| Mnemonic = "cmovaew"; // "cmovnbw" |
| return; |
| } |
| break; |
| case 'c': // 3 strings to match. |
| switch (Mnemonic[6]) { |
| default: break; |
| case 'l': // 1 string to match. |
| Mnemonic = "cmovael"; // "cmovncl" |
| return; |
| case 'q': // 1 string to match. |
| Mnemonic = "cmovaeq"; // "cmovncq" |
| return; |
| case 'w': // 1 string to match. |
| Mnemonic = "cmovaew"; // "cmovncw" |
| return; |
| } |
| break; |
| case 'g': // 3 strings to match. |
| switch (Mnemonic[6]) { |
| default: break; |
| case 'l': // 1 string to match. |
| Mnemonic = "cmovlel"; // "cmovngl" |
| return; |
| case 'q': // 1 string to match. |
| Mnemonic = "cmovleq"; // "cmovngq" |
| return; |
| case 'w': // 1 string to match. |
| Mnemonic = "cmovlew"; // "cmovngw" |
| return; |
| } |
| break; |
| case 'l': // 3 strings to match. |
| switch (Mnemonic[6]) { |
| default: break; |
| case 'l': // 1 string to match. |
| Mnemonic = "cmovgel"; // "cmovnll" |
| return; |
| case 'q': // 1 string to match. |
| Mnemonic = "cmovgeq"; // "cmovnlq" |
| return; |
| case 'w': // 1 string to match. |
| Mnemonic = "cmovgew"; // "cmovnlw" |
| return; |
| } |
| break; |
| case 'z': // 3 strings to match. |
| switch (Mnemonic[6]) { |
| default: break; |
| case 'l': // 1 string to match. |
| Mnemonic = "cmovnel"; // "cmovnzl" |
| return; |
| case 'q': // 1 string to match. |
| Mnemonic = "cmovneq"; // "cmovnzq" |
| return; |
| case 'w': // 1 string to match. |
| Mnemonic = "cmovnew"; // "cmovnzw" |
| return; |
| } |
| break; |
| } |
| break; |
| case 'p': // 6 strings to match. |
| switch (Mnemonic[5]) { |
| default: break; |
| case 'e': // 3 strings to match. |
| switch (Mnemonic[6]) { |
| default: break; |
| case 'l': // 1 string to match. |
| Mnemonic = "cmovpl"; // "cmovpel" |
| return; |
| case 'q': // 1 string to match. |
| Mnemonic = "cmovpq"; // "cmovpeq" |
| return; |
| case 'w': // 1 string to match. |
| Mnemonic = "cmovpw"; // "cmovpew" |
| return; |
| } |
| break; |
| case 'o': // 3 strings to match. |
| switch (Mnemonic[6]) { |
| default: break; |
| case 'l': // 1 string to match. |
| Mnemonic = "cmovnpl"; // "cmovpol" |
| return; |
| case 'q': // 1 string to match. |
| Mnemonic = "cmovnpq"; // "cmovpoq" |
| return; |
| case 'w': // 1 string to match. |
| Mnemonic = "cmovnpw"; // "cmovpow" |
| return; |
| } |
| break; |
| } |
| break; |
| } |
| break; |
| case 'f': // 6 strings to match. |
| switch (Mnemonic[1]) { |
| default: break; |
| case 'c': // 2 strings to match. |
| if (memcmp(Mnemonic.data()+2, "mov", 3) != 0) |
| break; |
| switch (Mnemonic[5]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (Mnemonic[6] != 'e') |
| break; |
| Mnemonic = "fcmovnb"; // "fcmovae" |
| return; |
| case 'n': // 1 string to match. |
| if (Mnemonic[6] != 'a') |
| break; |
| Mnemonic = "fcmovbe"; // "fcmovna" |
| return; |
| } |
| break; |
| case 'i': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "sttpq", 5) != 0) |
| break; |
| Mnemonic = "fisttpll"; // "fisttpq" |
| return; |
| case 'n': // 2 strings to match. |
| if (memcmp(Mnemonic.data()+2, "st", 2) != 0) |
| break; |
| switch (Mnemonic[4]) { |
| default: break; |
| case 'c': // 1 string to match. |
| if (memcmp(Mnemonic.data()+5, "ww", 2) != 0) |
| break; |
| Mnemonic = "fnstcw"; // "fnstcww" |
| return; |
| case 's': // 1 string to match. |
| if (memcmp(Mnemonic.data()+5, "ww", 2) != 0) |
| break; |
| Mnemonic = "fnstsw"; // "fnstsww" |
| return; |
| } |
| break; |
| case 'x': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "saveq", 5) != 0) |
| break; |
| Mnemonic = "fxsave64"; // "fxsaveq" |
| return; |
| } |
| break; |
| case 's': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "ysexit", 6) != 0) |
| break; |
| Mnemonic = "sysexitl"; // "sysexit" |
| return; |
| case 'x': // 3 strings to match. |
| switch (Mnemonic[1]) { |
| default: break; |
| case 'r': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "storq", 5) != 0) |
| break; |
| Mnemonic = "xrstor64"; // "xrstorq" |
| return; |
| case 's': // 2 strings to match. |
| if (memcmp(Mnemonic.data()+2, "ave", 3) != 0) |
| break; |
| switch (Mnemonic[5]) { |
| default: break; |
| case 'c': // 1 string to match. |
| if (Mnemonic[6] != 'q') |
| break; |
| Mnemonic = "xsavec64"; // "xsavecq" |
| return; |
| case 's': // 1 string to match. |
| if (Mnemonic[6] != 'q') |
| break; |
| Mnemonic = "xsaves64"; // "xsavesq" |
| return; |
| } |
| break; |
| } |
| break; |
| } |
| break; |
| case 8: // 15 strings to match. |
| switch (Mnemonic[0]) { |
| default: break; |
| case 'c': // 12 strings to match. |
| if (memcmp(Mnemonic.data()+1, "movn", 4) != 0) |
| break; |
| switch (Mnemonic[5]) { |
| default: break; |
| case 'a': // 3 strings to match. |
| if (Mnemonic[6] != 'e') |
| break; |
| switch (Mnemonic[7]) { |
| default: break; |
| case 'l': // 1 string to match. |
| Mnemonic = "cmovbl"; // "cmovnael" |
| return; |
| case 'q': // 1 string to match. |
| Mnemonic = "cmovbq"; // "cmovnaeq" |
| return; |
| case 'w': // 1 string to match. |
| Mnemonic = "cmovbw"; // "cmovnaew" |
| return; |
| } |
| break; |
| case 'b': // 3 strings to match. |
| if (Mnemonic[6] != 'e') |
| break; |
| switch (Mnemonic[7]) { |
| default: break; |
| case 'l': // 1 string to match. |
| Mnemonic = "cmoval"; // "cmovnbel" |
| return; |
| case 'q': // 1 string to match. |
| Mnemonic = "cmovaq"; // "cmovnbeq" |
| return; |
| case 'w': // 1 string to match. |
| Mnemonic = "cmovaw"; // "cmovnbew" |
| return; |
| } |
| break; |
| case 'g': // 3 strings to match. |
| if (Mnemonic[6] != 'e') |
| break; |
| switch (Mnemonic[7]) { |
| default: break; |
| case 'l': // 1 string to match. |
| Mnemonic = "cmovll"; // "cmovngel" |
| return; |
| case 'q': // 1 string to match. |
| Mnemonic = "cmovlq"; // "cmovngeq" |
| return; |
| case 'w': // 1 string to match. |
| Mnemonic = "cmovlw"; // "cmovngew" |
| return; |
| } |
| break; |
| case 'l': // 3 strings to match. |
| if (Mnemonic[6] != 'e') |
| break; |
| switch (Mnemonic[7]) { |
| default: break; |
| case 'l': // 1 string to match. |
| Mnemonic = "cmovgl"; // "cmovnlel" |
| return; |
| case 'q': // 1 string to match. |
| Mnemonic = "cmovgq"; // "cmovnleq" |
| return; |
| case 'w': // 1 string to match. |
| Mnemonic = "cmovgw"; // "cmovnlew" |
| return; |
| } |
| break; |
| } |
| break; |
| case 'f': // 2 strings to match. |
| switch (Mnemonic[1]) { |
| default: break; |
| case 'c': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "movnae", 6) != 0) |
| break; |
| Mnemonic = "fcmovb"; // "fcmovnae" |
| return; |
| case 'x': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "rstorq", 6) != 0) |
| break; |
| Mnemonic = "fxrstor64"; // "fxrstorq" |
| return; |
| } |
| break; |
| case 'x': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "rstorsq", 7) != 0) |
| break; |
| Mnemonic = "xrstors64"; // "xrstorsq" |
| return; |
| } |
| break; |
| case 9: // 1 string to match. |
| if (memcmp(Mnemonic.data()+0, "xsaveoptq", 9) != 0) |
| break; |
| Mnemonic = "xsaveopt64"; // "xsaveoptq" |
| return; |
| } |
| break; |
| case 1: |
| switch (Mnemonic.size()) { |
| default: break; |
| case 3: // 1 string to match. |
| if (memcmp(Mnemonic.data()+0, "sal", 3) != 0) |
| break; |
| Mnemonic = "shl"; // "sal" |
| return; |
| case 4: // 7 strings to match. |
| switch (Mnemonic[0]) { |
| default: break; |
| case 'l': // 2 strings to match. |
| switch (Mnemonic[1]) { |
| default: break; |
| case 'g': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "dt", 2) != 0) |
| break; |
| if (Features.test(Feature_In16BitModeBit)) // "lgdt" |
| Mnemonic = "lgdtw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "lgdtd"; |
| return; |
| case 'i': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "dt", 2) != 0) |
| break; |
| if (Features.test(Feature_In16BitModeBit)) // "lidt" |
| Mnemonic = "lidtw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "lidtd"; |
| return; |
| } |
| break; |
| case 'p': // 2 strings to match. |
| if (memcmp(Mnemonic.data()+1, "op", 2) != 0) |
| break; |
| switch (Mnemonic[3]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (Features.test(Feature_In16BitModeBit)) // "popa" |
| Mnemonic = "popaw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "popal"; |
| return; |
| case 'f': // 1 string to match. |
| if (Features.test(Feature_In64BitModeBit)) // "popf" |
| Mnemonic = "popfq"; |
| return; |
| } |
| break; |
| case 'r': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "etn", 3) != 0) |
| break; |
| Mnemonic = "ret"; // "retn" |
| return; |
| case 's': // 2 strings to match. |
| switch (Mnemonic[1]) { |
| default: break; |
| case 'g': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "dt", 2) != 0) |
| break; |
| if (Features.test(Feature_In16BitModeBit)) // "sgdt" |
| Mnemonic = "sgdtw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "sgdtd"; |
| return; |
| case 'i': // 1 string to match. |
| if (memcmp(Mnemonic.data()+2, "dt", 2) != 0) |
| break; |
| if (Features.test(Feature_In16BitModeBit)) // "sidt" |
| Mnemonic = "sidtw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "sidtd"; |
| return; |
| } |
| break; |
| } |
| break; |
| case 5: // 6 strings to match. |
| switch (Mnemonic[0]) { |
| default: break; |
| case 'c': // 2 strings to match. |
| if (memcmp(Mnemonic.data()+1, "mov", 3) != 0) |
| break; |
| switch (Mnemonic[4]) { |
| default: break; |
| case 'c': // 1 string to match. |
| Mnemonic = "cmovb"; // "cmovc" |
| return; |
| case 'z': // 1 string to match. |
| Mnemonic = "cmove"; // "cmovz" |
| return; |
| } |
| break; |
| case 'p': // 4 strings to match. |
| switch (Mnemonic[1]) { |
| default: break; |
| case 'o': // 2 strings to match. |
| if (Mnemonic[2] != 'p') |
| break; |
| switch (Mnemonic[3]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (Mnemonic[4] != 'd') |
| break; |
| if (Features.test(Feature_Not64BitModeBit)) // "popad" |
| Mnemonic = "popal"; |
| return; |
| case 'f': // 1 string to match. |
| if (Mnemonic[4] != 'w') |
| break; |
| if (Features.test(Feature_In32BitModeBit)) // "popfw" |
| Mnemonic = "popf"; |
| else if (Features.test(Feature_In64BitModeBit)) |
| Mnemonic = "popf"; |
| return; |
| } |
| break; |
| case 'u': // 2 strings to match. |
| if (memcmp(Mnemonic.data()+2, "sh", 2) != 0) |
| break; |
| switch (Mnemonic[4]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (Features.test(Feature_In16BitModeBit)) // "pusha" |
| Mnemonic = "pushaw"; |
| else if (Features.test(Feature_In32BitModeBit)) |
| Mnemonic = "pushal"; |
| return; |
| case 'f': // 1 string to match. |
| if (Features.test(Feature_In64BitModeBit)) // "pushf" |
| Mnemonic = "pushfq"; |
| return; |
| } |
| break; |
| } |
| break; |
| } |
| break; |
| case 6: // 10 strings to match. |
| switch (Mnemonic[0]) { |
| default: break; |
| case 'c': // 8 strings to match. |
| if (memcmp(Mnemonic.data()+1, "mov", 3) != 0) |
| break; |
| switch (Mnemonic[4]) { |
| default: break; |
| case 'n': // 6 strings to match. |
| switch (Mnemonic[5]) { |
| default: break; |
| case 'a': // 1 string to match. |
| Mnemonic = "cmovbe"; // "cmovna" |
| return; |
| case 'b': // 1 string to match. |
| Mnemonic = "cmovae"; // "cmovnb" |
| return; |
| case 'c': // 1 string to match. |
| Mnemonic = "cmovae"; // "cmovnc" |
| return; |
| case 'g': // 1 string to match. |
| Mnemonic = "cmovle"; // "cmovng" |
| return; |
| case 'l': // 1 string to match. |
| Mnemonic = "cmovge"; // "cmovnl" |
| return; |
| case 'z': // 1 string to match. |
| Mnemonic = "cmovne"; // "cmovnz" |
| return; |
| } |
| break; |
| case 'p': // 2 strings to match. |
| switch (Mnemonic[5]) { |
| default: break; |
| case 'e': // 1 string to match. |
| Mnemonic = "cmovp"; // "cmovpe" |
| return; |
| case 'o': // 1 string to match. |
| Mnemonic = "cmovnp"; // "cmovpo" |
| return; |
| } |
| break; |
| } |
| break; |
| case 'p': // 2 strings to match. |
| if (memcmp(Mnemonic.data()+1, "ush", 3) != 0) |
| break; |
| switch (Mnemonic[4]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (Mnemonic[5] != 'd') |
| break; |
| if (Features.test(Feature_Not64BitModeBit)) // "pushad" |
| Mnemonic = "pushal"; |
| return; |
| case 'f': // 1 string to match. |
| if (Mnemonic[5] != 'w') |
| break; |
| if (Features.test(Feature_In32BitModeBit)) // "pushfw" |
| Mnemonic = "pushf"; |
| else if (Features.test(Feature_In64BitModeBit)) |
| Mnemonic = "pushf"; |
| return; |
| } |
| break; |
| } |
| break; |
| case 7: // 6 strings to match. |
| switch (Mnemonic[0]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "cquire", 6) != 0) |
| break; |
| Mnemonic = "xacquire"; // "acquire" |
| return; |
| case 'c': // 4 strings to match. |
| if (memcmp(Mnemonic.data()+1, "movn", 4) != 0) |
| break; |
| switch (Mnemonic[5]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (Mnemonic[6] != 'e') |
| break; |
| Mnemonic = "cmovb"; // "cmovnae" |
| return; |
| case 'b': // 1 string to match. |
| if (Mnemonic[6] != 'e') |
| break; |
| Mnemonic = "cmova"; // "cmovnbe" |
| return; |
| case 'g': // 1 string to match. |
| if (Mnemonic[6] != 'e') |
| break; |
| Mnemonic = "cmovl"; // "cmovnge" |
| return; |
| case 'l': // 1 string to match. |
| if (Mnemonic[6] != 'e') |
| break; |
| Mnemonic = "cmovg"; // "cmovnle" |
| return; |
| } |
| break; |
| case 'r': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "elease", 6) != 0) |
| break; |
| Mnemonic = "xrelease"; // "release" |
| return; |
| } |
| break; |
| } |
| break; |
| } |
| switch (Mnemonic.size()) { |
| default: break; |
| case 2: // 2 strings to match. |
| if (Mnemonic[0] != 'j') |
| break; |
| switch (Mnemonic[1]) { |
| default: break; |
| case 'c': // 1 string to match. |
| Mnemonic = "jb"; // "jc" |
| return; |
| case 'z': // 1 string to match. |
| Mnemonic = "je"; // "jz" |
| return; |
| } |
| break; |
| case 3: // 8 strings to match. |
| if (Mnemonic[0] != 'j') |
| break; |
| switch (Mnemonic[1]) { |
| default: break; |
| case 'n': // 6 strings to match. |
| switch (Mnemonic[2]) { |
| default: break; |
| case 'a': // 1 string to match. |
| Mnemonic = "jbe"; // "jna" |
| return; |
| case 'b': // 1 string to match. |
| Mnemonic = "jae"; // "jnb" |
| return; |
| case 'c': // 1 string to match. |
| Mnemonic = "jae"; // "jnc" |
| return; |
| case 'g': // 1 string to match. |
| Mnemonic = "jle"; // "jng" |
| return; |
| case 'l': // 1 string to match. |
| Mnemonic = "jge"; // "jnl" |
| return; |
| case 'z': // 1 string to match. |
| Mnemonic = "jne"; // "jnz" |
| return; |
| } |
| break; |
| case 'p': // 2 strings to match. |
| switch (Mnemonic[2]) { |
| default: break; |
| case 'e': // 1 string to match. |
| Mnemonic = "jp"; // "jpe" |
| return; |
| case 'o': // 1 string to match. |
| Mnemonic = "jnp"; // "jpo" |
| return; |
| } |
| break; |
| } |
| break; |
| case 4: // 8 strings to match. |
| switch (Mnemonic[0]) { |
| default: break; |
| case 'j': // 4 strings to match. |
| if (Mnemonic[1] != 'n') |
| break; |
| switch (Mnemonic[2]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (Mnemonic[3] != 'e') |
| break; |
| Mnemonic = "jb"; // "jnae" |
| return; |
| case 'b': // 1 string to match. |
| if (Mnemonic[3] != 'e') |
| break; |
| Mnemonic = "ja"; // "jnbe" |
| return; |
| case 'g': // 1 string to match. |
| if (Mnemonic[3] != 'e') |
| break; |
| Mnemonic = "jl"; // "jnge" |
| return; |
| case 'l': // 1 string to match. |
| if (Mnemonic[3] != 'e') |
| break; |
| Mnemonic = "jg"; // "jnle" |
| return; |
| } |
| break; |
| case 'r': // 2 strings to match. |
| if (memcmp(Mnemonic.data()+1, "ep", 2) != 0) |
| break; |
| switch (Mnemonic[3]) { |
| default: break; |
| case 'e': // 1 string to match. |
| Mnemonic = "rep"; // "repe" |
| return; |
| case 'z': // 1 string to match. |
| Mnemonic = "rep"; // "repz" |
| return; |
| } |
| break; |
| case 's': // 2 strings to match. |
| if (memcmp(Mnemonic.data()+1, "et", 2) != 0) |
| break; |
| switch (Mnemonic[3]) { |
| default: break; |
| case 'c': // 1 string to match. |
| Mnemonic = "setb"; // "setc" |
| return; |
| case 'z': // 1 string to match. |
| Mnemonic = "sete"; // "setz" |
| return; |
| } |
| break; |
| } |
| break; |
| case 5: // 11 strings to match. |
| switch (Mnemonic[0]) { |
| default: break; |
| case 'f': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "wait", 4) != 0) |
| break; |
| Mnemonic = "wait"; // "fwait" |
| return; |
| case 'l': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "oopz", 4) != 0) |
| break; |
| Mnemonic = "loope"; // "loopz" |
| return; |
| case 'r': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "epnz", 4) != 0) |
| break; |
| Mnemonic = "repne"; // "repnz" |
| return; |
| case 's': // 8 strings to match. |
| if (memcmp(Mnemonic.data()+1, "et", 2) != 0) |
| break; |
| switch (Mnemonic[3]) { |
| default: break; |
| case 'n': // 6 strings to match. |
| switch (Mnemonic[4]) { |
| default: break; |
| case 'a': // 1 string to match. |
| Mnemonic = "setbe"; // "setna" |
| return; |
| case 'b': // 1 string to match. |
| Mnemonic = "setae"; // "setnb" |
| return; |
| case 'c': // 1 string to match. |
| Mnemonic = "setae"; // "setnc" |
| return; |
| case 'g': // 1 string to match. |
| Mnemonic = "setle"; // "setng" |
| return; |
| case 'l': // 1 string to match. |
| Mnemonic = "setge"; // "setnl" |
| return; |
| case 'z': // 1 string to match. |
| Mnemonic = "setne"; // "setnz" |
| return; |
| } |
| break; |
| case 'p': // 2 strings to match. |
| switch (Mnemonic[4]) { |
| default: break; |
| case 'e': // 1 string to match. |
| Mnemonic = "setp"; // "setpe" |
| return; |
| case 'o': // 1 string to match. |
| Mnemonic = "setnp"; // "setpo" |
| return; |
| } |
| break; |
| } |
| break; |
| } |
| break; |
| case 6: // 6 strings to match. |
| switch (Mnemonic[0]) { |
| default: break; |
| case 'f': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "comip", 5) != 0) |
| break; |
| Mnemonic = "fcompi"; // "fcomip" |
| return; |
| case 'l': // 1 string to match. |
| if (memcmp(Mnemonic.data()+1, "oopnz", 5) != 0) |
| break; |
| Mnemonic = "loopne"; // "loopnz" |
| return; |
| case 's': // 4 strings to match. |
| if (memcmp(Mnemonic.data()+1, "etn", 3) != 0) |
| break; |
| switch (Mnemonic[4]) { |
| default: break; |
| case 'a': // 1 string to match. |
| if (Mnemonic[5] != 'e') |
| break; |
| Mnemonic = "setb"; // "setnae" |
| return; |
| case 'b': // 1 string to match. |
| if (Mnemonic[5] != 'e') |
| break; |
| Mnemonic = "seta"; // "setnbe" |
| return; |
| case 'g': // 1 string to match. |
| if (Mnemonic[5] != 'e') |
| break; |
| Mnemonic = "setl"; // "setnge" |
| return; |
| case 'l': // 1 string to match. |
| if (Mnemonic[5] != 'e') |
| break; |
| Mnemonic = "setg"; // "setnle" |
| return; |
| } |
| break; |
| } |
| break; |
| case 7: // 1 string to match. |
| if (memcmp(Mnemonic.data()+0, "fucomip", 7) != 0) |
| break; |
| Mnemonic = "fucompi"; // "fucomip" |
| return; |
| } |
| } |
| |
| enum { |
| Tie0_1_1, |
| Tie0_2_2, |
| Tie0_3_3, |
| Tie0_4_4, |
| Tie1_1_1, |
| Tie1_2_2, |
| Tie1_3_3, |
| Tie1_4_4, |
| }; |
| |
| static const uint8_t TiedAsmOperandTable[][3] = { |
| /* Tie0_1_1 */ { 0, 1, 1 }, |
| /* Tie0_2_2 */ { 0, 2, 2 }, |
| /* Tie0_3_3 */ { 0, 3, 3 }, |
| /* Tie0_4_4 */ { 0, 4, 4 }, |
| /* Tie1_1_1 */ { 1, 1, 1 }, |
| /* Tie1_2_2 */ { 1, 2, 2 }, |
| /* Tie1_3_3 */ { 1, 3, 3 }, |
| /* Tie1_4_4 */ { 1, 4, 4 }, |
| }; |
| |
| namespace { |
| enum OperatorConversionKind { |
| CVT_Done, |
| CVT_Reg, |
| CVT_Tied, |
| CVT_imm_95_10, |
| CVT_95_addImmOperands, |
| CVT_95_addMemOperands, |
| CVT_95_Reg, |
| CVT_regAX, |
| CVT_regEAX, |
| CVT_regRAX, |
| CVT_95_addAbsMemOperands, |
| CVT_imm_95_7, |
| CVT_imm_95_3, |
| CVT_imm_95_2, |
| CVT_imm_95_6, |
| CVT_imm_95_4, |
| CVT_imm_95_15, |
| CVT_imm_95_13, |
| CVT_imm_95_12, |
| CVT_imm_95_14, |
| CVT_imm_95_5, |
| CVT_imm_95_1, |
| CVT_imm_95_11, |
| CVT_imm_95_9, |
| CVT_imm_95_0, |
| CVT_imm_95_8, |
| CVT_95_addDstIdxOperands, |
| CVT_95_addSrcIdxOperands, |
| CVT_95_addGR32orGR64Operands, |
| CVT_regST1, |
| CVT_regST0, |
| CVT_95_addGR16orGR32orGR64Operands, |
| CVT_95_addMemOffsOperands, |
| CVT_imm_95_17, |
| CVT_imm_95_16, |
| CVT_95_addAVX512RCOperands, |
| CVT_95_addMaskPairOperands, |
| CVT_NUM_CONVERTERS |
| }; |
| |
| enum InstructionConversionKind { |
| Convert_NoOperands, |
| Convert__imm_95_10, |
| Convert__Imm1_0, |
| Convert__Mem325_0__Reg1_1, |
| Convert__Mem645_0__Reg1_1, |
| Convert__Mem325_1__Reg1_0, |
| Convert__Mem645_1__Reg1_0, |
| Convert__Imm1_1, |
| Convert__regAX__Tie0_1_1__ImmSExti16i81_1, |
| Convert__regEAX__Tie0_1_1__ImmSExti32i81_1, |
| Convert__regRAX__Tie0_1_1__ImmSExti64i81_1, |
| Convert__ImmSExti64i321_1, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1, |
| Convert__Reg1_0__Tie0_1_1__ImmSExti16i81_1, |
| Convert__Reg1_0__Tie0_1_1__Imm1_1, |
| Convert__Reg1_0__Tie0_1_1__Mem165_1, |
| Convert__Reg1_0__Tie0_1_1__ImmSExti32i81_1, |
| Convert__Reg1_0__Tie0_1_1__Mem325_1, |
| Convert__Reg1_0__Tie0_1_1__ImmSExti64i81_1, |
| Convert__Reg1_0__Tie0_1_1__ImmSExti64i321_1, |
| Convert__Reg1_0__Tie0_1_1__Mem645_1, |
| Convert__Reg1_0__Tie0_1_1__Mem85_1, |
| Convert__Mem165_0__Reg1_1, |
| Convert__Mem165_0__ImmSExti16i81_1, |
| Convert__Mem165_0__Imm1_1, |
| Convert__Mem325_0__ImmSExti32i81_1, |
| Convert__Mem325_0__Imm1_1, |
| Convert__Mem645_0__ImmSExti64i81_1, |
| Convert__Mem645_0__ImmSExti64i321_1, |
| Convert__Mem85_0__Reg1_1, |
| Convert__Mem85_0__Imm1_1, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0, |
| Convert__Mem85_1__Reg1_0, |
| Convert__Reg1_1__Tie0_2_2__Imm1_0, |
| Convert__Mem85_1__Imm1_0, |
| Convert__Reg1_1__Tie0_2_2__Mem85_0, |
| Convert__regEAX__Tie0_1_1__ImmSExti32i81_0, |
| Convert__Reg1_1__Tie0_2_2__ImmSExti32i81_0, |
| Convert__Mem325_1__ImmSExti32i81_0, |
| Convert__Mem325_1__Imm1_0, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0, |
| Convert__regRAX__Tie0_1_1__ImmSExti64i81_0, |
| Convert__Reg1_1__Tie0_2_2__ImmSExti64i81_0, |
| Convert__Mem645_1__ImmSExti64i81_0, |
| Convert__ImmSExti64i321_0, |
| Convert__Reg1_1__Tie0_2_2__ImmSExti64i321_0, |
| Convert__Mem645_1__ImmSExti64i321_0, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0, |
| Convert__Mem165_1__Reg1_0, |
| Convert__regAX__Tie0_1_1__ImmSExti16i81_0, |
| Convert__Reg1_1__Tie0_2_2__ImmSExti16i81_0, |
| Convert__Mem165_1__ImmSExti16i81_0, |
| Convert__Mem165_1__Imm1_0, |
| Convert__Reg1_1__Tie0_2_2__Mem165_0, |
| Convert__Reg1_1__Tie0_1_1__Reg1_0, |
| Convert__Reg1_1__Tie0_1_1__Mem325_0, |
| Convert__Reg1_1__Tie0_1_1__Mem645_0, |
| Convert__Reg1_0__Tie0_1_1__Mem1285_1, |
| Convert__Reg1_1__Tie0_1_1__Mem1285_0, |
| Convert__Reg1_0__Tie0_1_1__Mem5_1, |
| Convert__Reg1_1__Tie0_2_2__Mem5_0, |
| Convert__Mem5_0, |
| Convert__Reg1_1__Reg1_0, |
| Convert__Reg1_0__Reg1_1, |
| Convert__Reg1_0__Mem1285_1, |
| Convert__Reg1_1__Mem1285_0, |
| Convert__Reg1_0__Reg1_1__ImmUnsignedi81_2, |
| Convert__Reg1_0__Mem1285_1__ImmUnsignedi81_2, |
| Convert__Reg1_2__Reg1_1__ImmUnsignedi81_0, |
| Convert__Reg1_2__Mem1285_1__ImmUnsignedi81_0, |
| Convert__Reg1_0__Reg1_1__Reg1_2, |
| Convert__Reg1_0__Reg1_1__Mem325_2, |
| Convert__Reg1_0__Reg1_1__Mem645_2, |
| Convert__Reg1_2__Reg1_1__Reg1_0, |
| Convert__Reg1_2__Reg1_1__Mem325_0, |
| Convert__Reg1_2__Reg1_1__Mem645_0, |
| Convert__Reg1_0__Reg1_1__Imm1_2, |
| Convert__Reg1_0__Mem325_1__Reg1_2, |
| Convert__Reg1_0__Mem325_1__Imm1_2, |
| Convert__Reg1_0__Reg1_1__ImmSExti64i321_2, |
| Convert__Reg1_0__Mem645_1__Reg1_2, |
| Convert__Reg1_0__Mem645_1__ImmSExti64i321_2, |
| Convert__Reg1_2__Mem325_1__Reg1_0, |
| Convert__Reg1_2__Reg1_1__Imm1_0, |
| Convert__Reg1_2__Mem325_1__Imm1_0, |
| Convert__Reg1_2__Mem645_1__Reg1_0, |
| Convert__Reg1_2__Reg1_1__ImmSExti64i321_0, |
| Convert__Reg1_2__Mem645_1__ImmSExti64i321_0, |
| Convert__Reg1_0__Mem325_1, |
| Convert__Reg1_0__Mem645_1, |
| Convert__Reg1_1__Mem325_0, |
| Convert__Reg1_1__Mem645_0, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__ImmUnsignedi81_2, |
| Convert__Reg1_0__Tie0_1_1__Mem1285_1__ImmUnsignedi81_2, |
| Convert__Reg1_2__Tie0_1_1__Reg1_1__ImmUnsignedi81_0, |
| Convert__Reg1_2__Tie0_1_1__Mem1285_1__ImmUnsignedi81_0, |
| Convert__Reg1_1__Tie0_2_2__Mem1285_0, |
| Convert__Reg1_2__Tie0_1_1__Reg1_1, |
| Convert__Reg1_2__Tie0_1_1__Mem1285_1, |
| Convert__Reg1_0__Mem165_1, |
| Convert__Reg1_1__Mem165_0, |
| Convert__Reg1_0__Tie0_1_1, |
| Convert__Reg1_0__ImmUnsignedi81_1, |
| Convert__Mem325_1__ImmUnsignedi81_0, |
| Convert__Mem165_0__ImmUnsignedi81_1, |
| Convert__Mem325_0__ImmUnsignedi81_1, |
| Convert__Mem645_0__ImmUnsignedi81_1, |
| Convert__Reg1_0__Tie0_1_1__ImmUnsignedi81_1, |
| Convert__Reg1_1__Tie0_2_2__ImmUnsignedi81_0, |
| Convert__Mem645_1__ImmUnsignedi81_0, |
| Convert__Mem165_1__ImmUnsignedi81_0, |
| Convert__Reg1_1__ImmUnsignedi81_0, |
| Convert__Reg1_0, |
| Convert__AbsMem1_0, |
| Convert__Mem165_0, |
| Convert__Mem325_0, |
| Convert__Mem645_0, |
| Convert__Imm1_1__Imm1_0, |
| Convert__Reg1_1, |
| Convert__Mem325_1, |
| Convert__Mem645_1, |
| Convert__Mem165_1, |
| Convert__Mem85_0, |
| Convert__Reg1_0__Tie0_1_1__Reg1_0, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__imm_95_7, |
| Convert__Reg1_0__Tie0_1_1__Mem165_1__imm_95_7, |
| Convert__Reg1_0__Tie0_1_1__Mem325_1__imm_95_7, |
| Convert__Reg1_0__Tie0_1_1__Mem645_1__imm_95_7, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__imm_95_3, |
| Convert__Reg1_0__Tie0_1_1__Mem165_1__imm_95_3, |
| Convert__Reg1_0__Tie0_1_1__Mem325_1__imm_95_3, |
| Convert__Reg1_0__Tie0_1_1__Mem645_1__imm_95_3, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0__imm_95_3, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__imm_95_3, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__imm_95_3, |
| Convert__Reg1_1__Tie0_2_2__Mem165_0__imm_95_3, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0__imm_95_7, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__imm_95_7, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__imm_95_7, |
| Convert__Reg1_1__Tie0_2_2__Mem165_0__imm_95_7, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__imm_95_2, |
| Convert__Reg1_0__Tie0_1_1__Mem165_1__imm_95_2, |
| Convert__Reg1_0__Tie0_1_1__Mem325_1__imm_95_2, |
| Convert__Reg1_0__Tie0_1_1__Mem645_1__imm_95_2, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__imm_95_6, |
| Convert__Reg1_0__Tie0_1_1__Mem165_1__imm_95_6, |
| Convert__Reg1_0__Tie0_1_1__Mem325_1__imm_95_6, |
| Convert__Reg1_0__Tie0_1_1__Mem645_1__imm_95_6, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0__imm_95_6, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__imm_95_6, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__imm_95_6, |
| Convert__Reg1_1__Tie0_2_2__Mem165_0__imm_95_6, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0__imm_95_2, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__imm_95_2, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__imm_95_2, |
| Convert__Reg1_1__Tie0_2_2__Mem165_0__imm_95_2, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__imm_95_4, |
| Convert__Reg1_0__Tie0_1_1__Mem165_1__imm_95_4, |
| Convert__Reg1_0__Tie0_1_1__Mem325_1__imm_95_4, |
| Convert__Reg1_0__Tie0_1_1__Mem645_1__imm_95_4, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0__imm_95_4, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__imm_95_4, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__imm_95_4, |
| Convert__Reg1_1__Tie0_2_2__Mem165_0__imm_95_4, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__imm_95_15, |
| Convert__Reg1_0__Tie0_1_1__Mem165_1__imm_95_15, |
| Convert__Reg1_0__Tie0_1_1__Mem325_1__imm_95_15, |
| Convert__Reg1_0__Tie0_1_1__Mem645_1__imm_95_15, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__imm_95_13, |
| Convert__Reg1_0__Tie0_1_1__Mem165_1__imm_95_13, |
| Convert__Reg1_0__Tie0_1_1__Mem325_1__imm_95_13, |
| Convert__Reg1_0__Tie0_1_1__Mem645_1__imm_95_13, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0__imm_95_13, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__imm_95_13, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__imm_95_13, |
| Convert__Reg1_1__Tie0_2_2__Mem165_0__imm_95_13, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0__imm_95_15, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__imm_95_15, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__imm_95_15, |
| Convert__Reg1_1__Tie0_2_2__Mem165_0__imm_95_15, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__imm_95_12, |
| Convert__Reg1_0__Tie0_1_1__Mem165_1__imm_95_12, |
| Convert__Reg1_0__Tie0_1_1__Mem325_1__imm_95_12, |
| Convert__Reg1_0__Tie0_1_1__Mem645_1__imm_95_12, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__imm_95_14, |
| Convert__Reg1_0__Tie0_1_1__Mem165_1__imm_95_14, |
| Convert__Reg1_0__Tie0_1_1__Mem325_1__imm_95_14, |
| Convert__Reg1_0__Tie0_1_1__Mem645_1__imm_95_14, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0__imm_95_14, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__imm_95_14, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__imm_95_14, |
| Convert__Reg1_1__Tie0_2_2__Mem165_0__imm_95_14, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0__imm_95_12, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__imm_95_12, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__imm_95_12, |
| Convert__Reg1_1__Tie0_2_2__Mem165_0__imm_95_12, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__imm_95_5, |
| Convert__Reg1_0__Tie0_1_1__Mem165_1__imm_95_5, |
| Convert__Reg1_0__Tie0_1_1__Mem325_1__imm_95_5, |
| Convert__Reg1_0__Tie0_1_1__Mem645_1__imm_95_5, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0__imm_95_5, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__imm_95_5, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__imm_95_5, |
| Convert__Reg1_1__Tie0_2_2__Mem165_0__imm_95_5, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__imm_95_1, |
| Convert__Reg1_0__Tie0_1_1__Mem165_1__imm_95_1, |
| Convert__Reg1_0__Tie0_1_1__Mem325_1__imm_95_1, |
| Convert__Reg1_0__Tie0_1_1__Mem645_1__imm_95_1, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0__imm_95_1, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__imm_95_1, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__imm_95_1, |
| Convert__Reg1_1__Tie0_2_2__Mem165_0__imm_95_1, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__imm_95_11, |
| Convert__Reg1_0__Tie0_1_1__Mem165_1__imm_95_11, |
| Convert__Reg1_0__Tie0_1_1__Mem325_1__imm_95_11, |
| Convert__Reg1_0__Tie0_1_1__Mem645_1__imm_95_11, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0__imm_95_11, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__imm_95_11, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__imm_95_11, |
| Convert__Reg1_1__Tie0_2_2__Mem165_0__imm_95_11, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__imm_95_9, |
| Convert__Reg1_0__Tie0_1_1__Mem165_1__imm_95_9, |
| Convert__Reg1_0__Tie0_1_1__Mem325_1__imm_95_9, |
| Convert__Reg1_0__Tie0_1_1__Mem645_1__imm_95_9, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0__imm_95_9, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__imm_95_9, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__imm_95_9, |
| Convert__Reg1_1__Tie0_2_2__Mem165_0__imm_95_9, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__imm_95_0, |
| Convert__Reg1_0__Tie0_1_1__Mem165_1__imm_95_0, |
| Convert__Reg1_0__Tie0_1_1__Mem325_1__imm_95_0, |
| Convert__Reg1_0__Tie0_1_1__Mem645_1__imm_95_0, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0__imm_95_0, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__imm_95_0, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__imm_95_0, |
| Convert__Reg1_1__Tie0_2_2__Mem165_0__imm_95_0, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__imm_95_10, |
| Convert__Reg1_0__Tie0_1_1__Mem165_1__imm_95_10, |
| Convert__Reg1_0__Tie0_1_1__Mem325_1__imm_95_10, |
| Convert__Reg1_0__Tie0_1_1__Mem645_1__imm_95_10, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0__imm_95_10, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__imm_95_10, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__imm_95_10, |
| Convert__Reg1_1__Tie0_2_2__Mem165_0__imm_95_10, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__imm_95_8, |
| Convert__Reg1_0__Tie0_1_1__Mem165_1__imm_95_8, |
| Convert__Reg1_0__Tie0_1_1__Mem325_1__imm_95_8, |
| Convert__Reg1_0__Tie0_1_1__Mem645_1__imm_95_8, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0__imm_95_8, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__imm_95_8, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__imm_95_8, |
| Convert__Reg1_1__Tie0_2_2__Mem165_0__imm_95_8, |
| Convert__regAX__ImmSExti16i81_1, |
| Convert__regEAX__ImmSExti32i81_1, |
| Convert__regRAX__ImmSExti64i81_1, |
| Convert__Reg1_0__ImmSExti16i81_1, |
| Convert__Reg1_0__Imm1_1, |
| Convert__Reg1_0__ImmSExti32i81_1, |
| Convert__Reg1_0__ImmSExti64i81_1, |
| Convert__Reg1_0__ImmSExti64i321_1, |
| Convert__Reg1_0__Mem85_1, |
| Convert__Reg1_1__Tie0_2_2__Mem325_2__Reg1_0__imm_95_3, |
| Convert__Reg1_1__Tie0_2_2__Mem645_2__Reg1_0__imm_95_3, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__Reg1_2__imm_95_3, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__Reg1_2__imm_95_3, |
| Convert__Reg1_1__Tie0_2_2__Mem325_2__Reg1_0__imm_95_7, |
| Convert__Reg1_1__Tie0_2_2__Mem645_2__Reg1_0__imm_95_7, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__Reg1_2__imm_95_7, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__Reg1_2__imm_95_7, |
| Convert__Reg1_1__Imm1_0, |
| Convert__Reg1_1__Mem85_0, |
| Convert__Reg1_1__Tie0_2_2__Mem325_2__Reg1_0__imm_95_6, |
| Convert__Reg1_1__Tie0_2_2__Mem645_2__Reg1_0__imm_95_6, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__Reg1_2__imm_95_6, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__Reg1_2__imm_95_6, |
| Convert__Reg1_1__Tie0_2_2__Mem325_2__Reg1_0__imm_95_2, |
| Convert__Reg1_1__Tie0_2_2__Mem645_2__Reg1_0__imm_95_2, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__Reg1_2__imm_95_2, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__Reg1_2__imm_95_2, |
| Convert__Reg1_1__Tie0_2_2__Mem325_2__Reg1_0__imm_95_4, |
| Convert__Reg1_1__Tie0_2_2__Mem645_2__Reg1_0__imm_95_4, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__Reg1_2__imm_95_4, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__Reg1_2__imm_95_4, |
| Convert__Reg1_1__Tie0_2_2__Mem325_2__Reg1_0__imm_95_13, |
| Convert__Reg1_1__Tie0_2_2__Mem645_2__Reg1_0__imm_95_13, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__Reg1_2__imm_95_13, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__Reg1_2__imm_95_13, |
| Convert__Reg1_1__Tie0_2_2__Mem325_2__Reg1_0__imm_95_15, |
| Convert__Reg1_1__Tie0_2_2__Mem645_2__Reg1_0__imm_95_15, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__Reg1_2__imm_95_15, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__Reg1_2__imm_95_15, |
| Convert__regEAX__ImmSExti32i81_0, |
| Convert__Reg1_1__ImmSExti32i81_0, |
| Convert__Reg1_1__Tie0_2_2__Mem325_2__Reg1_0__imm_95_14, |
| Convert__Reg1_1__Tie0_2_2__Mem645_2__Reg1_0__imm_95_14, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__Reg1_2__imm_95_14, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__Reg1_2__imm_95_14, |
| Convert__Reg1_1__Tie0_2_2__Mem325_2__Reg1_0__imm_95_12, |
| Convert__Reg1_1__Tie0_2_2__Mem645_2__Reg1_0__imm_95_12, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__Reg1_2__imm_95_12, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__Reg1_2__imm_95_12, |
| Convert__Reg1_1__Tie0_2_2__Mem325_2__Reg1_0__imm_95_5, |
| Convert__Reg1_1__Tie0_2_2__Mem645_2__Reg1_0__imm_95_5, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__Reg1_2__imm_95_5, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__Reg1_2__imm_95_5, |
| Convert__Reg1_1__Tie0_2_2__Mem325_2__Reg1_0__imm_95_1, |
| Convert__Reg1_1__Tie0_2_2__Mem645_2__Reg1_0__imm_95_1, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__Reg1_2__imm_95_1, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__Reg1_2__imm_95_1, |
| Convert__Reg1_1__Tie0_2_2__Mem325_2__Reg1_0__imm_95_11, |
| Convert__Reg1_1__Tie0_2_2__Mem645_2__Reg1_0__imm_95_11, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__Reg1_2__imm_95_11, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__Reg1_2__imm_95_11, |
| Convert__Reg1_1__Tie0_2_2__Mem325_2__Reg1_0__imm_95_9, |
| Convert__Reg1_1__Tie0_2_2__Mem645_2__Reg1_0__imm_95_9, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__Reg1_2__imm_95_9, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__Reg1_2__imm_95_9, |
| Convert__Reg1_1__Tie0_2_2__Mem325_2__Reg1_0__imm_95_0, |
| Convert__Reg1_1__Tie0_2_2__Mem645_2__Reg1_0__imm_95_0, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__Reg1_2__imm_95_0, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__Reg1_2__imm_95_0, |
| Convert__Reg1_1__Tie0_2_2__Mem325_2__Reg1_0__imm_95_10, |
| Convert__Reg1_1__Tie0_2_2__Mem645_2__Reg1_0__imm_95_10, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__Reg1_2__imm_95_10, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__Reg1_2__imm_95_10, |
| Convert__regRAX__ImmSExti64i81_0, |
| Convert__Reg1_1__ImmSExti64i81_0, |
| Convert__Reg1_1__ImmSExti64i321_0, |
| Convert__DstIdx161_1__SrcIdx162_0, |
| Convert__DstIdx321_1__SrcIdx322_0, |
| Convert__DstIdx641_1__SrcIdx642_0, |
| Convert__DstIdx81_1__SrcIdx82_0, |
| Convert__DstIdx81_0__SrcIdx82_1, |
| Convert__Reg1_0__Tie0_1_1__Mem645_1__ImmUnsignedi81_2, |
| Convert__Reg1_2__Tie0_1_1__Mem645_1__ImmUnsignedi81_0, |
| Convert__DstIdx321_0__SrcIdx322_1, |
| Convert__DstIdx641_0__SrcIdx642_1, |
| Convert__Reg1_0__Tie0_1_1__Mem325_1__ImmUnsignedi81_2, |
| Convert__Reg1_2__Tie0_1_1__Mem325_1__ImmUnsignedi81_0, |
| Convert__DstIdx161_0__SrcIdx162_1, |
| Convert__Reg1_1__Tie0_2_2__Mem325_2__Reg1_0__imm_95_8, |
| Convert__Reg1_1__Tie0_2_2__Mem645_2__Reg1_0__imm_95_8, |
| Convert__Reg1_1__Tie0_2_2__Mem325_0__Reg1_2__imm_95_8, |
| Convert__Reg1_1__Tie0_2_2__Mem645_0__Reg1_2__imm_95_8, |
| Convert__regAX__ImmSExti16i81_0, |
| Convert__Reg1_1__ImmSExti16i81_0, |
| Convert__Mem1285_0, |
| Convert__Mem85_1, |
| Convert__Reg1_0__Mem5125_1, |
| Convert__Reg1_1__Mem5125_0, |
| Convert__Imm1_0__Imm1_1, |
| Convert__GR32orGR641_2__Reg1_1__ImmUnsignedi81_0, |
| Convert__Mem325_2__Reg1_1__ImmUnsignedi81_0, |
| Convert__GR32orGR641_0__Reg1_1__ImmUnsignedi81_2, |
| Convert__Mem325_0__Reg1_1__ImmUnsignedi81_2, |
| Convert__Reg1_0__Tie0_1_1__ImmUnsignedi81_1__ImmUnsignedi81_2, |
| Convert__Reg1_2__Tie0_3_3__ImmUnsignedi81_1__ImmUnsignedi81_0, |
| Convert__regST1, |
| Convert__regST0, |
| Convert__Mem805_0, |
| Convert__ImmUnsignedi81_0, |
| Convert__Reg1_0__Reg1_0__ImmSExti16i81_1, |
| Convert__Reg1_0__Reg1_0__Imm1_1, |
| Convert__Reg1_0__Reg1_0__ImmSExti32i81_1, |
| Convert__Reg1_0__Reg1_0__ImmSExti64i81_1, |
| Convert__Reg1_0__Reg1_0__ImmSExti64i321_1, |
| Convert__Reg1_0__Reg1_1__ImmSExti16i81_2, |
| Convert__Reg1_0__Mem165_1__ImmSExti16i81_2, |
| Convert__Reg1_0__Mem165_1__Imm1_2, |
| Convert__Reg1_0__Reg1_1__ImmSExti32i81_2, |
| Convert__Reg1_0__Mem325_1__ImmSExti32i81_2, |
| Convert__Reg1_0__Reg1_1__ImmSExti64i81_2, |
| Convert__Reg1_0__Mem645_1__ImmSExti64i81_2, |
| Convert__Reg1_1__Reg1_1__ImmSExti32i81_0, |
| Convert__Reg1_1__Reg1_1__Imm1_0, |
| Convert__Reg1_2__Reg1_1__ImmSExti32i81_0, |
| Convert__Reg1_2__Mem325_1__ImmSExti32i81_0, |
| Convert__Reg1_1__Reg1_1__ImmSExti64i81_0, |
| Convert__Reg1_1__Reg1_1__ImmSExti64i321_0, |
| Convert__Reg1_2__Reg1_1__ImmSExti64i81_0, |
| Convert__Reg1_2__Mem645_1__ImmSExti64i81_0, |
| Convert__Reg1_1__Reg1_1__ImmSExti16i81_0, |
| Convert__Reg1_1__Tie0_1_1__Mem165_0, |
| Convert__Reg1_2__Reg1_1__ImmSExti16i81_0, |
| Convert__Reg1_2__Mem165_1__ImmSExti16i81_0, |
| Convert__Reg1_2__Mem165_1__Imm1_0, |
| Convert__ImmUnsignedi81_1, |
| Convert__DstIdx161_0, |
| Convert__DstIdx321_0, |
| Convert__DstIdx81_0, |
| Convert__DstIdx81_1, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__ImmUnsignedi81_2__ImmUnsignedi81_3, |
| Convert__Reg1_3__Tie0_4_4__Reg1_2__ImmUnsignedi81_1__ImmUnsignedi81_0, |
| Convert__DstIdx321_1, |
| Convert__DstIdx161_1, |
| Convert__AbsMem1_0__imm_95_7, |
| Convert__AbsMem1_0__imm_95_3, |
| Convert__AbsMem1_0__imm_95_2, |
| Convert__AbsMem1_0__imm_95_6, |
| Convert__AbsMem1_0__imm_95_4, |
| Convert__AbsMem1_0__imm_95_15, |
| Convert__AbsMem1_0__imm_95_13, |
| Convert__AbsMem1_0__imm_95_12, |
| Convert__AbsMem1_0__imm_95_14, |
| Convert__AbsMem1_0__imm_95_5, |
| Convert__AbsMem1_0__imm_95_1, |
| Convert__AbsMem1_0__imm_95_11, |
| Convert__AbsMem1_0__imm_95_9, |
| Convert__AbsMem1_0__imm_95_0, |
| Convert__AbsMem1_0__imm_95_10, |
| Convert__AbsMem1_0__imm_95_8, |
| Convert__Reg1_0__GR16orGR32orGR641_1, |
| Convert__Reg1_1__GR16orGR32orGR641_0, |
| Convert__Mem5_1, |
| Convert__Reg1_0__Mem5_1, |
| Convert__Reg1_1__Mem5_0, |
| Convert__SrcIdx162_0, |
| Convert__SrcIdx322_0, |
| Convert__SrcIdx642_0, |
| Convert__SrcIdx82_0, |
| Convert__SrcIdx82_1, |
| Convert__SrcIdx162_1, |
| Convert__SrcIdx322_1, |
| Convert__SrcIdx642_1, |
| Convert__MemOffs16_82_1, |
| Convert__MemOffs32_82_1, |
| Convert__MemOffs16_162_1, |
| Convert__MemOffs32_162_1, |
| Convert__MemOffs16_322_1, |
| Convert__MemOffs32_322_1, |
| Convert__MemOffs32_642_1, |
| Convert__MemOffs16_162_0, |
| Convert__MemOffs16_322_0, |
| Convert__MemOffs16_82_0, |
| Convert__MemOffs32_162_0, |
| Convert__MemOffs32_322_0, |
| Convert__MemOffs32_642_0, |
| Convert__MemOffs32_82_0, |
| Convert__MemOffs64_82_1, |
| Convert__MemOffs64_162_1, |
| Convert__MemOffs64_322_1, |
| Convert__MemOffs64_642_1, |
| Convert__MemOffs64_162_0, |
| Convert__MemOffs64_322_0, |
| Convert__MemOffs64_642_0, |
| Convert__MemOffs64_82_0, |
| Convert__Mem1285_1__Reg1_0, |
| Convert__Mem1285_0__Reg1_1, |
| Convert__GR32orGR641_1__Reg1_0, |
| Convert__GR32orGR641_0__Reg1_1, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0__imm_95_17, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__imm_95_17, |
| Convert__Reg1_0__Tie0_1_1__Mem1285_1__imm_95_17, |
| Convert__Reg1_1__Tie0_2_2__Mem1285_0__imm_95_17, |
| Convert__Reg1_0__Tie0_1_1__Mem1285_1__imm_95_1, |
| Convert__Reg1_1__Tie0_2_2__Mem1285_0__imm_95_1, |
| Convert__Reg1_1__Tie0_2_2__Reg1_0__imm_95_16, |
| Convert__Reg1_0__Tie0_1_1__Reg1_1__imm_95_16, |
| Convert__Reg1_0__Tie0_1_1__Mem1285_1__imm_95_16, |
| Convert__Reg1_1__Tie0_2_2__Mem1285_0__imm_95_16, |
| Convert__Reg1_0__Tie0_1_1__Mem1285_1__imm_95_0, |
| Convert__Reg1_1__Tie0_2_2__Mem1285_0__imm_95_0, |
| Convert__Mem85_2__Reg1_1__ImmUnsignedi81_0, |
| Convert__Mem85_0__Reg1_1__ImmUnsignedi81_2, |
| Convert__Mem645_2__Reg1_1__ImmUnsignedi81_0, |
| Convert__Mem645_0__Reg1_1__ImmUnsignedi81_2, |
| Convert__Mem165_2__Reg1_1__ImmUnsignedi81_0, |
| Convert__Mem165_0__Reg1_1__ImmUnsignedi81_2, |
| Convert__Reg1_0__Tie0_1_1__GR32orGR641_1__ImmUnsignedi81_2, |
| Convert__Reg1_0__Tie0_1_1__Mem85_1__ImmUnsignedi81_2, |
| Convert__Reg1_2__Tie0_1_1__GR32orGR641_1__ImmUnsignedi81_0, |
| Convert__Reg1_2__Tie0_1_1__Mem85_1__ImmUnsignedi81_0, |
| Convert__Reg1_0__Tie0_1_1__Mem165_1__ImmUnsignedi81_2, |
| Convert__Reg1_2__Tie0_1_1__Mem165_1__ImmUnsignedi81_0, |
| Convert__Reg1_0__Mem645_1__ImmUnsignedi81_2, |
| Convert__Reg1_2__Mem645_1__ImmUnsignedi81_0, |
| Convert__Reg1_1__Tie0_1_1__ImmUnsignedi81_0, |
| Convert__ImmSExti64i81_0, |
| Convert__ImmSExti16i81_0, |
| Convert__ImmSExti32i81_0, |
| Convert__Mem85_0__ImmUnsignedi81_1, |
| Convert__Reg1_1__Tie0_1_1, |
| Convert__Mem85_1__ImmUnsignedi81_0, |
| Convert__Reg1_0__Mem325_1__ImmUnsignedi81_2, |
| Convert__Reg1_2__Mem325_1__ImmUnsignedi81_0, |
| Convert__DstIdx641_0, |
| Convert__DstIdx641_1, |
| Convert__Reg1_0__imm_95_7, |
| Convert__Mem85_0__imm_95_7, |
| Convert__Reg1_0__imm_95_3, |
| Convert__Mem85_0__imm_95_3, |
| Convert__Reg1_0__imm_95_2, |
| Convert__Mem85_0__imm_95_2, |
| Convert__Reg1_0__imm_95_6, |
| Convert__Mem85_0__imm_95_6, |
| Convert__Reg1_0__imm_95_4, |
| Convert__Mem85_0__imm_95_4, |
| Convert__Reg1_0__imm_95_15, |
| Convert__Mem85_0__imm_95_15, |
| Convert__Reg1_0__imm_95_13, |
| Convert__Mem85_0__imm_95_13, |
| Convert__Reg1_0__imm_95_12, |
| Convert__Mem85_0__imm_95_12, |
| Convert__Reg1_0__imm_95_14, |
| Convert__Mem85_0__imm_95_14, |
| Convert__Reg1_0__imm_95_5, |
| Convert__Mem85_0__imm_95_5, |
| Convert__Reg1_0__imm_95_1, |
| Convert__Mem85_0__imm_95_1, |
| Convert__Reg1_0__imm_95_11, |
| Convert__Mem85_0__imm_95_11, |
| Convert__Reg1_0__imm_95_9, |
| Convert__Mem85_0__imm_95_9, |
| Convert__Reg1_0__imm_95_0, |
| |