From patchwork Tue Sep 19 12:56:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Frager, Neal via Binutils" X-Patchwork-Id: 76378 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 873743858C2F for ; Tue, 19 Sep 2023 12:57:50 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 873743858C2F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1695128270; bh=ETP0tIi9ip31uThwagZyEGxrWv3amLweUpJIFr+xboM=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=nKYwADG6iWGU6gt9tdyFYZMf/rD8N7wbXmKPWyvE6u2HaB8mL4fl2I6cfFTj1938n MLH7yYEpu9Wj2vXdD9R0QjV4REQSohaXQ1gvls6upZOd3H7YEShRVkdt2sEk177TMl FwXrYaT/OkSQ2+ejaoo0l2AZ7vMT+S1RdxWyem10= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.151]) by sourceware.org (Postfix) with ESMTPS id 3E9B2385483C for ; Tue, 19 Sep 2023 12:57:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3E9B2385483C X-IronPort-AV: E=McAfee;i="6600,9927,10838"; a="360189027" X-IronPort-AV: E=Sophos;i="6.02,159,1688454000"; d="scan'208";a="360189027" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Sep 2023 05:56:58 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10837"; a="919854075" X-IronPort-AV: E=Sophos;i="6.02,159,1688454000"; d="scan'208";a="919854075" Received: from scymds04.sc.intel.com ([10.82.73.238]) by orsmga005.jf.intel.com with ESMTP; 19 Sep 2023 05:56:58 -0700 Received: from shgcc101.sh.intel.com (shgcc101.sh.intel.com [10.239.85.97]) by scymds04.sc.intel.com (Postfix) with ESMTP id 7836418007DF; Tue, 19 Sep 2023 05:56:54 -0700 (PDT) To: binutils@sourceware.org Cc: jbeulich@suse.com, hongjiu.lu@intel.com, konglin1 Subject: [PATCH 3/7] Support APX NDD Date: Tue, 19 Sep 2023 12:56:29 +0000 Message-Id: <20230919125633.491660-4-lili.cui@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230919125633.491660-1-lili.cui@intel.com> References: <20230919125633.491660-1-lili.cui@intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SCC_10_SHORT_WORD_LINES, SCC_20_SHORT_WORD_LINES, SCC_5_SHORT_WORD_LINES, SPF_HELO_NONE, SPF_NONE, TXREP, T_FILL_THIS_FORM_SHORT autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: "Cui, Lili via Binutils" From: "Frager, Neal via Binutils" Reply-To: "Cui, Lili" Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org Sender: "Binutils" From: konglin1 opcodes/ChangeLog: * opcodes/i386-dis-evex-prefix.h: Add NDD decode for adox/adcx. * opcodes/i386-dis-evex-reg.h: Handle for REG_EVEX_MAP4_80, REG_EVEX_MAP4_81, REG_EVEX_MAP4_83, REG_EVEX_MAP4_C0, REG_EVEX_MAP4_C1, REG_EVEX_MAP4_D0, REG_EVEX_MAP4_D1, REG_EVEX_MAP4_D2, REG_EVEX_MAP4_D3, REG_EVEX_MAP4_F6, REG_EVEX_MAP4_F7, REG_EVEX_MAP4_FE, REG_EVEX_MAP4_FF. * opcodes/i386-dis-evex.h: Add NDD insn. * opcodes/i386-dis.c (VexGb): Add new define. (VexGv): Ditto. (get_valid_dis386): Change for NDD decode. (print_insn): Ditto. (print_register): Ditto. (intel_operand_size): Ditto. (OP_E_memory): Ditto. (OP_VEX): Ditto. * opcodes/i386-opc.h (Opcode_APX_NDDD): New macro. * opcodes/i386-opc.tbl: Add APX NDD instructions. * opcodes/i386-tbl.h: Regenerated. gas/ChangeLog: * gas/config/tc-i386.c (is_any_apx_encoding): Add legacy insn promote to SPACE_EVEXMAP4. (build_legacy_insns_with_apx_encoding): Add ndd bit encode. (md_assemble): Change for ndd encode. (process_operands): Ditto. (build_modrm_byte): Ditto. (operand_size_match): Support APX NDD that the number of operands is 3. (match_template): Support swap the first two operands for APX NDD that the number of operands is 3. * gas/testsuite/gas/i386/x86-64.exp: Add x86-64-apx-ndd. * gas/testsuite/gas/i386/x86-64-apx-ndd.d: New test. * gas/testsuite/gas/i386/x86-64-apx-ndd.s: Ditto. * testsuite/gas/i386/x86-64-pseudos.d: Add test. * testsuite/gas/i386/x86-64-pseudos.s: Ditto. --- gas/config/tc-i386.c | 80 +- gas/testsuite/gas/i386/x86-64-apx-ndd.d | 165 ++ gas/testsuite/gas/i386/x86-64-apx-ndd.s | 156 ++ gas/testsuite/gas/i386/x86-64-pseudos.d | 42 + gas/testsuite/gas/i386/x86-64-pseudos.s | 43 + gas/testsuite/gas/i386/x86-64.exp | 1 + opcodes/i386-dis-evex-prefix.h | 4 +- opcodes/i386-dis-evex-reg.h | 123 ++ opcodes/i386-dis-evex.h | 124 +- opcodes/i386-dis.c | 47 +- opcodes/i386-opc.h | 1 + opcodes/i386-opc.tbl | 67 + opcodes/i386-tbl.h | 2612 ++++++++++++++++------- 13 files changed, 2588 insertions(+), 877 deletions(-) create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd.d create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd.s diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 48916bc3846..381e389bb04 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -2261,8 +2261,9 @@ operand_size_match (const insn_template *t) unsigned int given = i.operands - j - 1; /* For FMA4 and XOP insns VEX.W controls just the first two - register operands. */ - if (is_cpu (t, CpuFMA4) || is_cpu (t, CpuXOP)) + register operands. And APX insns just swap the first operands. */ + if (is_cpu (t, CpuFMA4) || is_cpu (t, CpuXOP) + || (is_cpu (t,CpuAPX_F) && i.operands == 3)) given = j < 2 ? 1 - j : j; if (t->operand_types[j].bitfield.class == Reg @@ -3876,6 +3877,7 @@ is_any_apx_encoding (void) { return i.rex2 || i.rex2_encoding + || i.tm.opcode_space == SPACE_EVEXMAP4 || (i.vex.register_specifier && i.vex.register_specifier->reg_flags & RegRex2); } @@ -4204,6 +4206,10 @@ build_legacy_insns_with_apx_encoding (void) } build_evex_insns_with_extend_evex_prefix (); + + /* Encode the NDD bit. */ + if (i.vex.register_specifier) + i.vex.bytes[3] |= 0x10; } static void @@ -7383,26 +7389,31 @@ match_template (char mnem_suffix) overlap1 = operand_type_and (operand_types[0], operand_types[1]); if (t->opcode_modifier.d && i.reg_operands == i.operands && !operand_type_all_zero (&overlap1)) - switch (i.dir_encoding) - { - case dir_encoding_load: - if (operand_type_check (operand_types[i.operands - 1], anymem) - || t->opcode_modifier.regmem) - goto check_reverse; - break; + { + int isMemOperand = (t->opcode_modifier.vexvvvv + && t->opcode_space == SPACE_EVEXMAP4) + ? i.operands - 2 : i.operands - 1; + switch (i.dir_encoding) + { + case dir_encoding_load: + if (operand_type_check (operand_types[isMemOperand], anymem) + || t->opcode_modifier.regmem) + goto check_reverse; + break; - case dir_encoding_store: - if (!operand_type_check (operand_types[i.operands - 1], anymem) - && !t->opcode_modifier.regmem) - goto check_reverse; - break; + case dir_encoding_store: + if (!operand_type_check (operand_types[isMemOperand], anymem) + && !t->opcode_modifier.regmem) + goto check_reverse; + break; - case dir_encoding_swap: - goto check_reverse; + case dir_encoding_swap: + goto check_reverse; - case dir_encoding_default: - break; - } + case dir_encoding_default: + break; + } + } /* If we want store form, we skip the current load. */ if ((i.dir_encoding == dir_encoding_store || i.dir_encoding == dir_encoding_swap) @@ -7432,11 +7443,13 @@ match_template (char mnem_suffix) continue; /* Try reversing direction of operands. */ j = is_cpu (t, CpuFMA4) - || is_cpu (t, CpuXOP) ? 1 : i.operands - 1; + || is_cpu (t, CpuXOP) + || is_cpu (t, CpuAPX_F) ? 1 : i.operands - 1; overlap0 = operand_type_and (i.types[0], operand_types[j]); overlap1 = operand_type_and (i.types[j], operand_types[0]); overlap2 = operand_type_and (i.types[1], operand_types[1]); - gas_assert (t->operands != 3 || !check_register); + gas_assert (t->operands != 3 || !check_register + || is_cpu (t,CpuAPX_F)); if (!operand_type_match (overlap0, i.types[0]) || !operand_type_match (overlap1, i.types[j]) || (t->operands == 3 @@ -7471,6 +7484,12 @@ match_template (char mnem_suffix) found_reverse_match = Opcode_VexW; goto check_operands_345; } + else if (is_cpu (t,CpuAPX_F) + && i.operands == 3) + { + found_reverse_match = Opcode_APX_NDDD; + goto check_operands_345; + } else if (t->opcode_space != SPACE_BASE && (t->opcode_space != SPACE_0F /* MOV to/from CR/DR/TR, as an exception, follow @@ -7636,6 +7655,15 @@ match_template (char mnem_suffix) flipping VEX.W. */ i.tm.opcode_modifier.vexw ^= VEXW0 ^ VEXW1; + j = i.tm.operand_types[0].bitfield.imm8; + i.tm.operand_types[j] = operand_types[j + 1]; + i.tm.operand_types[j + 1] = operand_types[j]; + break; + + case Opcode_APX_NDDD: + /* Only the first two register operands need reversing. */ + i.tm.base_opcode ^= 0x2; + j = i.tm.operand_types[0].bitfield.imm8; i.tm.operand_types[j] = operand_types[j + 1]; i.tm.operand_types[j + 1] = operand_types[j]; @@ -8462,8 +8490,8 @@ process_operands (void) const reg_entry *default_seg = NULL; /* We only need to check those implicit registers for instructions - with 3 operands or less. */ - if (i.operands <= 3) + with 4 operands or less. */ + if (i.operands <= 4) for (unsigned int j = 0; j < i.operands; j++) if (i.types[j].bitfield.instance != InstanceNone) i.reg_operands--; @@ -8825,6 +8853,9 @@ build_modrm_byte (void) break; if (v >= dest) v = ~0; + if (i.tm.opcode_space == SPACE_EVEXMAP4 + && i.tm.opcode_modifier.vexvvvv) + v = dest; if (i.tm.extension_opcode != None) { if (dest != source) @@ -9088,6 +9119,9 @@ build_modrm_byte (void) set_rex_vrex (i.op[op].regs, REX_B, false); } + if (i.tm.opcode_space == SPACE_EVEXMAP4 + && i.tm.opcode_modifier.vexvvvv) + dest--; if (op == dest) dest = ~0; if (op == source) diff --git a/gas/testsuite/gas/i386/x86-64-apx-ndd.d b/gas/testsuite/gas/i386/x86-64-apx-ndd.d new file mode 100644 index 00000000000..debb99f2ff9 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd.d @@ -0,0 +1,165 @@ +#as: +#objdump: -dw +#name: x86-64 APX NDD instructions with evex prefix encoding +#source: x86-64-apx-ndd.s + +.*: +file format .* + + +Disassembly of section .text: + +0+ <_start>: +\s*[a-f0-9]+:\s*62 f4 e4 18 ff c0\s+inc %rax,%rbx +\s*[a-f0-9]+:\s*62 dc bc 18 ff c7\s+inc %r31,%r8 +\s*[a-f0-9]+:\s*62 dc fc 10 ff c7\s+inc %r31,%r16 +\s*[a-f0-9]+:\s*62 44 7c 10 00 f8\s+add %r31b,%r8b,%r16b +\s*[a-f0-9]+:\s*62 44 7c 10 00 f8\s+add %r31b,%r8b,%r16b +\s*[a-f0-9]+:\s*62 44 fc 10 01 f8\s+add %r31,%r8,%r16 +\s*[a-f0-9]+:\s*62 44 fc 10 01 f8\s+add %r31,%r8,%r16 +\s*[a-f0-9]+:\s*62 44 7c 10 01 f8\s+add %r31d,%r8d,%r16d +\s*[a-f0-9]+:\s*62 44 7c 10 01 f8\s+add %r31d,%r8d,%r16d +\s*[a-f0-9]+:\s*62 44 7d 10 01 f8\s+add %r31w,%r8w,%r16w +\s*[a-f0-9]+:\s*62 44 7d 10 01 f8\s+add %r31w,%r8w,%r16w +\s*[a-f0-9]+:\s*62 44 fc 10 01 f8\s+add %r31,%r8,%r16 +\s*[a-f0-9]+:\s*62 5c fc 10 03 c7\s+add %r31,%r8,%r16 +\s*[a-f0-9]+:\s*62 44 fc 10 01 38\s+add %r31,\(%r8\),%r16 +\s*[a-f0-9]+:\s*62 5c fc 10 03 07\s+add \(%r31\),%r8,%r16 +\s*[a-f0-9]+:\s*62 5c f8 10 03 84 07 90 90 00 00\s+add\s+0x9090\(%r31,%r16,1\),%r8,%r16 +\s*[a-f0-9]+:\s*62 44 f8 10 01 3c c0\s+add %r31,\(%r8,%r16,8\),%r16 +\s*[a-f0-9]+:\s*62 d4 74 10 80 c5 34\s+add \$0x34,%r13b,%r17b +\s*[a-f0-9]+:\s*62 fc 5c 10 83 04 83 11\s+addl \$0x11,\(%r19,%rax,4\),%r20d +\s*[a-f0-9]+:\s*62 f4 0d 10 81 c0 34 12\s+add \$0x1234,%ax,%r30w +\s*[a-f0-9]+:\s*62 d4 fc 10 81 c7 33 44 34 12\s+add \$0x12344433,%r15,%r16 +\s*[a-f0-9]+:\s*62 d4 fc 10 81 04 8f 33 44 34 12\s+addq \$0x12344433,\(%r15,%rcx,4\),%r16 +\s*[a-f0-9]+:\s*62 f4 bc 18 81 c0 11 22 33 f4\s+add \$0xfffffffff4332211,%rax,%r8 +\s*[a-f0-9]+:\s*62 f4 f4 10 ff c8 dec %rax,%r17 +\s*[a-f0-9]+:\s*62 9c 3c 18 fe 0c 27 decb \(%r31,%r12,1\),%r8b +\s*[a-f0-9]+:\s*62 f4 f4 10 f7 d0 not %rax,%r17 +\s*[a-f0-9]+:\s*62 9c 3c 18 f6 14 27 notb \(%r31,%r12,1\),%r8b +\s*[a-f0-9]+:\s*62 f4 f4 10 f7 d8 neg %rax,%r17 +\s*[a-f0-9]+:\s*62 9c 3c 18 f6 1c 27 negb \(%r31,%r12,1\),%r8b +\s*[a-f0-9]+:\s*62 7c 6c 10 28 f9 sub %r15b,%r17b,%r18b +\s*[a-f0-9]+:\s*62 54 6c 10 29 38 sub %r15d,\(%r8\),%r18d +\s*[a-f0-9]+:\s*62 c4 3c 18 2a 04 07 sub \(%r15,%rax,1\),%r16b,%r8b +\s*[a-f0-9]+:\s*62 c4 3d 18 2b 04 07 sub \(%r15,%rax,1\),%r16w,%r8w +\s*[a-f0-9]+:\s*62 fc 5c 10 83 2c 83 11 subl \$0x11,\(%r19,%rax,4\),%r20d +\s*[a-f0-9]+:\s*62 f4 0d 10 81 e8 34 12 sub \$0x1234,%ax,%r30w +\s*[a-f0-9]+:\s*62 7c 6c 10 18 f9 sbb %r15b,%r17b,%r18b +\s*[a-f0-9]+:\s*62 54 6c 10 19 38 sbb %r15d,\(%r8\),%r18d +\s*[a-f0-9]+:\s*62 c4 3c 18 1a 04 07 sbb \(%r15,%rax,1\),%r16b,%r8b +\s*[a-f0-9]+:\s*62 c4 3d 18 1b 04 07 sbb \(%r15,%rax,1\),%r16w,%r8w +\s*[a-f0-9]+:\s*62 fc 5c 10 83 1c 83 11 sbbl \$0x11,\(%r19,%rax,4\),%r20d +\s*[a-f0-9]+:\s*62 f4 0d 10 81 d8 34 12 sbb \$0x1234,%ax,%r30w +\s*[a-f0-9]+:\s*62 7c 6c 10 10 f9 adc %r15b,%r17b,%r18b +\s*[a-f0-9]+:\s*62 54 6c 10 11 38 adc %r15d,\(%r8\),%r18d +\s*[a-f0-9]+:\s*62 c4 3c 18 12 04 07 adc \(%r15,%rax,1\),%r16b,%r8b +\s*[a-f0-9]+:\s*62 c4 3d 18 13 04 07 adc \(%r15,%rax,1\),%r16w,%r8w +\s*[a-f0-9]+:\s*62 fc 5c 10 83 14 83 11 adcl \$0x11,\(%r19,%rax,4\),%r20d +\s*[a-f0-9]+:\s*62 f4 0d 10 81 d0 34 12 adc \$0x1234,%ax,%r30w +\s*[a-f0-9]+:\s*62 7c 6c 10 08 f9 or %r15b,%r17b,%r18b +\s*[a-f0-9]+:\s*62 54 6c 10 09 38 or %r15d,\(%r8\),%r18d +\s*[a-f0-9]+:\s*62 c4 3c 18 0a 04 07 or \(%r15,%rax,1\),%r16b,%r8b +\s*[a-f0-9]+:\s*62 c4 3d 18 0b 04 07 or \(%r15,%rax,1\),%r16w,%r8w +\s*[a-f0-9]+:\s*62 fc 5c 10 83 0c 83 11 orl \$0x11,\(%r19,%rax,4\),%r20d +\s*[a-f0-9]+:\s*62 f4 0d 10 81 c8 34 12 or \$0x1234,%ax,%r30w +\s*[a-f0-9]+:\s*62 7c 6c 10 30 f9 xor %r15b,%r17b,%r18b +\s*[a-f0-9]+:\s*62 54 6c 10 31 38 xor %r15d,\(%r8\),%r18d +\s*[a-f0-9]+:\s*62 c4 3c 18 32 04 07 xor \(%r15,%rax,1\),%r16b,%r8b +\s*[a-f0-9]+:\s*62 c4 3d 18 33 04 07 xor \(%r15,%rax,1\),%r16w,%r8w +\s*[a-f0-9]+:\s*62 fc 5c 10 83 34 83 11 xorl \$0x11,\(%r19,%rax,4\),%r20d +\s*[a-f0-9]+:\s*62 f4 0d 10 81 f0 34 12 xor \$0x1234,%ax,%r30w +\s*[a-f0-9]+:\s*62 7c 6c 10 20 f9 and %r15b,%r17b,%r18b +\s*[a-f0-9]+:\s*62 54 6c 10 21 38 and %r15d,\(%r8\),%r18d +\s*[a-f0-9]+:\s*62 c4 3c 18 22 04 07 and \(%r15,%rax,1\),%r16b,%r8b +\s*[a-f0-9]+:\s*62 c4 3d 18 23 04 07 and \(%r15,%rax,1\),%r16w,%r8w +\s*[a-f0-9]+:\s*62 fc 5c 10 83 24 83 11 andl \$0x11,\(%r19,%rax,4\),%r20d +\s*[a-f0-9]+:\s*62 f4 0d 10 81 e0 34 12 and \$0x1234,%ax,%r30w +\s*[a-f0-9]+:\s*62 f4 04 10 d0 08 rorb \(%rax\),%r31b +\s*[a-f0-9]+:\s*62 d4 04 10 c0 cc 02 ror \$0x2,%r12b,%r31b +\s*[a-f0-9]+:\s*62 f4 04 10 c1 08 02 rorl \$0x2,\(%rax\),%r31d +\s*[a-f0-9]+:\s*62 f4 05 10 d1 08 rorw \(%rax\),%r31w +\s*[a-f0-9]+:\s*62 fc 3c 18 d2 c8 ror %cl,%r16b,%r8b +\s*[a-f0-9]+:\s*62 fc 05 10 d3 0c 83 rorw %cl,\(%r19,%rax,4\),%r31w +\s*[a-f0-9]+:\s*62 f4 04 10 d0 00 rolb \(%rax\),%r31b +\s*[a-f0-9]+:\s*62 d4 04 10 c0 c4 02 rol \$0x2,%r12b,%r31b +\s*[a-f0-9]+:\s*62 f4 04 10 c1 00 02 roll \$0x2,\(%rax\),%r31d +\s*[a-f0-9]+:\s*62 f4 05 10 d1 00 rolw \(%rax\),%r31w +\s*[a-f0-9]+:\s*62 fc 3c 18 d2 c0 rol %cl,%r16b,%r8b +\s*[a-f0-9]+:\s*62 fc 05 10 d3 04 83 rolw %cl,\(%r19,%rax,4\),%r31w +\s*[a-f0-9]+:\s*62 f4 04 10 d0 18 rcrb \(%rax\),%r31b +\s*[a-f0-9]+:\s*62 d4 04 10 c0 dc 02 rcr \$0x2,%r12b,%r31b +\s*[a-f0-9]+:\s*62 f4 04 10 c1 18 02 rcrl \$0x2,\(%rax\),%r31d +\s*[a-f0-9]+:\s*62 f4 05 10 d1 18 rcrw \(%rax\),%r31w +\s*[a-f0-9]+:\s*62 fc 3c 18 d2 d8 rcr %cl,%r16b,%r8b +\s*[a-f0-9]+:\s*62 fc 05 10 d3 1c 83 rcrw %cl,\(%r19,%rax,4\),%r31w +\s*[a-f0-9]+:\s*62 f4 04 10 d0 10 rclb \(%rax\),%r31b +\s*[a-f0-9]+:\s*62 d4 04 10 c0 d4 02 rcl \$0x2,%r12b,%r31b +\s*[a-f0-9]+:\s*62 f4 04 10 c1 10 02 rcll \$0x2,\(%rax\),%r31d +\s*[a-f0-9]+:\s*62 f4 05 10 d1 10 rclw \(%rax\),%r31w +\s*[a-f0-9]+:\s*62 fc 3c 18 d2 d0 rcl %cl,%r16b,%r8b +\s*[a-f0-9]+:\s*62 fc 05 10 d3 14 83 rclw %cl,\(%r19,%rax,4\),%r31w +\s*[a-f0-9]+:\s*62 f4 04 10 d0 20 shlb \(%rax\),%r31b +\s*[a-f0-9]+:\s*62 d4 04 10 c0 e4 02 shl \$0x2,%r12b,%r31b +\s*[a-f0-9]+:\s*62 f4 04 10 c1 20 02 shll \$0x2,\(%rax\),%r31d +\s*[a-f0-9]+:\s*62 f4 05 10 d1 20 shlw \(%rax\),%r31w +\s*[a-f0-9]+:\s*62 fc 3c 18 d2 e0 shl %cl,%r16b,%r8b +\s*[a-f0-9]+:\s*62 fc 05 10 d3 24 83 shlw %cl,\(%r19,%rax,4\),%r31w +\s*[a-f0-9]+:\s*62 f4 04 10 d0 38 sarb \(%rax\),%r31b +\s*[a-f0-9]+:\s*62 d4 04 10 c0 fc 02 sar \$0x2,%r12b,%r31b +\s*[a-f0-9]+:\s*62 f4 04 10 c1 38 02 sarl \$0x2,\(%rax\),%r31d +\s*[a-f0-9]+:\s*62 f4 05 10 d1 38 sarw \(%rax\),%r31w +\s*[a-f0-9]+:\s*62 fc 3c 18 d2 f8 sar %cl,%r16b,%r8b +\s*[a-f0-9]+:\s*62 fc 05 10 d3 3c 83 sarw %cl,\(%r19,%rax,4\),%r31w +\s*[a-f0-9]+:\s*62 f4 04 10 d0 20 shlb \(%rax\),%r31b +\s*[a-f0-9]+:\s*62 d4 04 10 c0 e4 02 shl \$0x2,%r12b,%r31b +\s*[a-f0-9]+:\s*62 f4 04 10 c1 20 02 shll \$0x2,\(%rax\),%r31d +\s*[a-f0-9]+:\s*62 f4 05 10 d1 20 shlw \(%rax\),%r31w +\s*[a-f0-9]+:\s*62 fc 3c 18 d2 e0 shl %cl,%r16b,%r8b +\s*[a-f0-9]+:\s*62 fc 05 10 d3 24 83 shlw %cl,\(%r19,%rax,4\),%r31w +\s*[a-f0-9]+:\s*62 f4 04 10 d0 28 shrb \(%rax\),%r31b +\s*[a-f0-9]+:\s*62 d4 04 10 c0 ec 02 shr \$0x2,%r12b,%r31b +\s*[a-f0-9]+:\s*62 f4 04 10 c1 28 02 shrl \$0x2,\(%rax\),%r31d +\s*[a-f0-9]+:\s*62 f4 05 10 d1 28 shrw \(%rax\),%r31w +\s*[a-f0-9]+:\s*62 fc 3c 18 d2 e8 shr %cl,%r16b,%r8b +\s*[a-f0-9]+:\s*62 fc 05 10 d3 2c 83 shrw %cl,\(%r19,%rax,4\),%r31w +\s*[a-f0-9]+:\s*62 74 84 10 24 20 01 shld \$0x1,%r12,\(%rax\),%r31 +\s*[a-f0-9]+:\s*62 54 05 10 24 c4 02 shld \$0x2,%r8w,%r12w,%r31w +\s*[a-f0-9]+:\s*62 74 04 10 24 38 02 shld \$0x2,%r15d,\(%rax\),%r31d +\s*[a-f0-9]+:\s*62 74 05 10 a5 08 shld %cl,%r9w,\(%rax\),%r31w +\s*[a-f0-9]+:\s*62 7c bc 18 a5 e0\s+shld %cl,%r12,%r16,%r8 +\s*[a-f0-9]+:\s*62 7c 05 10 a5 2c 83\s+shld %cl,%r13w,\(%r19,%rax,4\),%r31w +\s*[a-f0-9]+:\s*62 74 84 10 2c 20 01 shrd \$0x1,%r12,\(%rax\),%r31 +\s*[a-f0-9]+:\s*62 54 05 10 2c c4 02 shrd \$0x2,%r8w,%r12w,%r31w +\s*[a-f0-9]+:\s*62 74 04 10 2c 38 02 shrd \$0x2,%r15d,\(%rax\),%r31d +\s*[a-f0-9]+:\s*62 74 05 10 ad 08\s+shrd %cl,%r9w,\(%rax\),%r31w +\s*[a-f0-9]+:\s*62 7c bc 18 ad e0\s+shrd %cl,%r12,%r16,%r8 +\s*[a-f0-9]+:\s*62 7c 05 10 ad 2c 83\s+shrd %cl,%r13w,\(%r19,%rax,4\),%r31w +\s*[a-f0-9]+:\s*62 54 6d 10 66 c7 adcx %r15d,%r8d,%r18d +\s*[a-f0-9]+:\s*62 14 69 10 66 04 3f adcx \(%r15,%r31,1\),%r8d,%r18d +\s*[a-f0-9]+:\s*62 14 f9 08 66 04 3f adcx \(%r15,%r31,1\),%r8 +\s*[a-f0-9]+:\s*62 54 6e 10 66 c7 adox %r15d,%r8d,%r18d +\s*[a-f0-9]+:\s*62 14 6a 10 66 04 3f adox \(%r15,%r31,1\),%r8d,%r18d +\s*[a-f0-9]+:\s*62 14 fa 08 66 04 3f adox \(%r15,%r31,1\),%r8 +\s*[a-f0-9]+:\s*67 62 f4 3c 18 40 90 90 90 90 90 cmovo -0x6f6f6f70\(%eax\),%edx,%r8d +\s*[a-f0-9]+:\s*67 62 f4 3c 18 41 90 90 90 90 90 cmovno -0x6f6f6f70\(%eax\),%edx,%r8d +\s*[a-f0-9]+:\s*67 62 f4 3c 18 42 90 90 90 90 90 cmovb -0x6f6f6f70\(%eax\),%edx,%r8d +\s*[a-f0-9]+:\s*67 62 f4 3c 18 43 90 90 90 90 90 cmovae -0x6f6f6f70\(%eax\),%edx,%r8d +\s*[a-f0-9]+:\s*67 62 f4 3c 18 44 90 90 90 90 90 cmove -0x6f6f6f70\(%eax\),%edx,%r8d +\s*[a-f0-9]+:\s*67 62 f4 3c 18 45 90 90 90 90 90 cmovne -0x6f6f6f70\(%eax\),%edx,%r8d +\s*[a-f0-9]+:\s*67 62 f4 3c 18 46 90 90 90 90 90 cmovbe -0x6f6f6f70\(%eax\),%edx,%r8d +\s*[a-f0-9]+:\s*67 62 f4 3c 18 47 90 90 90 90 90 cmova -0x6f6f6f70\(%eax\),%edx,%r8d +\s*[a-f0-9]+:\s*67 62 f4 3c 18 48 90 90 90 90 90 cmovs -0x6f6f6f70\(%eax\),%edx,%r8d +\s*[a-f0-9]+:\s*67 62 f4 3c 18 49 90 90 90 90 90 cmovns -0x6f6f6f70\(%eax\),%edx,%r8d +\s*[a-f0-9]+:\s*67 62 f4 3c 18 4a 90 90 90 90 90 cmovp -0x6f6f6f70\(%eax\),%edx,%r8d +\s*[a-f0-9]+:\s*67 62 f4 3c 18 4b 90 90 90 90 90 cmovnp -0x6f6f6f70\(%eax\),%edx,%r8d +\s*[a-f0-9]+:\s*67 62 f4 3c 18 4c 90 90 90 90 90 cmovl -0x6f6f6f70\(%eax\),%edx,%r8d +\s*[a-f0-9]+:\s*67 62 f4 3c 18 4d 90 90 90 90 90 cmovge -0x6f6f6f70\(%eax\),%edx,%r8d +\s*[a-f0-9]+:\s*67 62 f4 3c 18 4e 90 90 90 90 90 cmovle -0x6f6f6f70\(%eax\),%edx,%r8d +\s*[a-f0-9]+:\s*67 62 f4 3c 18 4f 90 90 90 90 90 cmovg -0x6f6f6f70\(%eax\),%edx,%r8d +\s*[a-f0-9]+:\s*67 62 f4 3c 18 af 90 09 09 09 00 imul 0x90909\(%eax\),%edx,%r8d +\s*[a-f0-9]+:\s*62 b4 b0 10 af 94 f8 09 09 00 00 imul 0x909\(%rax,%r31,8\),%rdx,%r25 +\s*[a-f0-9]+:\s*62 f4 fc 08 ff c0\s+inc %rax +\s*[a-f0-9]+:\s*62 f4 ec\s+\(bad\) +\s*[a-f0-9]+:\s*08 ff\s+or %bh,%bh +\s*[a-f0-9]+:\s*c0\s+\.byte 0xc0 +#pass diff --git a/gas/testsuite/gas/i386/x86-64-apx-ndd.s b/gas/testsuite/gas/i386/x86-64-apx-ndd.s new file mode 100644 index 00000000000..8c86989ffe5 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd.s @@ -0,0 +1,156 @@ +# Check 64bit APX NDD instructions with evex prefix encoding + + .allow_index_reg + .text +_start: +inc %rax,%rbx +inc %r31,%r8 +inc %r31,%r16 +add %r31b,%r8b,%r16b +addb %r31b,%r8b,%r16b +add %r31,%r8,%r16 +addq %r31,%r8,%r16 +add %r31d,%r8d,%r16d +addl %r31d,%r8d,%r16d +add %r31w,%r8w,%r16w +addw %r31w,%r8w,%r16w +{store} add %r31,%r8,%r16 +{load} add %r31,%r8,%r16 +add %r31,(%r8),%r16 +add (%r31),%r8,%r16 +add 0x9090(%r31,%r16,1),%r8,%r16 +add %r31,(%r8,%r16,8),%r16 +add $0x34,%r13b,%r17b +addl $0x11,(%r19,%rax,4),%r20d +add $0x1234,%ax,%r30w +add $0x12344433,%r15,%r16 +addq $0x12344433,(%r15,%rcx,4),%r16 +add $0xfffffffff4332211,%rax,%r8 +dec %rax,%r17 +decb (%r31,%r12,1),%r8b +not %rax,%r17 +notb (%r31,%r12,1),%r8b +neg %rax,%r17 +negb (%r31,%r12,1),%r8b +sub %r15b,%r17b,%r18b +sub %r15d,(%r8),%r18d +sub (%r15,%rax,1),%r16b,%r8b +sub (%r15,%rax,1),%r16w,%r8w +subl $0x11,(%r19,%rax,4),%r20d +sub $0x1234,%ax,%r30w +sbb %r15b,%r17b,%r18b +sbb %r15d,(%r8),%r18d +sbb (%r15,%rax,1),%r16b,%r8b +sbb (%r15,%rax,1),%r16w,%r8w +sbbl $0x11,(%r19,%rax,4),%r20d +sbb $0x1234,%ax,%r30w +adc %r15b,%r17b,%r18b +adc %r15d,(%r8),%r18d +adc (%r15,%rax,1),%r16b,%r8b +adc (%r15,%rax,1),%r16w,%r8w +adcl $0x11,(%r19,%rax,4),%r20d +adc $0x1234,%ax,%r30w +or %r15b,%r17b,%r18b +or %r15d,(%r8),%r18d +or (%r15,%rax,1),%r16b,%r8b +or (%r15,%rax,1),%r16w,%r8w +orl $0x11,(%r19,%rax,4),%r20d +or $0x1234,%ax,%r30w +xor %r15b,%r17b,%r18b +xor %r15d,(%r8),%r18d +xor (%r15,%rax,1),%r16b,%r8b +xor (%r15,%rax,1),%r16w,%r8w +xorl $0x11,(%r19,%rax,4),%r20d +xor $0x1234,%ax,%r30w +and %r15b,%r17b,%r18b +and %r15d,(%r8),%r18d +and (%r15,%rax,1),%r16b,%r8b +and (%r15,%rax,1),%r16w,%r8w +andl $0x11,(%r19,%rax,4),%r20d +and $0x1234,%ax,%r30w +rorb (%rax),%r31b +ror $0x2,%r12b,%r31b +rorl $0x2,(%rax),%r31d +rorw (%rax),%r31w +ror %cl,%r16b,%r8b +rorw %cl,(%r19,%rax,4),%r31w +rolb (%rax),%r31b +rol $0x2,%r12b,%r31b +roll $0x2,(%rax),%r31d +rolw (%rax),%r31w +rol %cl,%r16b,%r8b +rolw %cl,(%r19,%rax,4),%r31w +rcrb (%rax),%r31b +rcr $0x2,%r12b,%r31b +rcrl $0x2,(%rax),%r31d +rcrw (%rax),%r31w +rcr %cl,%r16b,%r8b +rcrw %cl,(%r19,%rax,4),%r31w +rclb (%rax),%r31b +rcl $0x2,%r12b,%r31b +rcll $0x2,(%rax),%r31d +rclw (%rax),%r31w +rcl %cl,%r16b,%r8b +rclw %cl,(%r19,%rax,4),%r31w +shlb (%rax),%r31b +shl $0x2,%r12b,%r31b +shll $0x2,(%rax),%r31d +shlw (%rax),%r31w +shl %cl,%r16b,%r8b +shlw %cl,(%r19,%rax,4),%r31w +sarb (%rax),%r31b +sar $0x2,%r12b,%r31b +sarl $0x2,(%rax),%r31d +sarw (%rax),%r31w +sar %cl,%r16b,%r8b +sarw %cl,(%r19,%rax,4),%r31w +shlb (%rax),%r31b +shl $0x2,%r12b,%r31b +shll $0x2,(%rax),%r31d +shlw (%rax),%r31w +shl %cl,%r16b,%r8b +shlw %cl,(%r19,%rax,4),%r31w +shrb (%rax),%r31b +shr $0x2,%r12b,%r31b +shrl $0x2,(%rax),%r31d +shrw (%rax),%r31w +shr %cl,%r16b,%r8b +shrw %cl,(%r19,%rax,4),%r31w +shld $0x1,%r12,(%rax),%r31 +shld $0x2,%r8w,%r12w,%r31w +shld $0x2,%r15d,(%rax),%r31d +shld %cl,%r9w,(%rax),%r31w +shld %cl,%r12,%r16,%r8 +shld %cl,%r13w,(%r19,%rax,4),%r31w +shrd $0x1,%r12,(%rax),%r31 +shrd $0x2,%r8w,%r12w,%r31w +shrd $0x2,%r15d,(%rax),%r31d +shrd %cl,%r9w,(%rax),%r31w +shrd %cl,%r12,%r16,%r8 +shrd %cl,%r13w,(%r19,%rax,4),%r31w +adcx %r15d,%r8d,%r18d +adcx (%r15,%r31,1),%r8d,%r18d +adcx (%r15,%r31,1),%r8 +adox %r15d,%r8d,%r18d +adox (%r15,%r31,1),%r8d,%r18d +adox (%r15,%r31,1),%r8 +cmovo 0x90909090(%eax),%edx,%r8d +cmovno 0x90909090(%eax),%edx,%r8d +cmovb 0x90909090(%eax),%edx,%r8d +cmovae 0x90909090(%eax),%edx,%r8d +cmove 0x90909090(%eax),%edx,%r8d +cmovne 0x90909090(%eax),%edx,%r8d +cmovbe 0x90909090(%eax),%edx,%r8d +cmova 0x90909090(%eax),%edx,%r8d +cmovs 0x90909090(%eax),%edx,%r8d +cmovns 0x90909090(%eax),%edx,%r8d +cmovp 0x90909090(%eax),%edx,%r8d +cmovnp 0x90909090(%eax),%edx,%r8d +cmovl 0x90909090(%eax),%edx,%r8d +cmovge 0x90909090(%eax),%edx,%r8d +cmovle 0x90909090(%eax),%edx,%r8d +cmovg 0x90909090(%eax),%edx,%r8d +imul 0x90909(%eax),%edx,%r8d +imul 0x909(%rax,%r31,8),%rdx,%r25 +.byte 0x62,0xf4,0xfc,0x08,0xff,0xc0 #inc %rax +.byte 0x62,0xf4,0xec,0x08,0xff,0xc0 #bad diff --git a/gas/testsuite/gas/i386/x86-64-pseudos.d b/gas/testsuite/gas/i386/x86-64-pseudos.d index 8cc4040cb77..f6257c01792 100644 --- a/gas/testsuite/gas/i386/x86-64-pseudos.d +++ b/gas/testsuite/gas/i386/x86-64-pseudos.d @@ -137,6 +137,48 @@ Disassembly of section .text: +[a-f0-9]+: 33 07 xor \(%rdi\),%eax +[a-f0-9]+: 31 07 xor %eax,\(%rdi\) +[a-f0-9]+: 33 07 xor \(%rdi\),%eax + +[a-f0-9]+: 62 44 fc 10 01 38 add %r31,\(%r8\),%r16 + +[a-f0-9]+: 62 44 fc 10 03 38 add \(%r8\),%r31,%r16 + +[a-f0-9]+: 62 44 fc 10 01 38 add %r31,\(%r8\),%r16 + +[a-f0-9]+: 62 44 fc 10 03 38 add \(%r8\),%r31,%r16 + +[a-f0-9]+: 62 54 6c 10 29 38 sub %r15d,\(%r8\),%r18d + +[a-f0-9]+: 62 54 6c 10 2b 38 sub \(%r8\),%r15d,%r18d + +[a-f0-9]+: 62 54 6c 10 29 38 sub %r15d,\(%r8\),%r18d + +[a-f0-9]+: 62 54 6c 10 2b 38 sub \(%r8\),%r15d,%r18d + +[a-f0-9]+: 62 54 6c 10 19 38 sbb %r15d,\(%r8\),%r18d + +[a-f0-9]+: 62 54 6c 10 1b 38 sbb \(%r8\),%r15d,%r18d + +[a-f0-9]+: 62 54 6c 10 19 38 sbb %r15d,\(%r8\),%r18d + +[a-f0-9]+: 62 54 6c 10 1b 38 sbb \(%r8\),%r15d,%r18d + +[a-f0-9]+: 62 54 6c 10 21 38 and %r15d,\(%r8\),%r18d + +[a-f0-9]+: 62 54 6c 10 23 38 and \(%r8\),%r15d,%r18d + +[a-f0-9]+: 62 54 6c 10 21 38 and %r15d,\(%r8\),%r18d + +[a-f0-9]+: 62 54 6c 10 23 38 and \(%r8\),%r15d,%r18d + +[a-f0-9]+: 62 54 6c 10 09 38 or %r15d,\(%r8\),%r18d + +[a-f0-9]+: 62 54 6c 10 0b 38 or \(%r8\),%r15d,%r18d + +[a-f0-9]+: 62 54 6c 10 09 38 or %r15d,\(%r8\),%r18d + +[a-f0-9]+: 62 54 6c 10 0b 38 or \(%r8\),%r15d,%r18d + +[a-f0-9]+: 62 54 6c 10 31 38 xor %r15d,\(%r8\),%r18d + +[a-f0-9]+: 62 54 6c 10 33 38 xor \(%r8\),%r15d,%r18d + +[a-f0-9]+: 62 54 6c 10 31 38 xor %r15d,\(%r8\),%r18d + +[a-f0-9]+: 62 54 6c 10 33 38 xor \(%r8\),%r15d,%r18d + +[a-f0-9]+: 62 54 6c 10 11 38 adc %r15d,\(%r8\),%r18d + +[a-f0-9]+: 62 54 6c 10 13 38 adc \(%r8\),%r15d,%r18d + +[a-f0-9]+: 62 54 6c 10 11 38 adc %r15d,\(%r8\),%r18d + +[a-f0-9]+: 62 54 6c 10 13 38 adc \(%r8\),%r15d,%r18d + +[a-f0-9]+: 62 44 fc 10 01 f8 add %r31,%r8,%r16 + +[a-f0-9]+: 62 5c fc 10 03 c7 add %r31,%r8,%r16 + +[a-f0-9]+: 62 7c 6c 10 28 f9 sub %r15b,%r17b,%r18b + +[a-f0-9]+: 62 c4 6c 10 2a cf sub %r15b,%r17b,%r18b + +[a-f0-9]+: 62 7c 6c 10 18 f9 sbb %r15b,%r17b,%r18b + +[a-f0-9]+: 62 c4 6c 10 1a cf sbb %r15b,%r17b,%r18b + +[a-f0-9]+: 62 7c 6c 10 20 f9 and %r15b,%r17b,%r18b + +[a-f0-9]+: 62 c4 6c 10 22 cf and %r15b,%r17b,%r18b + +[a-f0-9]+: 62 7c 6c 10 08 f9 or %r15b,%r17b,%r18b + +[a-f0-9]+: 62 c4 6c 10 0a cf or %r15b,%r17b,%r18b + +[a-f0-9]+: 62 7c 6c 10 30 f9 xor %r15b,%r17b,%r18b + +[a-f0-9]+: 62 c4 6c 10 32 cf xor %r15b,%r17b,%r18b + +[a-f0-9]+: 62 7c 6c 10 10 f9 adc %r15b,%r17b,%r18b + +[a-f0-9]+: 62 c4 6c 10 12 cf adc %r15b,%r17b,%r18b +[a-f0-9]+: b0 12 mov \$0x12,%al +[a-f0-9]+: b8 45 03 00 00 mov \$0x345,%eax +[a-f0-9]+: b0 12 mov \$0x12,%al diff --git a/gas/testsuite/gas/i386/x86-64-pseudos.s b/gas/testsuite/gas/i386/x86-64-pseudos.s index eb25f2a8fbf..9f756e5ba04 100644 --- a/gas/testsuite/gas/i386/x86-64-pseudos.s +++ b/gas/testsuite/gas/i386/x86-64-pseudos.s @@ -134,6 +134,49 @@ _start: {load} xor (%rdi), %eax {store} xor %eax, (%rdi) {store} xor (%rdi), %eax + {load} add %r31,(%r8),%r16 + {load} add (%r8),%r31,%r16 + {store} add %r31,(%r8),%r16 + {store} add (%r8),%r31,%r16 + {load} sub %r15d,(%r8),%r18d + {load} sub (%r8),%r15d,%r18d + {store} sub %r15d,(%r8),%r18d + {store} sub (%r8),%r15d,%r18d + {load} sbb %r15d,(%r8),%r18d + {load} sbb (%r8),%r15d,%r18d + {store} sbb %r15d,(%r8),%r18d + {store} sbb (%r8),%r15d,%r18d + {load} and %r15d,(%r8),%r18d + {load} and (%r8),%r15d,%r18d + {store} and %r15d,(%r8),%r18d + {store} and (%r8),%r15d,%r18d + {load} or %r15d,(%r8),%r18d + {load} or (%r8),%r15d,%r18d + {store} or %r15d,(%r8),%r18d + {store} or (%r8),%r15d,%r18d + {load} xor %r15d,(%r8),%r18d + {load} xor (%r8),%r15d,%r18d + {store} xor %r15d,(%r8),%r18d + {store} xor (%r8),%r15d,%r18d + {load} adc %r15d,(%r8),%r18d + {load} adc (%r8),%r15d,%r18d + {store} adc %r15d,(%r8),%r18d + {store} adc (%r8),%r15d,%r18d + + {store} add %r31,%r8,%r16 + {load} add %r31,%r8,%r16 + {store} sub %r15b,%r17b,%r18b + {load} sub %r15b,%r17b,%r18b + {store} sbb %r15b,%r17b,%r18b + {load} sbb %r15b,%r17b,%r18b + {store} and %r15b,%r17b,%r18b + {load} and %r15b,%r17b,%r18b + {store} or %r15b,%r17b,%r18b + {load} or %r15b,%r17b,%r18b + {store} xor %r15b,%r17b,%r18b + {load} xor %r15b,%r17b,%r18b + {store} adc %r15b,%r17b,%r18b + {load} adc %r15b,%r17b,%r18b .irp m, mov, adc, add, and, cmp, or, sbb, sub, test, xor \m $0x12, %al diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp index 46fb3681528..ca1583c6f88 100644 --- a/gas/testsuite/gas/i386/x86-64.exp +++ b/gas/testsuite/gas/i386/x86-64.exp @@ -367,6 +367,7 @@ run_dump_test "x86-64-apx-rex2-inval" run_dump_test "x86-64-apx-evex-promoted" run_dump_test "x86-64-apx-evex-promoted-intel" run_dump_test "x86-64-apx-evex-egpr" +run_dump_test "x86-64-apx-ndd" run_dump_test "x86-64-avx512f-rcigrz-intel" run_dump_test "x86-64-avx512f-rcigrz" run_dump_test "x86-64-clwb" diff --git a/opcodes/i386-dis-evex-prefix.h b/opcodes/i386-dis-evex-prefix.h index f6f02de6c47..210783d7e88 100644 --- a/opcodes/i386-dis-evex-prefix.h +++ b/opcodes/i386-dis-evex-prefix.h @@ -353,8 +353,8 @@ /* PREFIX_EVEX_MAP4_66 */ { { MOD_TABLE (MOD_EVEX_MAP4_66_PREFIX_0) }, - { "adoxS", { Gdq, Edq }, 0 }, - { "adcxS", { Gdq, Edq }, 0 }, + { "adoxS", { VexGdq, Gdq, Edq }, 0 }, + { "adcxS", { VexGdq, Gdq, Edq }, 0 }, }, /* PREFIX_EVEX_MAP4_D8 */ { diff --git a/opcodes/i386-dis-evex-reg.h b/opcodes/i386-dis-evex-reg.h index c3b4f083346..d00c2843e12 100644 --- a/opcodes/i386-dis-evex-reg.h +++ b/opcodes/i386-dis-evex-reg.h @@ -56,6 +56,105 @@ { "blsmskS", { VexGdq, Edq }, 0 }, { "blsiS", { VexGdq, Edq }, 0 }, }, + /* REG_EVEX_MAP4_80 */ + { + { "addA", { VexGb, Eb, Ib }, 0 }, + { "orA", { VexGb, Eb, Ib }, 0 }, + { "adcA", { VexGb, Eb, Ib }, 0 }, + { "sbbA", { VexGb, Eb, Ib }, 0 }, + { "andA", { VexGb, Eb, Ib }, 0 }, + { "subA", { VexGb, Eb, Ib }, 0 }, + { "xorA", { VexGb, Eb, Ib }, 0 }, + { Bad_Opcode }, + }, + /* REG_EVEX_MAP4_81 */ + { + { "addQ", { VexGv, Ev, Iv }, 0 }, + { "orQ", { VexGv, Ev, Iv }, 0 }, + { "adcQ", { VexGv, Ev, Iv }, 0 }, + { "sbbQ", { VexGv, Ev, Iv }, 0 }, + { "andQ", { VexGv, Ev, Iv }, 0 }, + { "subQ", { VexGv, Ev, Iv }, 0 }, + { "xorQ", { VexGv, Ev, Iv }, 0 }, + { Bad_Opcode }, + }, + /* REG_EVEX_MAP4_83 */ + { + { "addQ", { VexGv, Ev, sIb }, 0 }, + { "orQ", { VexGv, Ev, sIb }, 0 }, + { "adcQ", { VexGv, Ev, sIb }, 0 }, + { "sbbQ", { VexGv, Ev, sIb }, 0 }, + { "andQ", { VexGv, Ev, sIb }, 0 }, + { "subQ", { VexGv, Ev, sIb }, 0 }, + { "xorQ", { VexGv, Ev, sIb }, 0 }, + { Bad_Opcode }, + }, + /* REG_EVEX_MAP4_C0 */ + { + { "rolA", { VexGb, Eb, Ib }, 0 }, + { "rorA", { VexGb, Eb, Ib }, 0 }, + { "rclA", { VexGb, Eb, Ib }, 0 }, + { "rcrA", { VexGb, Eb, Ib }, 0 }, + { "shlA", { VexGb, Eb, Ib }, 0 }, + { "shrA", { VexGb, Eb, Ib }, 0 }, + { "shlA", { VexGb, Eb, Ib }, 0 }, + { "sarA", { VexGb, Eb, Ib }, 0 }, + }, + /* REG_EVEX_MAP4_C1 */ + { + { "rolQ", { VexGv, Ev, Ib }, 0 }, + { "rorQ", { VexGv, Ev, Ib }, 0 }, + { "rclQ", { VexGv, Ev, Ib }, 0 }, + { "rcrQ", { VexGv, Ev, Ib }, 0 }, + { "shlQ", { VexGv, Ev, Ib }, 0 }, + { "shrQ", { VexGv, Ev, Ib }, 0 }, + { "shlQ", { VexGv, Ev, Ib }, 0 }, + { "sarQ", { VexGv, Ev, Ib }, 0 }, + }, + /* REG_EVEX_MAP4_D0 */ + { + { "rolA", { VexGb, Eb, I1 }, 0 }, + { "rorA", { VexGb, Eb, I1 }, 0 }, + { "rclA", { VexGb, Eb, I1 }, 0 }, + { "rcrA", { VexGb, Eb, I1 }, 0 }, + { "shlA", { VexGb, Eb, I1 }, 0 }, + { "shrA", { VexGb, Eb, I1 }, 0 }, + { "shlA", { VexGb, Eb, I1 }, 0 }, + { "sarA", { VexGb, Eb, I1 }, 0 }, + }, + /* REG_EVEX_MAP4_D1 */ + { + { "rolQ", { VexGv, Ev, I1 }, 0 }, + { "rorQ", { VexGv, Ev, I1 }, 0 }, + { "rclQ", { VexGv, Ev, I1 }, 0 }, + { "rcrQ", { VexGv, Ev, I1 }, 0 }, + { "shlQ", { VexGv, Ev, I1 }, 0 }, + { "shrQ", { VexGv, Ev, I1 }, 0 }, + { "shlQ", { VexGv, Ev, I1 }, 0 }, + { "sarQ", { VexGv, Ev, I1 }, 0 }, + }, + /* REG_EVEX_MAP4_D2 */ + { + { "rolA", { VexGb, Eb, CL }, 0 }, + { "rorA", { VexGb, Eb, CL }, 0 }, + { "rclA", { VexGb, Eb, CL }, 0 }, + { "rcrA", { VexGb, Eb, CL }, 0 }, + { "shlA", { VexGb, Eb, CL }, 0 }, + { "shrA", { VexGb, Eb, CL }, 0 }, + { "shlA", { VexGb, Eb, CL }, 0 }, + { "sarA", { VexGb, Eb, CL }, 0 }, + }, + /* REG_EVEX_MAP4_D3 */ + { + { "rolQ", { VexGv, Ev, CL }, 0 }, + { "rorQ", { VexGv, Ev, CL }, 0 }, + { "rclQ", { VexGv, Ev, CL }, 0 }, + { "rcrQ", { VexGv, Ev, CL }, 0 }, + { "shlQ", { VexGv, Ev, CL }, 0 }, + { "shrQ", { VexGv, Ev, CL }, 0 }, + { "shlQ", { VexGv, Ev, CL }, 0 }, + { "sarQ", { VexGv, Ev, CL }, 0 }, + }, /* REG_EVEX_MAP4_D8_PREFIX_1 */ { { "aesencwide128kl", { M }, 0 }, @@ -63,3 +162,27 @@ { "aesencwide256kl", { M }, 0 }, { "aesdecwide256kl", { M }, 0 }, }, + /* REG_EVEX_MAP4_F6 */ + { + { Bad_Opcode }, + { Bad_Opcode }, + { "notA", { VexGb, Eb }, 0 }, + { "negA", { VexGb, Eb }, 0 }, + }, + /* REG_EVEX_MAP4_F7 */ + { + { Bad_Opcode }, + { Bad_Opcode }, + { "notQ", { VexGv, Ev }, 0 }, + { "negQ", { VexGv, Ev }, 0 }, + }, + /* REG_EVEX_MAP4_FE */ + { + { "incA", { VexGb ,Eb }, 0 }, + { "decA", { VexGb ,Eb }, 0 }, + }, + /* REG_EVEX_MAP4_FF */ + { + { "incQ", { VexGv ,Ev }, 0 }, + { "decQ", { VexGv ,Ev }, 0 }, + }, diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h index 2a8c80c5200..1787be6dbf0 100644 --- a/opcodes/i386-dis-evex.h +++ b/opcodes/i386-dis-evex.h @@ -875,64 +875,64 @@ static const struct dis386 evex_table[][256] = { /* EVEX_MAP4_ */ { /* 00 */ - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, + { "addB", { VexGb, Eb, Gb }, 0 }, + { "addS", { VexGv, Ev, Gv }, 0 }, + { "addB", { VexGb, Gb, EbS }, 0 }, + { "addS", { VexGv, Gv, EvS }, 0 }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, /* 08 */ - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, + { "orB", { VexGb, Eb, Gb }, 0 }, + { "orS", { VexGv, Ev, Gv }, 0 }, + { "orB", { VexGb, Gb, EbS }, 0 }, + { "orS", { VexGv, Gv, EvS }, 0 }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, /* 10 */ - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, + { "adcB", { VexGb, Eb, Gb }, 0 }, + { "adcS", { VexGv, Ev, Gv }, 0 }, + { "adcB", { VexGb, Gb, EbS }, 0 }, + { "adcS", { VexGv, Gv, EvS }, 0 }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, /* 18 */ - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, + { "sbbB", { VexGb, Eb, Gb }, 0 }, + { "sbbS", { VexGv, Ev, Gv }, 0 }, + { "sbbB", { VexGb, Gb, EbS }, 0 }, + { "sbbS", { VexGv, Gv, EvS }, 0 }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, /* 20 */ - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, + { "andB", { VexGb, Eb, Gb }, 0 }, + { "andS", { VexGv, Ev, Gv }, 0 }, + { "andB", { VexGb, Gb, EbS }, 0 }, + { "andS", { VexGv, Gv, EvS }, 0 }, + { "shldS", { VexGv, Ev, Gv, Ib }, 0 }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, /* 28 */ - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, + { "subB", { VexGb, Eb, Gb }, 0 }, + { "subS", { VexGv, Ev, Gv }, 0 }, + { "subB", { VexGb, Gb, EbS }, 0 }, + { "subS", { VexGv, Gv, EvS }, 0 }, + { "shrdS", { VexGv, Ev, Gv, Ib }, 0 }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, /* 30 */ - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, + { "xorB", { VexGb, Eb, Gb }, 0 }, + { "xorS", { VexGv, Ev, Gv }, 0 }, + { "xorB", { VexGb, Gb, EbS }, 0 }, + { "xorS", { VexGv, Gv, EvS }, 0 }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -947,23 +947,23 @@ static const struct dis386 evex_table[][256] = { { Bad_Opcode }, { Bad_Opcode }, /* 40 */ - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, + { "cmovoS", { VexGv, Gv, Ev }, 0 }, + { "cmovnoS", { VexGv, Gv, Ev }, 0 }, + { "cmovbS", { VexGv, Gv, Ev }, 0 }, + { "cmovaeS", { VexGv, Gv, Ev }, 0 }, + { "cmoveS", { VexGv, Gv, Ev }, 0 }, + { "cmovneS", { VexGv, Gv, Ev }, 0 }, + { "cmovbeS", { VexGv, Gv, Ev }, 0 }, + { "cmovaS", { VexGv, Gv, Ev }, 0 }, /* 48 */ - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, + { "cmovsS", { VexGv, Gv, Ev }, 0 }, + { "cmovnsS", { VexGv, Gv, Ev }, 0 }, + { "cmovpS", { VexGv, Gv, Ev }, 0 }, + { "cmovnpS", { VexGv, Gv, Ev }, 0 }, + { "cmovlS", { VexGv, Gv, Ev }, 0 }, + { "cmovgeS", { VexGv, Gv, Ev }, 0 }, + { "cmovleS", { VexGv, Gv, Ev }, 0 }, + { "cmovgS", { VexGv, Gv, Ev }, 0 }, /* 50 */ { Bad_Opcode }, { Bad_Opcode }, @@ -1019,10 +1019,10 @@ static const struct dis386 evex_table[][256] = { { Bad_Opcode }, { Bad_Opcode }, /* 80 */ + { REG_TABLE (REG_EVEX_MAP4_80) }, + { REG_TABLE (REG_EVEX_MAP4_81) }, { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, + { REG_TABLE (REG_EVEX_MAP4_83) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -1060,7 +1060,7 @@ static const struct dis386 evex_table[][256] = { { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { Bad_Opcode }, + { "shldS", { VexGv, Ev, Gv, CL }, 0 }, { Bad_Opcode }, { Bad_Opcode }, /* A8 */ @@ -1069,9 +1069,9 @@ static const struct dis386 evex_table[][256] = { { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, + { "shrdS", { VexGv, Ev, Gv, CL }, 0 }, { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, + { "imulS", { VexGv, Gv, Ev }, 0 }, /* B0 */ { Bad_Opcode }, { Bad_Opcode }, @@ -1091,8 +1091,8 @@ static const struct dis386 evex_table[][256] = { { Bad_Opcode }, { Bad_Opcode }, /* C0 */ - { Bad_Opcode }, - { Bad_Opcode }, + { REG_TABLE (REG_EVEX_MAP4_C0) }, + { REG_TABLE (REG_EVEX_MAP4_C1) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -1109,10 +1109,10 @@ static const struct dis386 evex_table[][256] = { { Bad_Opcode }, { Bad_Opcode }, /* D0 */ - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, + { REG_TABLE (REG_EVEX_MAP4_D0) }, + { REG_TABLE (REG_EVEX_MAP4_D1) }, + { REG_TABLE (REG_EVEX_MAP4_D2) }, + { REG_TABLE (REG_EVEX_MAP4_D3) }, { "sha1rnds4", { XM, EXxmm, Ib }, 0 }, { Bad_Opcode }, { Bad_Opcode }, @@ -1151,8 +1151,8 @@ static const struct dis386 evex_table[][256] = { { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, + { REG_TABLE (REG_EVEX_MAP4_F6) }, + { REG_TABLE (REG_EVEX_MAP4_F7) }, /* F8 */ { PREFIX_TABLE (PREFIX_EVEX_MAP4_F8) }, { MOD_TABLE (MOD_EVEX_MAP4_F9) }, @@ -1160,8 +1160,8 @@ static const struct dis386 evex_table[][256] = { { Bad_Opcode }, { PREFIX_TABLE (PREFIX_EVEX_MAP4_FC) }, { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, + { REG_TABLE (REG_EVEX_MAP4_FE) }, + { REG_TABLE (REG_EVEX_MAP4_FF) }, }, /* EVEX_MAP5_ */ { diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index c8f3cfb8149..c702fd9e756 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -571,6 +571,8 @@ fetch_error (const instr_info *ins) #define VexGatherD { OP_VEX, vex_vsib_d_w_dq_mode } #define VexGatherQ { OP_VEX, vex_vsib_q_w_dq_mode } #define VexGdq { OP_VEX, dq_mode } +#define VexGb { OP_VEX, b_mode } +#define VexGv { OP_VEX, v_mode } #define VexTmm { OP_VEX, tmm_mode } #define XMVexI4 { OP_REG_VexI4, x_mode } #define XMVexScalarI4 { OP_REG_VexI4, scalar_mode } @@ -883,7 +885,20 @@ enum REG_EVEX_0F38C6_L_2, REG_EVEX_0F38C7_L_2, REG_EVEX_0F38F3_L_0, - REG_EVEX_MAP4_D8_PREFIX_1 + REG_EVEX_MAP4_80, + REG_EVEX_MAP4_81, + REG_EVEX_MAP4_83, + REG_EVEX_MAP4_C0, + REG_EVEX_MAP4_C1, + REG_EVEX_MAP4_D0, + REG_EVEX_MAP4_D1, + REG_EVEX_MAP4_D2, + REG_EVEX_MAP4_D3, + REG_EVEX_MAP4_D8_PREFIX_1, + REG_EVEX_MAP4_F6, + REG_EVEX_MAP4_F7, + REG_EVEX_MAP4_FE, + REG_EVEX_MAP4_FF, }; enum @@ -9070,6 +9085,14 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins) ins->rex &= ~REX_B; ins->rex2 &= ~REX_R; } + if (ins->evex_type == evex_from_legacy) + { + if (ins->vex.ll || ins->vex.zeroing + || (!ins->vex.b && (ins->vex.register_specifier + || !ins->vex.v))) + return &bad_opcode; + ins->rex |= REX_OPCODE; + } ins->need_vex = 4; ins->codep++; @@ -9080,7 +9103,7 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins) return &err_opcode; /* Set vector length. */ - if (ins->modrm.mod == 3 && ins->vex.b) + if (ins->modrm.mod == 3 && ins->vex.b && ins->evex_type == evex_default) ins->vex.length = 512; else { @@ -10994,7 +11017,7 @@ print_displacement (instr_info *ins, bfd_signed_vma val) static void intel_operand_size (instr_info *ins, int bytemode, int sizeflag) { - if (ins->vex.b) + if (ins->vex.b && ins->evex_type != evex_from_legacy) { if (!ins->vex.no_broadcast) switch (bytemode) @@ -11928,7 +11951,8 @@ OP_E_memory (instr_info *ins, int bytemode, int sizeflag) ins->vex.no_broadcast = true; if (!ins->vex.no_broadcast - && (!ins->intel_syntax || !(ins->evex_used & EVEX_len_used))) + && (!ins->intel_syntax || !(ins->evex_used & EVEX_len_used)) + && ins->evex_type == evex_default) { if (bytemode == xh_mode) { @@ -13280,6 +13304,14 @@ OP_VEX (instr_info *ins, int bytemode, int sizeflag ATTRIBUTE_UNUSED) if (!ins->need_vex) return true; + if (ins->evex_type == evex_from_legacy) + { + if (ins->vex.b) + ins->evex_used |= EVEX_b_used; + else + return true; + } + reg = ins->vex.register_specifier; ins->vex.register_specifier = 0; if (ins->address_mode != mode_64bit) @@ -13371,12 +13403,19 @@ OP_VEX (instr_info *ins, int bytemode, int sizeflag ATTRIBUTE_UNUSED) names = att_names_xmm; ins->evex_used |= EVEX_len_used; break; + case v_mode: case dq_mode: if (ins->rex & REX_W) names = att_names64; + else if (bytemode == v_mode + && !(sizeflag & DFLAG)) + names = att_names16; else names = att_names32; break; + case b_mode: + names = att_names8rex; + break; case mask_bd_mode: case mask_mode: if (reg > 0x7) diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h index 9dd5625f54d..f36a8da5cbe 100644 --- a/opcodes/i386-opc.h +++ b/opcodes/i386-opc.h @@ -960,6 +960,7 @@ typedef struct insn_template /* The next value is arbitrary, as long as it's non-zero and distinct from all other values above. */ #define Opcode_VexW 0xf /* Operand order controlled by VEX.W. */ +#define Opcode_APX_NDDD 0x11 /* Direction bit for APX NDD insns. */ /* how many operands */ unsigned int operands:3; diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl index 791a9fe0177..4bb0c9f4906 100644 --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -286,17 +286,25 @@ add, 0x0, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg3 add, 0x83/0, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex } add, 0x4, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword } add, 0x80/0, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +add, 0x0, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +add, 0x83/0, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +add, 0x80/0, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64} inc, 0x40, No64, No_bSuf|No_sSuf|No_qSuf, { Reg16|Reg32 } inc, 0xfe/0, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +inc, 0xfe/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, {Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64} sub, 0x28, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } sub, 0x83/5, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex } sub, 0x2c, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword } sub, 0x80/5, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +sub, 0x28, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64, } +sub, 0x83/5, APX_F|x64, Modrm|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +sub, 0x80/5, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } dec, 0x48, No64, No_bSuf|No_sSuf|No_qSuf, { Reg16|Reg32 } dec, 0xfe/1, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +dec, 0xfe/1, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } sbb, 0x18, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } sbb, 0x83/3, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex } @@ -305,6 +313,9 @@ sbb, 0x80/3, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|R sbb, 0x18, APX_F|x64, D|W|CheckOperandSize|Modrm|EVex128|EVexMap4|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } sbb, 0x83/3, APX_F|x64, Modrm|EVex128|EVexMap4|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex } sbb, 0x80/3, APX_F|x64, W|Modrm|EVex128|EVexMap4|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +sbb, 0x18, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +sbb, 0x83/3, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +sbb, 0x80/3, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } cmp, 0x38, 0, D|W|CheckOperandSize|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } cmp, 0x83/7, 0, Modrm|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex } @@ -319,16 +330,25 @@ and, 0x20, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8| and, 0x83/4, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock|Optimize, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex } and, 0x24, 0, W|No_sSuf|Optimize, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword } and, 0x80/4, 0, W|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +and, 0x20, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +and, 0x83/4, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4|Optimize, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +and, 0x80/4, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4|Optimize, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } or, 0x8, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } or, 0x83/1, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex } or, 0xc, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword } or, 0x80/1, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +or, 0x8, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +or, 0x83/1, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +or, 0x80/1, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } xor, 0x30, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } xor, 0x83/6, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex } xor, 0x34, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword } xor, 0x80/6, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +xor, 0x30, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +xor, 0x83/6, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +xor, 0x80/6, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } // clr with 1 operand is really xor with 2 operands. clr, 0x30, 0, W|Modrm|No_sSuf|RegKludge|Optimize, { Reg8|Reg16|Reg32|Reg64 } @@ -340,11 +360,16 @@ adc, 0x80/2, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|R adc, 0x10, APX_F|x64, D|W|CheckOperandSize|Modrm|EVex128|EVexMap4|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } adc, 0x83/2, APX_F|x64, Modrm|EVex128|EVexMap4|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex } adc, 0x80/2, APX_F|x64, W|Modrm|EVex128|EVexMap4|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +adc, 0x10, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +adc, 0x83/2, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +adc, 0x80/2, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } neg, 0xf6/3, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +neg, 0xf6/3, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } not, 0xf6/2, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } not, 0xf6/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +not, 0xf6/2, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } aaa, 0x37, No64, NoSuf, {} aas, 0x3f, No64, NoSuf, {} @@ -378,6 +403,7 @@ cqto, 0x99, x64, Size64|NoSuf, {} mul, 0xf6/4, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } imul, 0xf6/5, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } imul, 0xfaf, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|Word|Dword|Qword|BaseIndex, Reg16|Reg32|Reg64 } +imul, 0xaf, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg16|Reg32|Reg64|Unspecified|Word|Dword|Qword|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 } imul, 0x6b, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } imul, 0x69, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm16|Imm32|Imm32S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } // imul with 2 operands mimics imul with 3 by putting the register in @@ -395,11 +421,19 @@ rol, 0xd0/0, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword| rol, 0xc0/0, i186, W|Modrm|No_sSuf, { Imm8|Imm8S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } rol, 0xd2/0, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } rol, 0xd0/0, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +rol, 0xd0/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +rol, 0xc0/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8|Imm8S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +rol, 0xd2/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +rol, 0xd0/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } ror, 0xd0/1, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } ror, 0xc0/1, i186, W|Modrm|No_sSuf, { Imm8|Imm8S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } ror, 0xd2/1, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } ror, 0xd0/1, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +ror, 0xd0/1, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +ror, 0xc0/1, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8|Imm8S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +ror, 0xd2/1, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +ror, 0xd0/1, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } rcl, 0xd0/2, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } rcl, 0xc0/2, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } @@ -409,6 +443,10 @@ rcl, 0xd0/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg rcl, 0xc0/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } rcl, 0xd2/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } rcl, 0xd0/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +rcl, 0xd0/2, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +rcl, 0xc0/2, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +rcl, 0xd2/2, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +rcl, 0xd0/2, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } rcr, 0xd0/3, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } rcr, 0xc0/3, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } @@ -418,34 +456,60 @@ rcr, 0xd0/3, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg rcr, 0xc0/3, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } rcr, 0xd2/3, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } rcr, 0xd0/3, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +rcr, 0xd0/3, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +rcr, 0xc0/3, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +rcr, 0xd2/3, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +rcr, 0xd0/3, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } sal, 0xd0/4, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } sal, 0xc0/4, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } sal, 0xd2/4, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } sal, 0xd0/4, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +sal, 0xd0/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +sal, 0xc0/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +sal, 0xd2/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +sal, 0xd0/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } shl, 0xd0/4, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } shl, 0xc0/4, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } shl, 0xd2/4, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } shl, 0xd0/4, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +shl, 0xd0/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +shl, 0xc0/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +shl, 0xd2/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +shl, 0xd0/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } shr, 0xd0/5, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } shr, 0xc0/5, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } shr, 0xd2/5, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } shr, 0xd0/5, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +shr, 0xd0/5, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +shr, 0xc0/5, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +shr, 0xd2/5, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +shr, 0xd0/5, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } sar, 0xd0/7, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } sar, 0xc0/7, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } sar, 0xd2/7, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } sar, 0xd0/7, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } +sar, 0xd0/7, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +sar, 0xc0/7, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +sar, 0xd2/7, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +sar, 0xd0/7, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } shld, 0xfa4, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex } shld, 0xfa5, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex } shld, 0xfa5, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex } +shld, 0x24, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +shld, 0xa5, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +shld, 0xa5, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } shrd, 0xfac, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex } shrd, 0xfad, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex } shrd, 0xfad, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex } +shrd, 0x2c, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +shrd, 0xad, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +shrd, 0xad, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } // Control transfer instructions. call, 0xe8, No64, JumpDword|DefaultSize|No_bSuf|No_sSuf|No_qSuf|BNDPrefixOk, { Disp16|Disp32 } @@ -951,6 +1015,7 @@ ud2b, 0xfb9, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|U ud0, 0xfff, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } cmov, 0xf4, CMOV, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +cmov, 0x4, CMOV|APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 } fcmovb, 0xda/0, i687, Modrm|NoSuf, { FloatReg, FloatAcc } fcmovnae, 0xda/0, i687, Modrm|NoSuf, { FloatReg, FloatAcc } @@ -2044,8 +2109,10 @@ xstore, 0xfa7c0, PadLock, NoSuf|RepPrefixOk, {} // Multy-precision Add Carry, rdseed instructions. adcx, 0x660f38f6, ADX, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 } adcx, 0x6666, ADX|APX_F|x64, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 } +adcx, 0x6666, ADX|APX_F|x64, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 } adox, 0xf30f38f6, ADX, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 } adox, 0xf366, ADX|APX_F|x64, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 } +adox, 0xf366, ADX|APX_F|x64, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 } rdseed, 0xfc7/7, RdSeed, Modrm|NoSuf, { Reg16|Reg32|Reg64 } // SMAP instructions. diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h index aee37c3dd7a..880cdbb8807 100644 --- a/opcodes/i386-tbl.h +++ b/opcodes/i386-tbl.h @@ -722,6 +722,39 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 0, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_add, 0x00, 3, SPACE_EVEXMAP4, None, + { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_add, 0x83, 3, SPACE_EVEXMAP4, 0, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_add, 0x80, 3, SPACE_EVEXMAP4, 0, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_inc, 0x40, 1, SPACE_BASE, None, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -736,6 +769,15 @@ static const insn_template i386_optab[] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_inc, 0xfe, 2, SPACE_EVEXMAP4, 0, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_sub, 0x28, 2, SPACE_BASE, None, { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, @@ -772,6 +814,39 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 0, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_sub, 0x28, 3, SPACE_EVEXMAP4, None, + { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_sub, 0x83, 3, SPACE_EVEXMAP4, 5, + { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_sub, 0x80, 3, SPACE_EVEXMAP4, 5, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_dec, 0x48, 1, SPACE_BASE, None, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -786,6 +861,15 @@ static const insn_template i386_optab[] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_dec, 0xfe, 2, SPACE_EVEXMAP4, 1, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_sbb, 0x18, 2, SPACE_BASE, None, { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -849,6 +933,39 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 0, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_sbb, 0x18, 3, SPACE_EVEXMAP4, None, + { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_sbb, 0x83, 3, SPACE_EVEXMAP4, 3, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_sbb, 0x80, 3, SPACE_EVEXMAP4, 3, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmp, 0x38, 2, SPACE_BASE, None, { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -948,6 +1065,39 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 0, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_and, 0x20, 3, SPACE_EVEXMAP4, None, + { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_and, 0x83, 3, SPACE_EVEXMAP4, 4, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_and, 0x80, 3, SPACE_EVEXMAP4, 4, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_or, 0x08, 2, SPACE_BASE, None, { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, @@ -984,6 +1134,39 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 0, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_or, 0x08, 3, SPACE_EVEXMAP4, None, + { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_or, 0x83, 3, SPACE_EVEXMAP4, 1, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_or, 0x80, 3, SPACE_EVEXMAP4, 1, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_xor, 0x30, 2, SPACE_BASE, None, { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, @@ -1020,6 +1203,39 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 0, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_xor, 0x30, 3, SPACE_EVEXMAP4, None, + { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_xor, 0x83, 3, SPACE_EVEXMAP4, 6, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_xor, 0x80, 3, SPACE_EVEXMAP4, 6, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_clr, 0x30, 1, SPACE_BASE, None, { 0, 1, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, @@ -1090,6 +1306,39 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 0, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_adc, 0x10, 3, SPACE_EVEXMAP4, None, + { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_adc, 0x83, 3, SPACE_EVEXMAP4, 2, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_adc, 0x80, 3, SPACE_EVEXMAP4, 2, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_neg, 0xf6, 1, SPACE_BASE, 3, { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1097,6 +1346,15 @@ static const insn_template i386_optab[] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_neg, 0xf6, 2, SPACE_EVEXMAP4, 3, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_not, 0xf6, 1, SPACE_BASE, 2, { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1111,6 +1369,15 @@ static const insn_template i386_optab[] = { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_not, 0xf6, 2, SPACE_EVEXMAP4, 2, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_aaa, 0x37, 0, SPACE_BASE, None, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1274,6 +1541,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_imul, 0xaf, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_imul, 0x6b, 3, SPACE_BASE, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1380,6 +1658,48 @@ static const insn_template i386_optab[] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_rol, 0xd0, 3, SPACE_EVEXMAP4, 0, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_rol, 0xc0, 3, SPACE_EVEXMAP4, 0, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_rol, 0xd2, 3, SPACE_EVEXMAP4, 0, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_rol, 0xd0, 2, SPACE_EVEXMAP4, 0, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_ror, 0xd0, 2, SPACE_BASE, 1, { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1414,6 +1734,48 @@ static const insn_template i386_optab[] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_ror, 0xd0, 3, SPACE_EVEXMAP4, 1, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_ror, 0xc0, 3, SPACE_EVEXMAP4, 1, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_ror, 0xd2, 3, SPACE_EVEXMAP4, 1, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_ror, 0xd0, 2, SPACE_EVEXMAP4, 1, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_rcl, 0xd0, 2, SPACE_BASE, 2, { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1482,6 +1844,48 @@ static const insn_template i386_optab[] = { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_rcl, 0xd0, 3, SPACE_EVEXMAP4, 2, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_rcl, 0xc0, 3, SPACE_EVEXMAP4, 2, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_rcl, 0xd2, 3, SPACE_EVEXMAP4, 2, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_rcl, 0xd0, 2, SPACE_EVEXMAP4, 2, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_rcr, 0xd0, 2, SPACE_BASE, 3, { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1550,6 +1954,48 @@ static const insn_template i386_optab[] = { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_rcr, 0xd0, 3, SPACE_EVEXMAP4, 3, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_rcr, 0xc0, 3, SPACE_EVEXMAP4, 3, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_rcr, 0xd2, 3, SPACE_EVEXMAP4, 3, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_rcr, 0xd0, 2, SPACE_EVEXMAP4, 3, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_sal, 0xd0, 2, SPACE_BASE, 4, { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1584,6 +2030,48 @@ static const insn_template i386_optab[] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_sal, 0xd0, 3, SPACE_EVEXMAP4, 4, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_sal, 0xc0, 3, SPACE_EVEXMAP4, 4, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_sal, 0xd2, 3, SPACE_EVEXMAP4, 4, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_sal, 0xd0, 2, SPACE_EVEXMAP4, 4, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_shl, 0xd0, 2, SPACE_BASE, 4, { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1618,6 +2106,48 @@ static const insn_template i386_optab[] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_shl, 0xd0, 3, SPACE_EVEXMAP4, 4, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_shl, 0xc0, 3, SPACE_EVEXMAP4, 4, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_shl, 0xd2, 3, SPACE_EVEXMAP4, 4, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_shl, 0xd0, 2, SPACE_EVEXMAP4, 4, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_shr, 0xd0, 2, SPACE_BASE, 5, { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1652,6 +2182,48 @@ static const insn_template i386_optab[] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_shr, 0xd0, 3, SPACE_EVEXMAP4, 5, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_shr, 0xc0, 3, SPACE_EVEXMAP4, 5, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_shr, 0xd2, 3, SPACE_EVEXMAP4, 5, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_shr, 0xd0, 2, SPACE_EVEXMAP4, 5, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_sar, 0xd0, 2, SPACE_BASE, 7, { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1686,6 +2258,48 @@ static const insn_template i386_optab[] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_sar, 0xd0, 3, SPACE_EVEXMAP4, 7, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_sar, 0xc0, 3, SPACE_EVEXMAP4, 7, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_sar, 0xd2, 3, SPACE_EVEXMAP4, 7, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_sar, 0xd0, 2, SPACE_EVEXMAP4, 7, + { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_shld, 0xa4, 3, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1717,6 +2331,43 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 0, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_shld, 0x24, 4, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_shld, 0xa5, 4, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_shld, 0xa5, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_shrd, 0xac, 3, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1748,6 +2399,43 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 0, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_shrd, 0x2c, 4, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_shrd, 0xad, 4, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, + { MN_shrd, 0xad, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_call, 0xe8, 1, SPACE_BASE, None, { 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4970,6 +5658,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovo, 0x40, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovno, 0x41, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4979,6 +5678,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovno, 0x41, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovb, 0x42, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4988,6 +5698,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovb, 0x42, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovc, 0x42, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4997,6 +5718,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovc, 0x42, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovnae, 0x42, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5006,6 +5738,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovnae, 0x42, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovnb, 0x43, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5015,6 +5758,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovnb, 0x43, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovnc, 0x43, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5024,6 +5778,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovnc, 0x43, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovae, 0x43, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5033,6 +5798,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovae, 0x43, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmove, 0x44, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5042,6 +5818,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmove, 0x44, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovz, 0x44, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5051,6 +5838,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovz, 0x44, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovne, 0x45, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5060,6 +5858,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovne, 0x45, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovnz, 0x45, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5069,6 +5878,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovnz, 0x45, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovbe, 0x46, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5078,6 +5898,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovbe, 0x46, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovna, 0x46, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5087,6 +5918,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovna, 0x46, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovnbe, 0x47, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5096,6 +5938,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovnbe, 0x47, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmova, 0x47, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5105,6 +5958,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmova, 0x47, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovs, 0x48, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5114,6 +5978,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovs, 0x48, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovns, 0x49, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5123,6 +5998,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovns, 0x49, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovp, 0x4a, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5132,6 +6018,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovp, 0x4a, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovpe, 0x4a, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5141,6 +6038,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovpe, 0x4a, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovnp, 0x4b, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5150,6 +6058,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovnp, 0x4b, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovpo, 0x4b, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5159,6 +6078,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovpo, 0x4b, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovl, 0x4c, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5168,6 +6098,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovl, 0x4c, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovnge, 0x4c, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5177,6 +6118,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovnge, 0x4c, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovnl, 0x4d, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5186,6 +6138,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovnl, 0x4d, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovge, 0x4d, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5195,6 +6158,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovge, 0x4d, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovle, 0x4e, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5204,6 +6178,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovle, 0x4e, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovng, 0x4e, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5213,6 +6198,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovng, 0x4e, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovnle, 0x4f, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5222,6 +6218,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovnle, 0x4f, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_cmovg, 0x4f, 2, SPACE_0F, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5231,6 +6238,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_cmovg, 0x4f, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_fcmovb, 0xda, 2, SPACE_BASE, 0, { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -27987,6 +29005,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_adcx, 0x66, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 61, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_adox, 0xf6, 2, SPACE_0F38, None, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -28005,6 +29034,17 @@ static const insn_template i386_optab[] = 0, 0, 0, 0, 1, 0 } }, { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } } } }, + { MN_adox, 0x66, 3, SPACE_EVEXMAP4, None, + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }, + { { 61, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 1, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } }, + { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_rdseed, 0xc7, 1, SPACE_0F, 7, { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -38106,119 +39146,60 @@ static const insn_template *const i386_op_sets[] = i386_optab + 80, i386_optab + 81, i386_optab + 82, - i386_optab + 86, - i386_optab + 88, + i386_optab + 89, i386_optab + 92, - i386_optab + 94, - i386_optab + 101, - i386_optab + 105, - i386_optab + 108, + i386_optab + 99, + i386_optab + 102, i386_optab + 112, i386_optab + 116, - i386_optab + 120, - i386_optab + 121, - i386_optab + 128, - i386_optab + 129, - i386_optab + 131, - i386_optab + 132, + i386_optab + 119, + i386_optab + 126, i386_optab + 133, - i386_optab + 134, - i386_optab + 135, - i386_optab + 137, - i386_optab + 139, i386_optab + 140, i386_optab + 141, - i386_optab + 142, - i386_optab + 143, - i386_optab + 144, - i386_optab + 145, - i386_optab + 146, - i386_optab + 147, - i386_optab + 148, - i386_optab + 149, - i386_optab + 150, i386_optab + 151, - i386_optab + 152, + i386_optab + 153, + i386_optab + 156, + i386_optab + 157, i386_optab + 158, + i386_optab + 159, i386_optab + 160, i386_optab + 162, + i386_optab + 164, + i386_optab + 165, i386_optab + 166, + i386_optab + 167, + i386_optab + 168, + i386_optab + 169, i386_optab + 170, - i386_optab + 178, + i386_optab + 171, + i386_optab + 172, + i386_optab + 173, + i386_optab + 174, + i386_optab + 175, + i386_optab + 176, + i386_optab + 177, + i386_optab + 184, i386_optab + 186, - i386_optab + 190, - i386_optab + 194, - i386_optab + 198, - i386_optab + 202, - i386_optab + 205, - i386_optab + 208, - i386_optab + 217, - i386_optab + 220, + i386_optab + 188, + i386_optab + 196, + i386_optab + 204, + i386_optab + 216, i386_optab + 228, - i386_optab + 231, - i386_optab + 237, - i386_optab + 239, - i386_optab + 241, - i386_optab + 243, - i386_optab + 245, - i386_optab + 246, - i386_optab + 247, - i386_optab + 248, - i386_optab + 249, - i386_optab + 250, - i386_optab + 251, + i386_optab + 236, + i386_optab + 244, i386_optab + 252, - i386_optab + 253, - i386_optab + 254, - i386_optab + 255, - i386_optab + 256, - i386_optab + 257, - i386_optab + 258, - i386_optab + 259, i386_optab + 260, - i386_optab + 261, - i386_optab + 262, - i386_optab + 263, - i386_optab + 264, - i386_optab + 265, i386_optab + 266, - i386_optab + 267, - i386_optab + 268, - i386_optab + 269, - i386_optab + 270, - i386_optab + 271, i386_optab + 272, - i386_optab + 273, - i386_optab + 274, - i386_optab + 275, - i386_optab + 276, - i386_optab + 277, - i386_optab + 278, - i386_optab + 280, - i386_optab + 282, + i386_optab + 281, i386_optab + 284, - i386_optab + 286, - i386_optab + 288, - i386_optab + 289, - i386_optab + 290, - i386_optab + 291, i386_optab + 292, - i386_optab + 293, - i386_optab + 294, i386_optab + 295, - i386_optab + 296, - i386_optab + 297, - i386_optab + 298, - i386_optab + 299, - i386_optab + 300, i386_optab + 301, - i386_optab + 302, i386_optab + 303, - i386_optab + 304, i386_optab + 305, - i386_optab + 306, i386_optab + 307, - i386_optab + 308, i386_optab + 309, i386_optab + 310, i386_optab + 311, @@ -38229,24 +39210,42 @@ static const insn_template *const i386_op_sets[] = i386_optab + 316, i386_optab + 317, i386_optab + 318, + i386_optab + 319, i386_optab + 320, + i386_optab + 321, i386_optab + 322, + i386_optab + 323, i386_optab + 324, + i386_optab + 325, i386_optab + 326, + i386_optab + 327, + i386_optab + 328, i386_optab + 329, + i386_optab + 330, + i386_optab + 331, i386_optab + 332, + i386_optab + 333, i386_optab + 334, + i386_optab + 335, i386_optab + 336, + i386_optab + 337, + i386_optab + 338, i386_optab + 339, + i386_optab + 340, + i386_optab + 341, i386_optab + 342, - i386_optab + 345, + i386_optab + 344, + i386_optab + 346, i386_optab + 348, i386_optab + 350, - i386_optab + 351, i386_optab + 352, + i386_optab + 353, i386_optab + 354, + i386_optab + 355, i386_optab + 356, + i386_optab + 357, i386_optab + 358, + i386_optab + 359, i386_optab + 360, i386_optab + 361, i386_optab + 362, @@ -38256,129 +39255,110 @@ static const insn_template *const i386_op_sets[] = i386_optab + 366, i386_optab + 367, i386_optab + 368, + i386_optab + 369, i386_optab + 370, + i386_optab + 371, i386_optab + 372, + i386_optab + 373, i386_optab + 374, + i386_optab + 375, i386_optab + 376, + i386_optab + 377, i386_optab + 378, + i386_optab + 379, i386_optab + 380, i386_optab + 381, - i386_optab + 383, - i386_optab + 385, - i386_optab + 387, - i386_optab + 389, - i386_optab + 391, + i386_optab + 382, + i386_optab + 384, + i386_optab + 386, + i386_optab + 388, + i386_optab + 390, i386_optab + 393, - i386_optab + 395, - i386_optab + 397, - i386_optab + 399, + i386_optab + 396, + i386_optab + 398, + i386_optab + 400, i386_optab + 403, - i386_optab + 405, i386_optab + 406, - i386_optab + 407, - i386_optab + 408, - i386_optab + 411, + i386_optab + 409, i386_optab + 412, + i386_optab + 414, + i386_optab + 415, i386_optab + 416, i386_optab + 418, - i386_optab + 419, i386_optab + 420, - i386_optab + 421, - i386_optab + 423, + i386_optab + 422, + i386_optab + 424, + i386_optab + 425, + i386_optab + 426, i386_optab + 427, i386_optab + 428, + i386_optab + 429, + i386_optab + 430, + i386_optab + 431, i386_optab + 432, - i386_optab + 433, i386_optab + 434, i386_optab + 436, i386_optab + 438, - i386_optab + 439, i386_optab + 440, - i386_optab + 441, i386_optab + 442, - i386_optab + 443, i386_optab + 444, i386_optab + 445, - i386_optab + 446, i386_optab + 447, - i386_optab + 448, - i386_optab + 452, + i386_optab + 449, + i386_optab + 451, i386_optab + 453, - i386_optab + 456, + i386_optab + 455, + i386_optab + 457, + i386_optab + 459, i386_optab + 461, - i386_optab + 462, - i386_optab + 468, - i386_optab + 473, - i386_optab + 474, + i386_optab + 463, + i386_optab + 467, + i386_optab + 469, + i386_optab + 470, + i386_optab + 471, + i386_optab + 472, + i386_optab + 475, + i386_optab + 476, i386_optab + 480, + i386_optab + 482, + i386_optab + 483, i386_optab + 484, i386_optab + 485, - i386_optab + 488, - i386_optab + 493, - i386_optab + 494, + i386_optab + 487, + i386_optab + 491, + i386_optab + 492, + i386_optab + 496, + i386_optab + 497, + i386_optab + 498, i386_optab + 500, + i386_optab + 502, + i386_optab + 503, + i386_optab + 504, i386_optab + 505, i386_optab + 506, + i386_optab + 507, + i386_optab + 508, + i386_optab + 509, + i386_optab + 510, + i386_optab + 511, i386_optab + 512, - i386_optab + 513, - i386_optab + 514, - i386_optab + 515, i386_optab + 516, i386_optab + 517, - i386_optab + 518, - i386_optab + 519, i386_optab + 520, - i386_optab + 521, - i386_optab + 522, - i386_optab + 523, - i386_optab + 524, i386_optab + 525, i386_optab + 526, - i386_optab + 527, - i386_optab + 528, - i386_optab + 529, - i386_optab + 530, - i386_optab + 531, i386_optab + 532, - i386_optab + 533, - i386_optab + 534, - i386_optab + 535, + i386_optab + 537, i386_optab + 538, - i386_optab + 541, - i386_optab + 542, - i386_optab + 543, i386_optab + 544, - i386_optab + 545, - i386_optab + 546, - i386_optab + 547, i386_optab + 548, i386_optab + 549, - i386_optab + 550, - i386_optab + 551, i386_optab + 552, - i386_optab + 553, - i386_optab + 554, - i386_optab + 555, - i386_optab + 556, i386_optab + 557, i386_optab + 558, - i386_optab + 559, - i386_optab + 560, - i386_optab + 561, - i386_optab + 562, - i386_optab + 563, i386_optab + 564, - i386_optab + 565, - i386_optab + 566, - i386_optab + 567, - i386_optab + 568, i386_optab + 569, i386_optab + 570, - i386_optab + 571, - i386_optab + 572, - i386_optab + 573, - i386_optab + 574, - i386_optab + 575, i386_optab + 576, i386_optab + 577, i386_optab + 578, @@ -38403,11 +39383,7 @@ static const insn_template *const i386_op_sets[] = i386_optab + 597, i386_optab + 598, i386_optab + 599, - i386_optab + 600, - i386_optab + 601, i386_optab + 602, - i386_optab + 603, - i386_optab + 604, i386_optab + 605, i386_optab + 606, i386_optab + 607, @@ -38441,7 +39417,9 @@ static const insn_template *const i386_op_sets[] = i386_optab + 635, i386_optab + 636, i386_optab + 637, + i386_optab + 638, i386_optab + 639, + i386_optab + 640, i386_optab + 641, i386_optab + 642, i386_optab + 643, @@ -38495,138 +39473,160 @@ static const insn_template *const i386_op_sets[] = i386_optab + 691, i386_optab + 692, i386_optab + 693, + i386_optab + 694, + i386_optab + 695, i386_optab + 696, + i386_optab + 697, + i386_optab + 698, i386_optab + 699, - i386_optab + 702, + i386_optab + 700, + i386_optab + 701, + i386_optab + 703, i386_optab + 705, + i386_optab + 706, + i386_optab + 707, i386_optab + 708, + i386_optab + 709, + i386_optab + 710, i386_optab + 711, i386_optab + 712, i386_optab + 713, i386_optab + 714, i386_optab + 715, - i386_optab + 716, i386_optab + 717, + i386_optab + 719, + i386_optab + 721, i386_optab + 723, + i386_optab + 725, + i386_optab + 727, + i386_optab + 729, i386_optab + 731, - i386_optab + 734, + i386_optab + 733, + i386_optab + 735, i386_optab + 737, - i386_optab + 740, + i386_optab + 739, + i386_optab + 741, i386_optab + 743, - i386_optab + 746, + i386_optab + 745, + i386_optab + 747, i386_optab + 749, - i386_optab + 752, + i386_optab + 751, + i386_optab + 753, i386_optab + 755, - i386_optab + 758, + i386_optab + 757, + i386_optab + 759, i386_optab + 761, - i386_optab + 764, + i386_optab + 763, + i386_optab + 765, i386_optab + 767, - i386_optab + 770, + i386_optab + 769, + i386_optab + 771, i386_optab + 773, + i386_optab + 775, i386_optab + 776, + i386_optab + 777, + i386_optab + 778, i386_optab + 779, + i386_optab + 780, + i386_optab + 781, i386_optab + 782, + i386_optab + 783, + i386_optab + 784, i386_optab + 785, - i386_optab + 788, - i386_optab + 791, - i386_optab + 794, - i386_optab + 797, - i386_optab + 800, + i386_optab + 786, + i386_optab + 787, + i386_optab + 790, + i386_optab + 793, + i386_optab + 796, + i386_optab + 799, + i386_optab + 802, + i386_optab + 805, i386_optab + 806, - i386_optab + 812, - i386_optab + 818, - i386_optab + 824, - i386_optab + 830, - i386_optab + 836, - i386_optab + 842, - i386_optab + 848, - i386_optab + 851, - i386_optab + 854, - i386_optab + 857, - i386_optab + 860, - i386_optab + 863, - i386_optab + 866, - i386_optab + 869, - i386_optab + 872, - i386_optab + 875, - i386_optab + 878, - i386_optab + 881, - i386_optab + 884, - i386_optab + 887, - i386_optab + 890, - i386_optab + 893, - i386_optab + 895, - i386_optab + 897, - i386_optab + 899, - i386_optab + 901, - i386_optab + 903, - i386_optab + 905, - i386_optab + 907, - i386_optab + 909, - i386_optab + 911, - i386_optab + 913, - i386_optab + 915, - i386_optab + 917, - i386_optab + 919, - i386_optab + 921, - i386_optab + 923, - i386_optab + 925, - i386_optab + 927, - i386_optab + 929, - i386_optab + 931, - i386_optab + 933, - i386_optab + 935, - i386_optab + 937, - i386_optab + 939, - i386_optab + 940, - i386_optab + 941, - i386_optab + 947, - i386_optab + 949, - i386_optab + 950, - i386_optab + 952, + i386_optab + 807, + i386_optab + 808, + i386_optab + 809, + i386_optab + 810, + i386_optab + 811, + i386_optab + 817, + i386_optab + 825, + i386_optab + 828, + i386_optab + 831, + i386_optab + 834, + i386_optab + 837, + i386_optab + 840, + i386_optab + 843, + i386_optab + 846, + i386_optab + 849, + i386_optab + 852, + i386_optab + 855, + i386_optab + 858, + i386_optab + 861, + i386_optab + 864, + i386_optab + 867, + i386_optab + 870, + i386_optab + 873, + i386_optab + 876, + i386_optab + 879, + i386_optab + 882, + i386_optab + 885, + i386_optab + 888, + i386_optab + 891, + i386_optab + 894, + i386_optab + 900, + i386_optab + 906, + i386_optab + 912, + i386_optab + 918, + i386_optab + 924, + i386_optab + 930, + i386_optab + 936, + i386_optab + 942, + i386_optab + 945, + i386_optab + 948, + i386_optab + 951, i386_optab + 954, - i386_optab + 956, - i386_optab + 958, - i386_optab + 959, - i386_optab + 961, + i386_optab + 957, + i386_optab + 960, i386_optab + 963, - i386_optab + 965, - i386_optab + 967, + i386_optab + 966, i386_optab + 969, - i386_optab + 971, - i386_optab + 974, - i386_optab + 976, - i386_optab + 979, + i386_optab + 972, + i386_optab + 975, + i386_optab + 978, i386_optab + 981, - i386_optab + 983, i386_optab + 984, - i386_optab + 986, + i386_optab + 987, i386_optab + 989, i386_optab + 991, i386_optab + 993, i386_optab + 995, i386_optab + 997, - i386_optab + 1000, + i386_optab + 999, + i386_optab + 1001, i386_optab + 1003, - i386_optab + 1010, - i386_optab + 1016, + i386_optab + 1005, + i386_optab + 1007, + i386_optab + 1009, + i386_optab + 1011, + i386_optab + 1013, + i386_optab + 1015, + i386_optab + 1017, i386_optab + 1019, - i386_optab + 1022, + i386_optab + 1021, + i386_optab + 1023, i386_optab + 1025, - i386_optab + 1028, + i386_optab + 1027, + i386_optab + 1029, i386_optab + 1031, + i386_optab + 1033, i386_optab + 1034, i386_optab + 1035, - i386_optab + 1036, - i386_optab + 1037, - i386_optab + 1038, i386_optab + 1041, - i386_optab + 1042, + i386_optab + 1043, i386_optab + 1044, i386_optab + 1046, i386_optab + 1048, i386_optab + 1050, - i386_optab + 1051, + i386_optab + 1052, i386_optab + 1053, i386_optab + 1055, i386_optab + 1057, @@ -38634,45 +39634,42 @@ static const insn_template *const i386_op_sets[] = i386_optab + 1061, i386_optab + 1063, i386_optab + 1065, - i386_optab + 1067, - i386_optab + 1069, - i386_optab + 1071, + i386_optab + 1068, + i386_optab + 1070, i386_optab + 1073, i386_optab + 1075, i386_optab + 1077, - i386_optab + 1079, - i386_optab + 1081, + i386_optab + 1078, + i386_optab + 1080, i386_optab + 1083, i386_optab + 1085, i386_optab + 1087, i386_optab + 1089, i386_optab + 1091, - i386_optab + 1093, - i386_optab + 1095, + i386_optab + 1094, i386_optab + 1097, - i386_optab + 1099, - i386_optab + 1101, - i386_optab + 1103, - i386_optab + 1105, - i386_optab + 1107, - i386_optab + 1109, - i386_optab + 1111, + i386_optab + 1104, + i386_optab + 1110, i386_optab + 1113, - i386_optab + 1115, - i386_optab + 1117, - i386_optab + 1120, - i386_optab + 1126, + i386_optab + 1116, + i386_optab + 1119, + i386_optab + 1122, + i386_optab + 1125, i386_optab + 1128, + i386_optab + 1129, i386_optab + 1130, + i386_optab + 1131, i386_optab + 1132, - i386_optab + 1134, + i386_optab + 1135, i386_optab + 1136, i386_optab + 1138, i386_optab + 1140, - i386_optab + 1143, - i386_optab + 1146, - i386_optab + 1148, - i386_optab + 1150, + i386_optab + 1142, + i386_optab + 1144, + i386_optab + 1145, + i386_optab + 1147, + i386_optab + 1149, + i386_optab + 1151, i386_optab + 1153, i386_optab + 1155, i386_optab + 1157, @@ -38690,13 +39687,12 @@ static const insn_template *const i386_op_sets[] = i386_optab + 1181, i386_optab + 1183, i386_optab + 1185, - i386_optab + 1186, - i386_optab + 1188, - i386_optab + 1190, - i386_optab + 1192, - i386_optab + 1194, - i386_optab + 1196, - i386_optab + 1198, + i386_optab + 1187, + i386_optab + 1189, + i386_optab + 1191, + i386_optab + 1193, + i386_optab + 1195, + i386_optab + 1197, i386_optab + 1199, i386_optab + 1201, i386_optab + 1203, @@ -38704,10 +39700,7 @@ static const insn_template *const i386_op_sets[] = i386_optab + 1207, i386_optab + 1209, i386_optab + 1211, - i386_optab + 1212, - i386_optab + 1213, - i386_optab + 1216, - i386_optab + 1218, + i386_optab + 1214, i386_optab + 1220, i386_optab + 1222, i386_optab + 1224, @@ -38716,116 +39709,115 @@ static const insn_template *const i386_op_sets[] = i386_optab + 1230, i386_optab + 1232, i386_optab + 1234, - i386_optab + 1236, - i386_optab + 1238, + i386_optab + 1237, i386_optab + 1240, i386_optab + 1242, i386_optab + 1244, - i386_optab + 1246, - i386_optab + 1248, - i386_optab + 1250, - i386_optab + 1252, + i386_optab + 1247, + i386_optab + 1249, + i386_optab + 1251, i386_optab + 1253, - i386_optab + 1254, + i386_optab + 1255, i386_optab + 1257, i386_optab + 1259, - i386_optab + 1260, i386_optab + 1261, - i386_optab + 1262, i386_optab + 1263, - i386_optab + 1264, i386_optab + 1265, i386_optab + 1267, i386_optab + 1269, - i386_optab + 1270, i386_optab + 1271, - i386_optab + 1272, i386_optab + 1273, - i386_optab + 1276, + i386_optab + 1275, + i386_optab + 1277, i386_optab + 1279, + i386_optab + 1280, i386_optab + 1282, - i386_optab + 1285, + i386_optab + 1284, + i386_optab + 1286, i386_optab + 1288, - i386_optab + 1291, - i386_optab + 1294, + i386_optab + 1290, + i386_optab + 1292, + i386_optab + 1293, + i386_optab + 1295, i386_optab + 1297, - i386_optab + 1300, + i386_optab + 1299, + i386_optab + 1301, i386_optab + 1303, + i386_optab + 1305, i386_optab + 1306, - i386_optab + 1309, + i386_optab + 1307, + i386_optab + 1310, i386_optab + 1312, - i386_optab + 1315, + i386_optab + 1314, + i386_optab + 1316, i386_optab + 1318, - i386_optab + 1321, + i386_optab + 1320, + i386_optab + 1322, i386_optab + 1324, - i386_optab + 1327, + i386_optab + 1326, + i386_optab + 1328, i386_optab + 1330, i386_optab + 1332, i386_optab + 1334, + i386_optab + 1336, i386_optab + 1338, + i386_optab + 1340, i386_optab + 1342, i386_optab + 1344, i386_optab + 1346, - i386_optab + 1350, - i386_optab + 1352, + i386_optab + 1347, + i386_optab + 1348, + i386_optab + 1351, + i386_optab + 1353, i386_optab + 1354, + i386_optab + 1355, i386_optab + 1356, + i386_optab + 1357, i386_optab + 1358, - i386_optab + 1362, + i386_optab + 1359, + i386_optab + 1361, + i386_optab + 1363, i386_optab + 1364, + i386_optab + 1365, i386_optab + 1366, + i386_optab + 1367, i386_optab + 1370, - i386_optab + 1372, - i386_optab + 1374, + i386_optab + 1373, i386_optab + 1376, - i386_optab + 1380, + i386_optab + 1379, i386_optab + 1382, - i386_optab + 1384, - i386_optab + 1386, + i386_optab + 1385, i386_optab + 1388, - i386_optab + 1390, - i386_optab + 1392, + i386_optab + 1391, i386_optab + 1394, - i386_optab + 1396, - i386_optab + 1398, + i386_optab + 1397, i386_optab + 1400, - i386_optab + 1402, - i386_optab + 1404, + i386_optab + 1403, i386_optab + 1406, - i386_optab + 1408, - i386_optab + 1410, + i386_optab + 1409, i386_optab + 1412, - i386_optab + 1414, - i386_optab + 1416, + i386_optab + 1415, i386_optab + 1418, - i386_optab + 1420, - i386_optab + 1422, + i386_optab + 1421, i386_optab + 1424, i386_optab + 1426, i386_optab + 1428, - i386_optab + 1430, i386_optab + 1432, - i386_optab + 1434, i386_optab + 1436, i386_optab + 1438, i386_optab + 1440, i386_optab + 1444, + i386_optab + 1446, i386_optab + 1448, i386_optab + 1450, i386_optab + 1452, i386_optab + 1456, - i386_optab + 1457, i386_optab + 1458, - i386_optab + 1459, i386_optab + 1460, - i386_optab + 1461, - i386_optab + 1462, - i386_optab + 1463, i386_optab + 1464, i386_optab + 1466, i386_optab + 1468, i386_optab + 1470, - i386_optab + 1472, i386_optab + 1474, i386_optab + 1476, i386_optab + 1478, @@ -38840,65 +39832,66 @@ static const insn_template *const i386_op_sets[] = i386_optab + 1496, i386_optab + 1498, i386_optab + 1500, - i386_optab + 1501, i386_optab + 1502, i386_optab + 1504, i386_optab + 1506, i386_optab + 1508, i386_optab + 1510, - i386_optab + 1511, i386_optab + 1512, - i386_optab + 1513, i386_optab + 1514, - i386_optab + 1515, + i386_optab + 1516, i386_optab + 1518, - i386_optab + 1521, - i386_optab + 1523, - i386_optab + 1525, - i386_optab + 1527, - i386_optab + 1529, - i386_optab + 1531, - i386_optab + 1533, - i386_optab + 1535, - i386_optab + 1537, - i386_optab + 1539, - i386_optab + 1541, - i386_optab + 1543, - i386_optab + 1545, - i386_optab + 1547, - i386_optab + 1549, + i386_optab + 1520, + i386_optab + 1522, + i386_optab + 1524, + i386_optab + 1526, + i386_optab + 1528, + i386_optab + 1530, + i386_optab + 1532, + i386_optab + 1534, + i386_optab + 1538, + i386_optab + 1542, + i386_optab + 1544, + i386_optab + 1546, + i386_optab + 1550, i386_optab + 1551, + i386_optab + 1552, i386_optab + 1553, + i386_optab + 1554, i386_optab + 1555, + i386_optab + 1556, i386_optab + 1557, - i386_optab + 1559, - i386_optab + 1561, - i386_optab + 1563, - i386_optab + 1565, - i386_optab + 1567, - i386_optab + 1569, - i386_optab + 1571, - i386_optab + 1573, - i386_optab + 1575, - i386_optab + 1577, - i386_optab + 1579, - i386_optab + 1581, - i386_optab + 1583, - i386_optab + 1585, - i386_optab + 1587, - i386_optab + 1589, - i386_optab + 1591, - i386_optab + 1593, + i386_optab + 1558, + i386_optab + 1560, + i386_optab + 1562, + i386_optab + 1564, + i386_optab + 1566, + i386_optab + 1568, + i386_optab + 1570, + i386_optab + 1572, + i386_optab + 1574, + i386_optab + 1576, + i386_optab + 1578, + i386_optab + 1580, + i386_optab + 1582, + i386_optab + 1584, + i386_optab + 1586, + i386_optab + 1588, + i386_optab + 1590, + i386_optab + 1592, + i386_optab + 1594, i386_optab + 1595, - i386_optab + 1597, - i386_optab + 1599, - i386_optab + 1601, - i386_optab + 1603, + i386_optab + 1596, + i386_optab + 1598, + i386_optab + 1600, + i386_optab + 1602, + i386_optab + 1604, i386_optab + 1605, + i386_optab + 1606, i386_optab + 1607, + i386_optab + 1608, i386_optab + 1609, - i386_optab + 1611, - i386_optab + 1613, + i386_optab + 1612, i386_optab + 1615, i386_optab + 1617, i386_optab + 1619, @@ -39043,84 +40036,91 @@ static const insn_template *const i386_op_sets[] = i386_optab + 1897, i386_optab + 1899, i386_optab + 1901, - i386_optab + 1906, - i386_optab + 1908, + i386_optab + 1903, + i386_optab + 1905, + i386_optab + 1907, + i386_optab + 1909, + i386_optab + 1911, i386_optab + 1913, i386_optab + 1915, i386_optab + 1917, - i386_optab + 1922, - i386_optab + 1924, - i386_optab + 1926, - i386_optab + 1928, + i386_optab + 1919, + i386_optab + 1921, + i386_optab + 1923, + i386_optab + 1925, + i386_optab + 1927, + i386_optab + 1929, + i386_optab + 1931, i386_optab + 1933, i386_optab + 1935, i386_optab + 1937, i386_optab + 1939, + i386_optab + 1941, i386_optab + 1943, + i386_optab + 1945, + i386_optab + 1947, i386_optab + 1949, i386_optab + 1951, - i386_optab + 1956, - i386_optab + 1958, - i386_optab + 1960, - i386_optab + 1962, - i386_optab + 1964, - i386_optab + 1966, - i386_optab + 1968, - i386_optab + 1970, - i386_optab + 1972, - i386_optab + 1974, + i386_optab + 1953, + i386_optab + 1955, + i386_optab + 1957, + i386_optab + 1959, + i386_optab + 1961, + i386_optab + 1963, + i386_optab + 1965, + i386_optab + 1967, + i386_optab + 1969, + i386_optab + 1971, + i386_optab + 1973, i386_optab + 1975, - i386_optab + 1976, i386_optab + 1977, + i386_optab + 1979, i386_optab + 1981, - i386_optab + 1982, i386_optab + 1983, - i386_optab + 1984, i386_optab + 1985, - i386_optab + 1986, - i386_optab + 1988, + i386_optab + 1987, i386_optab + 1989, - i386_optab + 1990, i386_optab + 1991, i386_optab + 1993, i386_optab + 1995, - i386_optab + 1997, - i386_optab + 1999, - i386_optab + 2001, - i386_optab + 2003, - i386_optab + 2005, + i386_optab + 2000, + i386_optab + 2002, i386_optab + 2007, i386_optab + 2009, i386_optab + 2011, - i386_optab + 2013, - i386_optab + 2015, + i386_optab + 2016, i386_optab + 2018, + i386_optab + 2020, i386_optab + 2022, - i386_optab + 2023, - i386_optab + 2024, - i386_optab + 2026, - i386_optab + 2030, - i386_optab + 2034, - i386_optab + 2036, - i386_optab + 2040, - i386_optab + 2044, + i386_optab + 2027, + i386_optab + 2029, + i386_optab + 2031, + i386_optab + 2033, + i386_optab + 2037, + i386_optab + 2043, i386_optab + 2045, - i386_optab + 2046, - i386_optab + 2048, i386_optab + 2050, i386_optab + 2052, i386_optab + 2054, + i386_optab + 2056, + i386_optab + 2058, i386_optab + 2060, + i386_optab + 2062, i386_optab + 2064, + i386_optab + 2066, i386_optab + 2068, + i386_optab + 2069, i386_optab + 2070, - i386_optab + 2072, - i386_optab + 2074, + i386_optab + 2071, + i386_optab + 2075, i386_optab + 2076, i386_optab + 2077, + i386_optab + 2078, i386_optab + 2079, - i386_optab + 2081, + i386_optab + 2080, + i386_optab + 2082, i386_optab + 2083, + i386_optab + 2084, i386_optab + 2085, i386_optab + 2087, i386_optab + 2089, @@ -39134,47 +40134,42 @@ static const insn_template *const i386_op_sets[] = i386_optab + 2105, i386_optab + 2107, i386_optab + 2109, - i386_optab + 2111, - i386_optab + 2113, - i386_optab + 2115, + i386_optab + 2112, + i386_optab + 2116, i386_optab + 2117, - i386_optab + 2119, - i386_optab + 2121, - i386_optab + 2122, - i386_optab + 2123, - i386_optab + 2125, - i386_optab + 2127, + i386_optab + 2118, + i386_optab + 2120, + i386_optab + 2124, i386_optab + 2128, - i386_optab + 2129, - i386_optab + 2132, - i386_optab + 2135, + i386_optab + 2130, + i386_optab + 2134, i386_optab + 2138, - i386_optab + 2141, - i386_optab + 2143, - i386_optab + 2145, - i386_optab + 2147, - i386_optab + 2149, - i386_optab + 2151, - i386_optab + 2153, + i386_optab + 2139, + i386_optab + 2140, + i386_optab + 2142, + i386_optab + 2144, + i386_optab + 2146, + i386_optab + 2148, i386_optab + 2154, - i386_optab + 2155, - i386_optab + 2156, - i386_optab + 2160, + i386_optab + 2158, + i386_optab + 2162, i386_optab + 2164, i386_optab + 2166, i386_optab + 2168, - i386_optab + 2174, - i386_optab + 2178, + i386_optab + 2170, + i386_optab + 2171, + i386_optab + 2173, + i386_optab + 2175, + i386_optab + 2177, i386_optab + 2179, - i386_optab + 2180, i386_optab + 2181, - i386_optab + 2182, i386_optab + 2183, - i386_optab + 2184, i386_optab + 2185, + i386_optab + 2187, i386_optab + 2189, i386_optab + 2191, i386_optab + 2193, + i386_optab + 2195, i386_optab + 2197, i386_optab + 2199, i386_optab + 2201, @@ -39185,194 +40180,192 @@ static const insn_template *const i386_op_sets[] = i386_optab + 2211, i386_optab + 2213, i386_optab + 2215, + i386_optab + 2216, i386_optab + 2217, i386_optab + 2219, i386_optab + 2221, + i386_optab + 2222, i386_optab + 2223, - i386_optab + 2225, i386_optab + 2226, - i386_optab + 2231, - i386_optab + 2236, + i386_optab + 2229, + i386_optab + 2232, + i386_optab + 2235, + i386_optab + 2237, + i386_optab + 2239, i386_optab + 2241, - i386_optab + 2246, - i386_optab + 2251, - i386_optab + 2256, - i386_optab + 2261, - i386_optab + 2266, - i386_optab + 2271, + i386_optab + 2243, + i386_optab + 2245, + i386_optab + 2247, + i386_optab + 2248, + i386_optab + 2249, + i386_optab + 2250, + i386_optab + 2254, + i386_optab + 2258, + i386_optab + 2260, + i386_optab + 2262, + i386_optab + 2268, + i386_optab + 2272, + i386_optab + 2273, + i386_optab + 2274, + i386_optab + 2275, i386_optab + 2276, - i386_optab + 2281, - i386_optab + 2286, - i386_optab + 2288, - i386_optab + 2290, - i386_optab + 2292, - i386_optab + 2294, - i386_optab + 2296, - i386_optab + 2298, - i386_optab + 2300, + i386_optab + 2277, + i386_optab + 2278, + i386_optab + 2279, + i386_optab + 2283, + i386_optab + 2285, + i386_optab + 2287, + i386_optab + 2291, + i386_optab + 2293, + i386_optab + 2295, + i386_optab + 2297, + i386_optab + 2299, i386_optab + 2301, i386_optab + 2303, i386_optab + 2305, i386_optab + 2307, i386_optab + 2309, i386_optab + 2311, - i386_optab + 2312, i386_optab + 2313, - i386_optab + 2314, - i386_optab + 2318, - i386_optab + 2322, - i386_optab + 2324, - i386_optab + 2328, - i386_optab + 2332, - i386_optab + 2336, + i386_optab + 2315, + i386_optab + 2317, + i386_optab + 2319, + i386_optab + 2320, + i386_optab + 2325, + i386_optab + 2330, + i386_optab + 2335, i386_optab + 2340, - i386_optab + 2344, - i386_optab + 2346, + i386_optab + 2345, i386_optab + 2350, - i386_optab + 2352, - i386_optab + 2354, - i386_optab + 2356, - i386_optab + 2358, + i386_optab + 2355, i386_optab + 2360, - i386_optab + 2362, - i386_optab + 2364, - i386_optab + 2366, - i386_optab + 2367, - i386_optab + 2369, - i386_optab + 2371, - i386_optab + 2373, + i386_optab + 2365, + i386_optab + 2370, i386_optab + 2375, - i386_optab + 2377, - i386_optab + 2379, - i386_optab + 2381, - i386_optab + 2383, + i386_optab + 2380, + i386_optab + 2382, i386_optab + 2384, - i386_optab + 2385, i386_optab + 2386, - i386_optab + 2387, i386_optab + 2388, - i386_optab + 2389, i386_optab + 2390, - i386_optab + 2391, i386_optab + 2392, i386_optab + 2394, - i386_optab + 2396, - i386_optab + 2398, - i386_optab + 2400, - i386_optab + 2402, - i386_optab + 2404, + i386_optab + 2395, + i386_optab + 2397, + i386_optab + 2399, + i386_optab + 2401, + i386_optab + 2403, i386_optab + 2405, + i386_optab + 2406, i386_optab + 2407, - i386_optab + 2409, - i386_optab + 2411, - i386_optab + 2413, - i386_optab + 2414, - i386_optab + 2415, - i386_optab + 2417, - i386_optab + 2419, - i386_optab + 2421, - i386_optab + 2423, - i386_optab + 2425, - i386_optab + 2427, - i386_optab + 2429, - i386_optab + 2431, - i386_optab + 2432, - i386_optab + 2433, + i386_optab + 2408, + i386_optab + 2412, + i386_optab + 2416, + i386_optab + 2418, + i386_optab + 2422, + i386_optab + 2426, + i386_optab + 2430, i386_optab + 2434, - i386_optab + 2435, i386_optab + 2438, - i386_optab + 2441, + i386_optab + 2440, i386_optab + 2444, - i386_optab + 2447, + i386_optab + 2446, i386_optab + 2448, i386_optab + 2450, - i386_optab + 2453, - i386_optab + 2455, + i386_optab + 2452, + i386_optab + 2454, + i386_optab + 2456, i386_optab + 2458, - i386_optab + 2459, i386_optab + 2460, - i386_optab + 2462, - i386_optab + 2464, - i386_optab + 2466, - i386_optab + 2468, - i386_optab + 2470, - i386_optab + 2472, - i386_optab + 2474, + i386_optab + 2461, + i386_optab + 2463, + i386_optab + 2465, + i386_optab + 2467, + i386_optab + 2469, + i386_optab + 2471, + i386_optab + 2473, + i386_optab + 2475, i386_optab + 2477, + i386_optab + 2478, + i386_optab + 2479, + i386_optab + 2480, + i386_optab + 2481, i386_optab + 2482, - i386_optab + 2487, + i386_optab + 2483, + i386_optab + 2484, + i386_optab + 2485, + i386_optab + 2486, + i386_optab + 2488, + i386_optab + 2490, i386_optab + 2492, - i386_optab + 2497, - i386_optab + 2500, + i386_optab + 2494, + i386_optab + 2496, + i386_optab + 2498, + i386_optab + 2499, + i386_optab + 2501, + i386_optab + 2503, i386_optab + 2505, - i386_optab + 2510, + i386_optab + 2507, + i386_optab + 2508, + i386_optab + 2509, + i386_optab + 2511, i386_optab + 2513, - i386_optab + 2516, + i386_optab + 2515, + i386_optab + 2517, i386_optab + 2519, - i386_optab + 2522, + i386_optab + 2521, i386_optab + 2523, - i386_optab + 2524, + i386_optab + 2525, + i386_optab + 2526, i386_optab + 2527, - i386_optab + 2530, - i386_optab + 2533, - i386_optab + 2536, - i386_optab + 2539, + i386_optab + 2528, + i386_optab + 2529, + i386_optab + 2532, + i386_optab + 2535, + i386_optab + 2538, i386_optab + 2541, - i386_optab + 2543, - i386_optab + 2545, - i386_optab + 2546, + i386_optab + 2542, + i386_optab + 2544, i386_optab + 2547, - i386_optab + 2548, i386_optab + 2549, - i386_optab + 2550, - i386_optab + 2555, + i386_optab + 2552, + i386_optab + 2553, + i386_optab + 2554, + i386_optab + 2556, + i386_optab + 2558, i386_optab + 2560, i386_optab + 2562, i386_optab + 2564, i386_optab + 2566, i386_optab + 2568, - i386_optab + 2570, - i386_optab + 2572, - i386_optab + 2574, + i386_optab + 2571, i386_optab + 2576, - i386_optab + 2578, - i386_optab + 2580, - i386_optab + 2582, - i386_optab + 2584, + i386_optab + 2581, i386_optab + 2586, - i386_optab + 2588, - i386_optab + 2590, - i386_optab + 2592, + i386_optab + 2591, i386_optab + 2594, - i386_optab + 2596, - i386_optab + 2598, - i386_optab + 2600, - i386_optab + 2602, + i386_optab + 2599, i386_optab + 2604, - i386_optab + 2606, - i386_optab + 2608, + i386_optab + 2607, i386_optab + 2610, - i386_optab + 2612, - i386_optab + 2614, + i386_optab + 2613, i386_optab + 2616, + i386_optab + 2617, i386_optab + 2618, - i386_optab + 2620, - i386_optab + 2622, + i386_optab + 2621, i386_optab + 2624, - i386_optab + 2626, - i386_optab + 2628, + i386_optab + 2627, i386_optab + 2630, - i386_optab + 2632, - i386_optab + 2634, - i386_optab + 2636, - i386_optab + 2638, + i386_optab + 2633, + i386_optab + 2635, + i386_optab + 2637, + i386_optab + 2639, i386_optab + 2640, + i386_optab + 2641, i386_optab + 2642, + i386_optab + 2643, i386_optab + 2644, - i386_optab + 2646, - i386_optab + 2648, - i386_optab + 2650, - i386_optab + 2652, + i386_optab + 2649, i386_optab + 2654, i386_optab + 2656, i386_optab + 2658, @@ -39387,11 +40380,8 @@ static const insn_template *const i386_op_sets[] = i386_optab + 2676, i386_optab + 2678, i386_optab + 2680, - i386_optab + 2681, i386_optab + 2682, - i386_optab + 2683, i386_optab + 2684, - i386_optab + 2685, i386_optab + 2686, i386_optab + 2688, i386_optab + 2690, @@ -39401,77 +40391,41 @@ static const insn_template *const i386_op_sets[] = i386_optab + 2698, i386_optab + 2700, i386_optab + 2702, - i386_optab + 2703, i386_optab + 2704, - i386_optab + 2705, i386_optab + 2706, - i386_optab + 2707, i386_optab + 2708, - i386_optab + 2709, i386_optab + 2710, - i386_optab + 2711, i386_optab + 2712, - i386_optab + 2713, i386_optab + 2714, - i386_optab + 2715, i386_optab + 2716, - i386_optab + 2717, i386_optab + 2718, - i386_optab + 2719, i386_optab + 2720, - i386_optab + 2721, i386_optab + 2722, - i386_optab + 2723, i386_optab + 2724, - i386_optab + 2725, i386_optab + 2726, - i386_optab + 2727, i386_optab + 2728, - i386_optab + 2729, i386_optab + 2730, - i386_optab + 2731, i386_optab + 2732, - i386_optab + 2733, i386_optab + 2734, - i386_optab + 2735, i386_optab + 2736, - i386_optab + 2737, i386_optab + 2738, - i386_optab + 2739, i386_optab + 2740, - i386_optab + 2741, i386_optab + 2742, - i386_optab + 2743, i386_optab + 2744, - i386_optab + 2745, i386_optab + 2746, - i386_optab + 2747, i386_optab + 2748, - i386_optab + 2749, i386_optab + 2750, - i386_optab + 2751, i386_optab + 2752, - i386_optab + 2753, i386_optab + 2754, - i386_optab + 2755, i386_optab + 2756, - i386_optab + 2757, i386_optab + 2758, - i386_optab + 2759, i386_optab + 2760, - i386_optab + 2761, i386_optab + 2762, - i386_optab + 2763, i386_optab + 2764, - i386_optab + 2765, i386_optab + 2766, - i386_optab + 2767, i386_optab + 2768, - i386_optab + 2769, i386_optab + 2770, - i386_optab + 2771, i386_optab + 2772, - i386_optab + 2773, i386_optab + 2774, i386_optab + 2775, i386_optab + 2776, @@ -39479,26 +40433,20 @@ static const insn_template *const i386_op_sets[] = i386_optab + 2778, i386_optab + 2779, i386_optab + 2780, - i386_optab + 2781, i386_optab + 2782, - i386_optab + 2783, i386_optab + 2784, - i386_optab + 2785, i386_optab + 2786, - i386_optab + 2787, i386_optab + 2788, - i386_optab + 2789, i386_optab + 2790, - i386_optab + 2791, i386_optab + 2792, - i386_optab + 2793, i386_optab + 2794, - i386_optab + 2795, i386_optab + 2796, i386_optab + 2797, i386_optab + 2798, i386_optab + 2799, + i386_optab + 2800, i386_optab + 2801, + i386_optab + 2802, i386_optab + 2803, i386_optab + 2804, i386_optab + 2805, @@ -39528,9 +40476,13 @@ static const insn_template *const i386_op_sets[] = i386_optab + 2829, i386_optab + 2830, i386_optab + 2831, + i386_optab + 2832, i386_optab + 2833, + i386_optab + 2834, i386_optab + 2835, + i386_optab + 2836, i386_optab + 2837, + i386_optab + 2838, i386_optab + 2839, i386_optab + 2840, i386_optab + 2841, @@ -39544,10 +40496,16 @@ static const insn_template *const i386_op_sets[] = i386_optab + 2849, i386_optab + 2850, i386_optab + 2851, + i386_optab + 2852, i386_optab + 2853, + i386_optab + 2854, + i386_optab + 2855, i386_optab + 2856, + i386_optab + 2857, i386_optab + 2858, + i386_optab + 2859, i386_optab + 2860, + i386_optab + 2861, i386_optab + 2862, i386_optab + 2863, i386_optab + 2864, @@ -39580,9 +40538,7 @@ static const insn_template *const i386_op_sets[] = i386_optab + 2891, i386_optab + 2892, i386_optab + 2893, - i386_optab + 2894, i386_optab + 2895, - i386_optab + 2896, i386_optab + 2897, i386_optab + 2898, i386_optab + 2899, @@ -39591,27 +40547,30 @@ static const insn_template *const i386_op_sets[] = i386_optab + 2902, i386_optab + 2903, i386_optab + 2904, + i386_optab + 2905, i386_optab + 2906, + i386_optab + 2907, i386_optab + 2908, i386_optab + 2909, i386_optab + 2910, + i386_optab + 2911, i386_optab + 2912, i386_optab + 2913, + i386_optab + 2914, i386_optab + 2915, + i386_optab + 2916, i386_optab + 2917, i386_optab + 2918, i386_optab + 2919, + i386_optab + 2920, i386_optab + 2921, + i386_optab + 2922, i386_optab + 2923, i386_optab + 2924, i386_optab + 2925, - i386_optab + 2926, i386_optab + 2927, - i386_optab + 2928, i386_optab + 2929, - i386_optab + 2930, i386_optab + 2931, - i386_optab + 2932, i386_optab + 2933, i386_optab + 2934, i386_optab + 2935, @@ -39621,25 +40580,32 @@ static const insn_template *const i386_op_sets[] = i386_optab + 2939, i386_optab + 2940, i386_optab + 2941, + i386_optab + 2942, i386_optab + 2943, + i386_optab + 2944, i386_optab + 2945, - i386_optab + 2946, i386_optab + 2947, - i386_optab + 2948, - i386_optab + 2949, i386_optab + 2950, - i386_optab + 2951, - i386_optab + 2953, - i386_optab + 2955, + i386_optab + 2952, + i386_optab + 2954, + i386_optab + 2956, i386_optab + 2957, i386_optab + 2958, i386_optab + 2959, + i386_optab + 2960, i386_optab + 2961, + i386_optab + 2962, i386_optab + 2963, + i386_optab + 2964, i386_optab + 2965, + i386_optab + 2966, i386_optab + 2967, + i386_optab + 2968, + i386_optab + 2969, i386_optab + 2970, + i386_optab + 2971, i386_optab + 2972, + i386_optab + 2973, i386_optab + 2974, i386_optab + 2975, i386_optab + 2976, @@ -39659,20 +40625,23 @@ static const insn_template *const i386_op_sets[] = i386_optab + 2990, i386_optab + 2991, i386_optab + 2992, + i386_optab + 2993, + i386_optab + 2994, + i386_optab + 2995, + i386_optab + 2996, + i386_optab + 2997, i386_optab + 2998, + i386_optab + 3000, + i386_optab + 3002, + i386_optab + 3003, i386_optab + 3004, - i386_optab + 3005, i386_optab + 3006, i386_optab + 3007, - i386_optab + 3008, i386_optab + 3009, - i386_optab + 3010, i386_optab + 3011, i386_optab + 3012, i386_optab + 3013, - i386_optab + 3014, i386_optab + 3015, - i386_optab + 3016, i386_optab + 3017, i386_optab + 3018, i386_optab + 3019, @@ -39692,11 +40661,7 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3033, i386_optab + 3034, i386_optab + 3035, - i386_optab + 3036, - i386_optab + 3037, i386_optab + 3038, - i386_optab + 3039, - i386_optab + 3040, i386_optab + 3041, i386_optab + 3042, i386_optab + 3043, @@ -39704,35 +40669,38 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3045, i386_optab + 3046, i386_optab + 3047, - i386_optab + 3048, i386_optab + 3049, - i386_optab + 3050, i386_optab + 3051, - i386_optab + 3052, i386_optab + 3053, i386_optab + 3054, i386_optab + 3055, - i386_optab + 3056, i386_optab + 3057, - i386_optab + 3058, + i386_optab + 3059, i386_optab + 3061, i386_optab + 3063, i386_optab + 3066, - i386_optab + 3069, + i386_optab + 3068, + i386_optab + 3070, i386_optab + 3071, + i386_optab + 3072, + i386_optab + 3073, i386_optab + 3074, + i386_optab + 3075, + i386_optab + 3076, i386_optab + 3077, + i386_optab + 3078, + i386_optab + 3079, i386_optab + 3080, + i386_optab + 3081, + i386_optab + 3082, i386_optab + 3083, i386_optab + 3084, + i386_optab + 3085, + i386_optab + 3086, i386_optab + 3087, i386_optab + 3088, - i386_optab + 3089, - i386_optab + 3090, - i386_optab + 3091, - i386_optab + 3092, - i386_optab + 3096, - i386_optab + 3098, + i386_optab + 3094, + i386_optab + 3100, i386_optab + 3101, i386_optab + 3102, i386_optab + 3103, @@ -39787,47 +40755,24 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3152, i386_optab + 3153, i386_optab + 3154, - i386_optab + 3155, - i386_optab + 3156, i386_optab + 3157, - i386_optab + 3158, i386_optab + 3159, - i386_optab + 3160, - i386_optab + 3161, i386_optab + 3162, - i386_optab + 3163, - i386_optab + 3164, i386_optab + 3165, - i386_optab + 3166, i386_optab + 3167, - i386_optab + 3168, - i386_optab + 3169, i386_optab + 3170, - i386_optab + 3171, - i386_optab + 3172, i386_optab + 3173, - i386_optab + 3174, - i386_optab + 3175, i386_optab + 3176, - i386_optab + 3177, - i386_optab + 3178, i386_optab + 3179, i386_optab + 3180, - i386_optab + 3181, - i386_optab + 3182, i386_optab + 3183, i386_optab + 3184, i386_optab + 3185, i386_optab + 3186, + i386_optab + 3187, i386_optab + 3188, - i386_optab + 3189, - i386_optab + 3190, - i386_optab + 3191, i386_optab + 3192, - i386_optab + 3193, i386_optab + 3194, - i386_optab + 3195, - i386_optab + 3196, i386_optab + 3197, i386_optab + 3198, i386_optab + 3199, @@ -39859,31 +40804,61 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3225, i386_optab + 3226, i386_optab + 3227, + i386_optab + 3228, + i386_optab + 3229, i386_optab + 3230, + i386_optab + 3231, + i386_optab + 3232, i386_optab + 3233, + i386_optab + 3234, + i386_optab + 3235, i386_optab + 3236, + i386_optab + 3237, + i386_optab + 3238, i386_optab + 3239, + i386_optab + 3240, + i386_optab + 3241, i386_optab + 3242, + i386_optab + 3243, + i386_optab + 3244, i386_optab + 3245, + i386_optab + 3246, + i386_optab + 3247, i386_optab + 3248, + i386_optab + 3249, + i386_optab + 3250, i386_optab + 3251, + i386_optab + 3252, + i386_optab + 3253, i386_optab + 3254, + i386_optab + 3255, + i386_optab + 3256, i386_optab + 3257, + i386_optab + 3258, + i386_optab + 3259, i386_optab + 3260, + i386_optab + 3261, + i386_optab + 3262, i386_optab + 3263, + i386_optab + 3264, + i386_optab + 3265, i386_optab + 3266, + i386_optab + 3267, + i386_optab + 3268, i386_optab + 3269, + i386_optab + 3270, + i386_optab + 3271, i386_optab + 3272, i386_optab + 3273, i386_optab + 3274, i386_optab + 3275, i386_optab + 3276, + i386_optab + 3277, i386_optab + 3278, i386_optab + 3279, i386_optab + 3280, i386_optab + 3281, i386_optab + 3282, - i386_optab + 3283, i386_optab + 3284, i386_optab + 3285, i386_optab + 3286, @@ -39924,46 +40899,25 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3321, i386_optab + 3322, i386_optab + 3323, - i386_optab + 3324, - i386_optab + 3325, i386_optab + 3326, - i386_optab + 3327, - i386_optab + 3328, i386_optab + 3329, - i386_optab + 3330, - i386_optab + 3331, i386_optab + 3332, - i386_optab + 3333, - i386_optab + 3334, i386_optab + 3335, - i386_optab + 3336, - i386_optab + 3337, i386_optab + 3338, - i386_optab + 3339, - i386_optab + 3345, - i386_optab + 3351, - i386_optab + 3352, + i386_optab + 3341, + i386_optab + 3344, + i386_optab + 3347, + i386_optab + 3350, i386_optab + 3353, - i386_optab + 3354, - i386_optab + 3355, i386_optab + 3356, - i386_optab + 3357, - i386_optab + 3358, i386_optab + 3359, - i386_optab + 3360, - i386_optab + 3361, i386_optab + 3362, - i386_optab + 3363, - i386_optab + 3364, i386_optab + 3365, - i386_optab + 3366, - i386_optab + 3367, i386_optab + 3368, i386_optab + 3369, i386_optab + 3370, i386_optab + 3371, i386_optab + 3372, - i386_optab + 3373, i386_optab + 3374, i386_optab + 3375, i386_optab + 3376, @@ -40004,8 +40958,14 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3411, i386_optab + 3412, i386_optab + 3413, + i386_optab + 3414, + i386_optab + 3415, i386_optab + 3416, + i386_optab + 3417, + i386_optab + 3418, i386_optab + 3419, + i386_optab + 3420, + i386_optab + 3421, i386_optab + 3422, i386_optab + 3423, i386_optab + 3424, @@ -40020,20 +40980,22 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3433, i386_optab + 3434, i386_optab + 3435, - i386_optab + 3436, - i386_optab + 3437, - i386_optab + 3438, i386_optab + 3441, - i386_optab + 3444, - i386_optab + 3445, - i386_optab + 3446, + i386_optab + 3447, + i386_optab + 3448, i386_optab + 3449, i386_optab + 3450, i386_optab + 3451, i386_optab + 3452, i386_optab + 3453, + i386_optab + 3454, + i386_optab + 3455, i386_optab + 3456, + i386_optab + 3457, + i386_optab + 3458, i386_optab + 3459, + i386_optab + 3460, + i386_optab + 3461, i386_optab + 3462, i386_optab + 3463, i386_optab + 3464, @@ -40045,7 +41007,9 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3470, i386_optab + 3471, i386_optab + 3472, + i386_optab + 3473, i386_optab + 3474, + i386_optab + 3475, i386_optab + 3476, i386_optab + 3477, i386_optab + 3478, @@ -40072,20 +41036,16 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3499, i386_optab + 3500, i386_optab + 3501, + i386_optab + 3502, i386_optab + 3503, + i386_optab + 3504, i386_optab + 3505, i386_optab + 3506, i386_optab + 3507, i386_optab + 3508, i386_optab + 3509, - i386_optab + 3510, - i386_optab + 3511, i386_optab + 3512, - i386_optab + 3513, - i386_optab + 3514, i386_optab + 3515, - i386_optab + 3516, - i386_optab + 3517, i386_optab + 3518, i386_optab + 3519, i386_optab + 3520, @@ -40099,43 +41059,44 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3528, i386_optab + 3529, i386_optab + 3530, + i386_optab + 3531, i386_optab + 3532, + i386_optab + 3533, i386_optab + 3534, - i386_optab + 3536, - i386_optab + 3538, - i386_optab + 3539, + i386_optab + 3537, i386_optab + 3540, i386_optab + 3541, i386_optab + 3542, - i386_optab + 3543, - i386_optab + 3544, i386_optab + 3545, i386_optab + 3546, i386_optab + 3547, i386_optab + 3548, i386_optab + 3549, - i386_optab + 3550, - i386_optab + 3551, i386_optab + 3552, - i386_optab + 3553, i386_optab + 3555, - i386_optab + 3556, i386_optab + 3558, + i386_optab + 3559, + i386_optab + 3560, i386_optab + 3561, + i386_optab + 3562, i386_optab + 3563, i386_optab + 3564, i386_optab + 3565, + i386_optab + 3566, i386_optab + 3567, - i386_optab + 3569, + i386_optab + 3568, i386_optab + 3570, - i386_optab + 3571, i386_optab + 3572, i386_optab + 3573, i386_optab + 3574, i386_optab + 3575, + i386_optab + 3576, i386_optab + 3577, + i386_optab + 3578, i386_optab + 3579, + i386_optab + 3580, i386_optab + 3581, + i386_optab + 3582, i386_optab + 3583, i386_optab + 3584, i386_optab + 3585, @@ -40146,14 +41107,22 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3590, i386_optab + 3591, i386_optab + 3592, + i386_optab + 3593, i386_optab + 3594, + i386_optab + 3595, i386_optab + 3596, i386_optab + 3597, i386_optab + 3599, i386_optab + 3601, i386_optab + 3602, + i386_optab + 3603, + i386_optab + 3604, + i386_optab + 3605, + i386_optab + 3606, i386_optab + 3607, + i386_optab + 3608, i386_optab + 3609, + i386_optab + 3610, i386_optab + 3611, i386_optab + 3612, i386_optab + 3613, @@ -40162,69 +41131,69 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3616, i386_optab + 3617, i386_optab + 3618, + i386_optab + 3619, i386_optab + 3620, + i386_optab + 3621, i386_optab + 3622, i386_optab + 3623, i386_optab + 3624, i386_optab + 3625, - i386_optab + 3627, + i386_optab + 3626, + i386_optab + 3628, i386_optab + 3630, - i386_optab + 3633, + i386_optab + 3632, + i386_optab + 3634, + i386_optab + 3635, i386_optab + 3636, + i386_optab + 3637, i386_optab + 3638, i386_optab + 3639, i386_optab + 3640, i386_optab + 3641, i386_optab + 3642, + i386_optab + 3643, i386_optab + 3644, + i386_optab + 3645, i386_optab + 3646, i386_optab + 3647, i386_optab + 3648, i386_optab + 3649, - i386_optab + 3650, i386_optab + 3651, i386_optab + 3652, - i386_optab + 3653, i386_optab + 3654, - i386_optab + 3656, - i386_optab + 3658, + i386_optab + 3657, + i386_optab + 3659, i386_optab + 3660, i386_optab + 3661, - i386_optab + 3662, i386_optab + 3663, i386_optab + 3665, + i386_optab + 3666, i386_optab + 3667, + i386_optab + 3668, i386_optab + 3669, + i386_optab + 3670, i386_optab + 3671, i386_optab + 3673, i386_optab + 3675, i386_optab + 3677, i386_optab + 3679, + i386_optab + 3680, i386_optab + 3681, + i386_optab + 3682, i386_optab + 3683, i386_optab + 3684, i386_optab + 3685, i386_optab + 3686, i386_optab + 3687, i386_optab + 3688, - i386_optab + 3689, i386_optab + 3690, - i386_optab + 3691, i386_optab + 3692, i386_optab + 3693, - i386_optab + 3694, i386_optab + 3695, - i386_optab + 3696, i386_optab + 3697, i386_optab + 3698, - i386_optab + 3699, - i386_optab + 3700, - i386_optab + 3701, - i386_optab + 3702, i386_optab + 3703, - i386_optab + 3704, i386_optab + 3705, - i386_optab + 3706, i386_optab + 3707, i386_optab + 3708, i386_optab + 3709, @@ -40233,33 +41202,21 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3712, i386_optab + 3713, i386_optab + 3714, - i386_optab + 3715, i386_optab + 3716, - i386_optab + 3717, i386_optab + 3718, i386_optab + 3719, i386_optab + 3720, i386_optab + 3721, - i386_optab + 3722, i386_optab + 3723, - i386_optab + 3724, - i386_optab + 3725, i386_optab + 3726, - i386_optab + 3727, - i386_optab + 3728, i386_optab + 3729, - i386_optab + 3730, - i386_optab + 3731, i386_optab + 3732, - i386_optab + 3733, i386_optab + 3734, i386_optab + 3735, i386_optab + 3736, i386_optab + 3737, i386_optab + 3738, - i386_optab + 3739, i386_optab + 3740, - i386_optab + 3741, i386_optab + 3742, i386_optab + 3743, i386_optab + 3744, @@ -40269,34 +41226,21 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3748, i386_optab + 3749, i386_optab + 3750, - i386_optab + 3751, i386_optab + 3752, - i386_optab + 3753, i386_optab + 3754, - i386_optab + 3755, i386_optab + 3756, i386_optab + 3757, i386_optab + 3758, i386_optab + 3759, - i386_optab + 3760, i386_optab + 3761, - i386_optab + 3762, i386_optab + 3763, - i386_optab + 3764, i386_optab + 3765, - i386_optab + 3766, i386_optab + 3767, - i386_optab + 3768, i386_optab + 3769, - i386_optab + 3770, i386_optab + 3771, - i386_optab + 3772, i386_optab + 3773, - i386_optab + 3774, i386_optab + 3775, - i386_optab + 3776, i386_optab + 3777, - i386_optab + 3778, i386_optab + 3779, i386_optab + 3780, i386_optab + 3781, @@ -40314,55 +41258,88 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3793, i386_optab + 3794, i386_optab + 3795, + i386_optab + 3796, + i386_optab + 3797, i386_optab + 3798, i386_optab + 3799, i386_optab + 3800, + i386_optab + 3801, + i386_optab + 3802, i386_optab + 3803, i386_optab + 3804, i386_optab + 3805, + i386_optab + 3806, i386_optab + 3807, i386_optab + 3808, i386_optab + 3809, i386_optab + 3810, + i386_optab + 3811, i386_optab + 3812, i386_optab + 3813, i386_optab + 3814, i386_optab + 3815, + i386_optab + 3816, i386_optab + 3817, i386_optab + 3818, i386_optab + 3819, i386_optab + 3820, + i386_optab + 3821, + i386_optab + 3822, i386_optab + 3823, i386_optab + 3824, i386_optab + 3825, i386_optab + 3826, i386_optab + 3827, + i386_optab + 3828, + i386_optab + 3829, i386_optab + 3830, + i386_optab + 3831, + i386_optab + 3832, i386_optab + 3833, + i386_optab + 3834, + i386_optab + 3835, i386_optab + 3836, + i386_optab + 3837, + i386_optab + 3838, i386_optab + 3839, + i386_optab + 3840, + i386_optab + 3841, i386_optab + 3842, i386_optab + 3843, i386_optab + 3844, i386_optab + 3845, i386_optab + 3846, + i386_optab + 3847, i386_optab + 3848, + i386_optab + 3849, i386_optab + 3850, i386_optab + 3851, i386_optab + 3852, i386_optab + 3853, + i386_optab + 3854, + i386_optab + 3855, i386_optab + 3856, + i386_optab + 3857, + i386_optab + 3858, i386_optab + 3859, + i386_optab + 3860, + i386_optab + 3861, i386_optab + 3862, + i386_optab + 3863, + i386_optab + 3864, i386_optab + 3865, + i386_optab + 3866, + i386_optab + 3867, i386_optab + 3868, i386_optab + 3869, i386_optab + 3870, i386_optab + 3871, + i386_optab + 3872, i386_optab + 3873, i386_optab + 3874, i386_optab + 3875, i386_optab + 3876, + i386_optab + 3877, i386_optab + 3878, i386_optab + 3879, i386_optab + 3880, @@ -40370,46 +41347,109 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3882, i386_optab + 3883, i386_optab + 3884, + i386_optab + 3885, i386_optab + 3886, + i386_optab + 3887, i386_optab + 3888, + i386_optab + 3889, i386_optab + 3890, - i386_optab + 3892, + i386_optab + 3891, i386_optab + 3894, + i386_optab + 3895, i386_optab + 3896, - i386_optab + 3898, + i386_optab + 3899, i386_optab + 3900, - i386_optab + 3902, + i386_optab + 3901, + i386_optab + 3903, i386_optab + 3904, + i386_optab + 3905, i386_optab + 3906, i386_optab + 3908, + i386_optab + 3909, i386_optab + 3910, - i386_optab + 3912, + i386_optab + 3911, + i386_optab + 3913, i386_optab + 3914, + i386_optab + 3915, i386_optab + 3916, - i386_optab + 3918, + i386_optab + 3919, i386_optab + 3920, + i386_optab + 3921, i386_optab + 3922, - i386_optab + 3924, + i386_optab + 3923, i386_optab + 3926, - i386_optab + 3928, - i386_optab + 3930, + i386_optab + 3929, i386_optab + 3932, - i386_optab + 3934, - i386_optab + 3936, + i386_optab + 3935, i386_optab + 3938, + i386_optab + 3939, i386_optab + 3940, + i386_optab + 3941, i386_optab + 3942, i386_optab + 3944, - i386_optab + 3945, i386_optab + 3946, i386_optab + 3947, + i386_optab + 3948, i386_optab + 3949, - i386_optab + 3951, - i386_optab + 3953, + i386_optab + 3952, i386_optab + 3955, - i386_optab + 3957, i386_optab + 3958, - i386_optab + 3959, + i386_optab + 3961, + i386_optab + 3964, + i386_optab + 3965, + i386_optab + 3966, + i386_optab + 3967, + i386_optab + 3969, + i386_optab + 3970, + i386_optab + 3971, + i386_optab + 3972, + i386_optab + 3974, + i386_optab + 3975, + i386_optab + 3976, + i386_optab + 3977, + i386_optab + 3978, + i386_optab + 3979, + i386_optab + 3980, + i386_optab + 3982, + i386_optab + 3984, + i386_optab + 3986, + i386_optab + 3988, + i386_optab + 3990, + i386_optab + 3992, + i386_optab + 3994, + i386_optab + 3996, + i386_optab + 3998, + i386_optab + 4000, + i386_optab + 4002, + i386_optab + 4004, + i386_optab + 4006, + i386_optab + 4008, + i386_optab + 4010, + i386_optab + 4012, + i386_optab + 4014, + i386_optab + 4016, + i386_optab + 4018, + i386_optab + 4020, + i386_optab + 4022, + i386_optab + 4024, + i386_optab + 4026, + i386_optab + 4028, + i386_optab + 4030, + i386_optab + 4032, + i386_optab + 4034, + i386_optab + 4036, + i386_optab + 4038, + i386_optab + 4040, + i386_optab + 4041, + i386_optab + 4042, + i386_optab + 4043, + i386_optab + 4045, + i386_optab + 4047, + i386_optab + 4049, + i386_optab + 4051, + i386_optab + 4053, + i386_optab + 4054, + i386_optab + 4055, }; /* i386 mnemonics table. */ From patchwork Tue Sep 19 12:56:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Frager, Neal via Binutils" X-Patchwork-Id: 76379 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id ADABB38560A7 for ; Tue, 19 Sep 2023 12:59:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org ADABB38560A7 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1695128373; bh=DHXKtbj4qUMg/y3AgtVjo/7XO/xPbxivG6zI/8gSRZ8=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=qnRQbw+6mvgS/4kTKA+YgXbCJBeAP+/36vi3E+MQGXsQTiHct2Xv+vxW/xydauEQ/ 1oEdfcwqXrL1yhTI8576R/09P+lAgx38NIIM5zeOFpAwpzKQcRZsFNdXlV2APMhTzH /gNTkTTjE7G5OdGrSW6aX/J6FDSpoZ7j3nmyY7Aw= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.151]) by sourceware.org (Postfix) with ESMTPS id 6BE4E385CC83 for ; Tue, 19 Sep 2023 12:57:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6BE4E385CC83 X-IronPort-AV: E=McAfee;i="6600,9927,10838"; a="360189034" X-IronPort-AV: E=Sophos;i="6.02,159,1688454000"; d="scan'208";a="360189034" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Sep 2023 05:57:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10837"; a="919854099" X-IronPort-AV: E=Sophos;i="6.02,159,1688454000"; d="scan'208";a="919854099" Received: from scymds04.sc.intel.com ([10.82.73.238]) by orsmga005.jf.intel.com with ESMTP; 19 Sep 2023 05:57:00 -0700 Received: from shgcc101.sh.intel.com (shgcc101.sh.intel.com [10.239.85.97]) by scymds04.sc.intel.com (Postfix) with ESMTP id CA32318007DF; Tue, 19 Sep 2023 05:56:58 -0700 (PDT) To: binutils@sourceware.org Cc: jbeulich@suse.com, hongjiu.lu@intel.com, "Hu, Lin1" Subject: [PATCH 4/7] Support APX NDD optimized encoding. Date: Tue, 19 Sep 2023 12:56:30 +0000 Message-Id: <20230919125633.491660-5-lili.cui@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230919125633.491660-1-lili.cui@intel.com> References: <20230919125633.491660-1-lili.cui@intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SCC_10_SHORT_WORD_LINES, SCC_20_SHORT_WORD_LINES, SCC_5_SHORT_WORD_LINES, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: "Cui, Lili via Binutils" From: "Frager, Neal via Binutils" Reply-To: "Cui, Lili" Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org Sender: "Binutils" From: "Hu, Lin1" This patch aims to optimize: add %r16, %r15, %r15 -> add %r16, %r15 gas/ChangeLog: * config/tc-i386.c (optimize_NDD_to_nonNDD): New function. (match_template): If we can optimzie APX NDD insns, so rematch template. * testsuite/gas/i386/x86-64.exp: Add test. * testsuite/gas/i386/x86-64-apx-ndd-optimize.d: New test. * testsuite/gas/i386/x86-64-apx-ndd-optimize.s: Ditto. --- gas/config/tc-i386.c | 49 +++++++ .../gas/i386/x86-64-apx-ndd-optimize.d | 120 ++++++++++++++++++ .../gas/i386/x86-64-apx-ndd-optimize.s | 115 +++++++++++++++++ gas/testsuite/gas/i386/x86-64.exp | 1 + 4 files changed, 285 insertions(+) create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 381e389bb04..fba97ae37d8 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -7091,6 +7091,46 @@ check_EgprOperands (const insn_template *t) return 0; } +/* Optimize APX NDD insns to non-NDD insns. */ + +static int +optimize_NDD_to_nonNDD (const insn_template *t) +{ + if (t->opcode_modifier.vexvvvv + && t->opcode_space == SPACE_EVEXMAP4 + && i.reg_operands >= 2 + && (i.types[i.operands - 1].bitfield.dword + || i.types[i.operands - 1].bitfield.qword)) + { + int tmp_flag = -1; + int dest = i.operands - 1; + int src1 = (i.operands > 2) ? i.operands - 2 : 0; + int src2 = (i.operands > 3) ? i.operands - 3 : 0; + + if (i.op[src1].regs == i.op[dest].regs) + tmp_flag = src2; + /* adcx and adox don't have D bit. */ + else if (i.op[src2].regs == i.op[dest].regs + && (t->opcode_modifier.d + || t->mnem_off == MN_adcx + || t->mnem_off == MN_adox) + && (t->mnem_off != MN_sub) + && (t->mnem_off != MN_sbb)) + tmp_flag = src1; + if (tmp_flag != -1) + { + --i.operands; + --i.reg_operands; + --i.tm.operands; + + if (tmp_flag != src2) + swap_2_operands (tmp_flag, src2); + return 1; + } + } + return 0; +} + /* Helper function for the progress() macro in match_template(). */ static INLINE enum i386_error progress (enum i386_error new, enum i386_error last, @@ -7562,6 +7602,15 @@ match_template (char mnem_suffix) slip through to break. */ } + /* If we can optimize a NDD insn to non-NDD insn, like + add %r16, %r8, %r8 -> add %r16, %r8, then rematch template. */ + if (optimize_NDD_to_nonNDD (t)) + { + t = current_templates->start; + --t; + continue; + } + /* Check if VEX/EVEX encoding requirements can be satisfied. */ if (VEX_check_encoding (t)) { diff --git a/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d new file mode 100644 index 00000000000..173b368da71 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d @@ -0,0 +1,120 @@ +#objdump: -drw +#name: x86-64 APX NDD optimized encoding +#source: x86-64-apx-ndd-optimize.s + +.*: +file format .* + + +Disassembly of section .text: + +0+ <_start>: +\s*[a-f0-9]+:\s*62 f4 7d 18 ff c0\s+inc\s+%ax,%ax +\s*[a-f0-9]+:\s*ff c0\s+inc\s+%eax +\s*[a-f0-9]+:\s*48 ff c0\s+inc\s+%rax +\s*[a-f0-9]+:\s*d5 18 ff c0\s+inc\s+%r16 +\s*[a-f0-9]+:\s*62 44 3c 18 00 f8\s+add\s+%r31b,%r8b,%r8b +\s*[a-f0-9]+:\s*62 44 04 10 00 f8\s+add\s+%r31b,%r8b,%r31b +\s*[a-f0-9]+:\s*62 44 3c 18 00 f8\s+add\s+%r31b,%r8b,%r8b +\s*[a-f0-9]+:\s*d5 4d 01 f8\s+add\s+%r31,%r8 +\s*[a-f0-9]+:\s*d5 4d 01 f8\s+add\s+%r31,%r8 +\s*[a-f0-9]+:\s*d5 45 01 f8\s+add\s+%r31d,%r8d +\s*[a-f0-9]+:\s*d5 45 01 f8\s+add\s+%r31d,%r8d +\s*[a-f0-9]+:\s*62 44 3d 18 01 f8\s+add\s+%r31w,%r8w,%r8w +\s*[a-f0-9]+:\s*62 44 3d 18 01 f8\s+add\s+%r31w,%r8w,%r8w +\s*[a-f0-9]+:\s*d5 4d 01 f8\s+add\s+%r31,%r8 +\s*[a-f0-9]+:\s*d5 1d 03 c7\s+add\s+%r31,%r8 +\s*[a-f0-9]+:\s*d5 4d 03 38\s+add\s+\(%r8\),%r31 +\s*[a-f0-9]+:\s*d5 1d 03 07\s+add\s+\(%r31\),%r8 +\s*[a-f0-9]+:\s*49 81 c7 33 44 34 12\s+add\s+\$0x12344433,%r15 +\s*[a-f0-9]+:\s*49 81 c0 11 22 33 f4\s+add\s+\$0xfffffffff4332211,%r8 +\s*[a-f0-9]+:\s*d5 18 ff c9\s+dec\s+%r17 +\s*[a-f0-9]+:\s*d5 18 f7 d1\s+not\s+%r17 +\s*[a-f0-9]+:\s*d5 18 f7 d9\s+neg\s+%r17 +\s*[a-f0-9]+:\s*d5 1c 29 f9\s+sub\s+%r15,%r17 +\s*[a-f0-9]+:\s*62 54 04 18 29 38\s+sub\s+%r15d,\(%r8\),%r15d +\s*[a-f0-9]+:\s*d5 49 2b 04 07\s+sub\s+\(%r15,%rax,1\),%r16 +\s*[a-f0-9]+:\s*d5 19 81 ee 34 12 00 00\s+sub\s+\$0x1234,%r30 +\s*[a-f0-9]+:\s*d5 1c 19 f9\s+sbb\s+%r15,%r17 +\s*[a-f0-9]+:\s*62 54 84 18 19 38\s+sbb\s+%r15,\(%r8\),%r15 +\s*[a-f0-9]+:\s*d5 49 1b 04 07\s+sbb\s+\(%r15,%rax,1\),%r16 +\s*[a-f0-9]+:\s*d5 19 81 de 34 12 00 00\s+sbb\s+\$0x1234,%r30 +\s*[a-f0-9]+:\s*d5 1c 11 f9\s+adc\s+%r15,%r17 +\s*[a-f0-9]+:\s*45 13 38\s+adc\s+\(%r8\),%r15d +\s*[a-f0-9]+:\s*d5 49 13 04 07\s+adc\s+\(%r15,%rax,1\),%r16 +\s*[a-f0-9]+:\s*d5 19 81 d6 34 12 00 00\s+adc\s+\$0x1234,%r30 +\s*[a-f0-9]+:\s*d5 1c 09 f9\s+or\s+ %r15,%r17 +\s*[a-f0-9]+:\s*45 0b 38\s+or\s+ \(%r8\),%r15d +\s*[a-f0-9]+:\s*d5 49 0b 04 07\s+or\s+\(%r15,%rax,1\),%r16 +\s*[a-f0-9]+:\s*d5 19 81 ce 34 12 00 00\s+or\s+\$0x1234,%r30 +\s*[a-f0-9]+:\s*d5 1c 31 f9\s+xor\s+%r15,%r17 +\s*[a-f0-9]+:\s*45 33 38\s+xor\s+\(%r8\),%r15d +\s*[a-f0-9]+:\s*d5 49 33 04 07\s+xor\s+\(%r15,%rax,1\),%r16 +\s*[a-f0-9]+:\s*d5 19 81 f6 34 12 00 00\s+xor\s+\$0x1234,%r30 +\s*[a-f0-9]+:\s*d5 1c 21 f9\s+and\s+%r15,%r17 +\s*[a-f0-9]+:\s*45 23 38\s+and\s+\(%r8\),%r15d +\s*[a-f0-9]+:\s*d5 49 23 04 07\s+and\s+\(%r15,%rax,1\),%r16 +\s*[a-f0-9]+:\s*d5 19 81 e6 34 12 00 00\s+and\s+\$0x1234,%r30 +\s*[a-f0-9]+:\s*d5 19 81 e6 34 12 00 00\s+and\s+\$0x1234,%r30 +\s*[a-f0-9]+:\s*d5 19 d1 cf\s+ror\s+%r31 +\s*[a-f0-9]+:\s*62 dc 04 10 d0 cf\s+ror\s+%r31b,%r31b +\s*[a-f0-9]+:\s*49 c1 cc 02\s+ror\s+\$0x2,%r12 +\s*[a-f0-9]+:\s*d5 19 d1 c7\s+rol\s+%r31 +\s*[a-f0-9]+:\s*62 dc 04 10 d0 c7\s+rol\s+%r31b,%r31b +\s*[a-f0-9]+:\s*49 c1 c4 02\s+rol\s+\$0x2,%r12 +\s*[a-f0-9]+:\s*d5 19 d1 df\s+rcr\s+%r31 +\s*[a-f0-9]+:\s*62 dc 04 10 d0 df\s+rcr\s+%r31b,%r31b +\s*[a-f0-9]+:\s*62 d4 1c 18 c0 dc 02\s+rcr\s+\$0x2,%r12b,%r12b +\s*[a-f0-9]+:\s*49 c1 dc 02\s+rcr\s+\$0x2,%r12 +\s*[a-f0-9]+:\s*d5 19 d1 d7\s+rcl\s+%r31 +\s*[a-f0-9]+:\s*62 dc 04 10 d0 d7\s+rcl\s+%r31b,%r31b +\s*[a-f0-9]+:\s*62 d4 1c 18 c0 d4 02\s+rcl\s+\$0x2,%r12b,%r12b +\s*[a-f0-9]+:\s*49 c1 d4 02\s+rcl\s+\$0x2,%r12 +\s*[a-f0-9]+:\s*d5 19 d1 e7\s+shl\s+%r31 +\s*[a-f0-9]+:\s*62 dc 04 10 d0 e7 \s+shl\s+%r31b,%r31b +\s*[a-f0-9]+:\s*62 d4 1c 18 c0 e4 02\s+shl\s+\$0x2,%r12b,%r12b +\s*[a-f0-9]+:\s*49 c1 e4 02\s+shl\s+\$0x2,%r12 +\s*[a-f0-9]+:\s*d5 19 d1 ff\s+sar\s+%r31 +\s*[a-f0-9]+:\s*62 dc 04 10 d0 ff\s+sar\s+%r31b,%r31b +\s*[a-f0-9]+:\s*62 d4 1c 18 c0 fc 02\s+sar\s+\$0x2,%r12b,%r12b +\s*[a-f0-9]+:\s*49 c1 fc 02\s+sar\s+\$0x2,%r12 +\s*[a-f0-9]+:\s*d5 19 d1 e7\s+shl\s+%r31 +\s*[a-f0-9]+:\s*62 dc 04 10 d0 e7\s+shl\s+%r31b,%r31b +\s*[a-f0-9]+:\s*62 d4 1c 18 c0 e4 02\s+shl\s+\$0x2,%r12b,%r12b +\s*[a-f0-9]+:\s*49 c1 e4 02\s+shl\s+\$0x2,%r12 +\s*[a-f0-9]+:\s*d5 19 d1 ef\s+shr\s+%r31 +\s*[a-f0-9]+:\s*62 dc 04 10 d0 ef\s+shr\s+%r31b,%r31b +\s*[a-f0-9]+:\s*62 d4 1c 18 c0 ec 02\s+shr\s+\$0x2,%r12b,%r12b +\s*[a-f0-9]+:\s*49 c1 ec 02\s+shr\s+\$0x2,%r12 +\s*[a-f0-9]+:\s*62 74 9c 18 24 20 01\s+shld\s+\$0x1,%r12,\(%rax\),%r12 +\s*[a-f0-9]+:\s*62 54 1d 18 24 c4 02\s+shld\s+\$0x2,%r8w,%r12w,%r12w +\s*[a-f0-9]+:\s*62 74 35 18 a5 08\s+shld\s+ %cl,%r9w,\(%rax\),%r9w +\s*[a-f0-9]+:\s*d5 9c a5 e0\s+shld\s+%cl,%r12,%r16 +\s*[a-f0-9]+:\s*62 7c 15 18 a5 2c 83\s+shld\s+%cl,%r13w,\(%r19,%rax,4\),%r13w +\s*[a-f0-9]+:\s*62 74 9c 18 2c 20 01\s+shrd\s+\$0x1,%r12,\(%rax\),%r12 +\s*[a-f0-9]+:\s*4d 0f ac ec 01\s+shrd\s+\$0x1,%r13,%r12 +\s*[a-f0-9]+:\s*62 54 1d 18 2c c4 02\s+shrd\s+\$0x2,%r8w,%r12w,%r12w +\s*[a-f0-9]+:\s*62 74 35 18 ad 08\s+shrd\s+%cl,%r9w,\(%rax\),%r9w +\s*[a-f0-9]+:\s*d5 9c ad e0\s+shrd\s+%cl,%r12,%r16 +\s*[a-f0-9]+:\s*62 7c 15 18 ad 2c 83\s+shrd\s+%cl,%r13w,\(%r19,%rax,4\),%r13w +\s*[a-f0-9]+:\s*66 45 0f 38 f6 c7\s+adcx\s+%r15d,%r8d +\s*[a-f0-9]+:\s*62 14 79 08 66 04 3f\s+adcx\s+\(%r15,%r31,1\),%r8d +\s*[a-f0-9]+:\s*f3 45 0f 38 f6 c7\s+adox\s+%r15d,%r8d +\s*[a-f0-9]+:\s*62 14 7a 08 66 04 3f\s+adox\s+\(%r15,%r31,1\),%r8d +\s*[a-f0-9]+:\s*67 0f 40 90 90 90 90 90\s+cmovo\s+-0x6f6f6f70\(%eax\),%edx +\s*[a-f0-9]+:\s*67 0f 41 90 90 90 90 90\s+cmovno\s+-0x6f6f6f70\(%eax\),%edx +\s*[a-f0-9]+:\s*67 0f 42 90 90 90 90 90\s+cmovb\s+-0x6f6f6f70\(%eax\),%edx +\s*[a-f0-9]+:\s*67 0f 43 90 90 90 90 90\s+cmovae\s+-0x6f6f6f70\(%eax\),%edx +\s*[a-f0-9]+:\s*67 0f 44 90 90 90 90 90\s+cmove\s+-0x6f6f6f70\(%eax\),%edx +\s*[a-f0-9]+:\s*67 0f 45 90 90 90 90 90\s+cmovne\s+-0x6f6f6f70\(%eax\),%edx +\s*[a-f0-9]+:\s*67 0f 46 90 90 90 90 90\s+cmovbe\s+-0x6f6f6f70\(%eax\),%edx +\s*[a-f0-9]+:\s*67 0f 47 90 90 90 90 90\s+cmova\s+-0x6f6f6f70\(%eax\),%edx +\s*[a-f0-9]+:\s*67 0f 48 90 90 90 90 90\s+cmovs\s+-0x6f6f6f70\(%eax\),%edx +\s*[a-f0-9]+:\s*67 0f 49 90 90 90 90 90\s+cmovns\s+-0x6f6f6f70\(%eax\),%edx +\s*[a-f0-9]+:\s*67 0f 4a 90 90 90 90 90\s+cmovp\s+-0x6f6f6f70\(%eax\),%edx +\s*[a-f0-9]+:\s*67 0f 4b 90 90 90 90 90\s+cmovnp\s+-0x6f6f6f70\(%eax\),%edx +\s*[a-f0-9]+:\s*67 0f 4c 90 90 90 90 90\s+cmovl\s+-0x6f6f6f70\(%eax\),%edx +\s*[a-f0-9]+:\s*67 0f 4d 90 90 90 90 90\s+cmovge\s+-0x6f6f6f70\(%eax\),%edx +\s*[a-f0-9]+:\s*67 0f 4e 90 90 90 90 90\s+cmovle\s+-0x6f6f6f70\(%eax\),%edx +\s*[a-f0-9]+:\s*67 0f 4f 90 90 90 90 90\s+cmovg\s+-0x6f6f6f70\(%eax\),%edx +\s*[a-f0-9]+:\s*67 0f af 90 09 09 09 00\s+imul\s+0x90909\(%eax\),%edx +\s*[a-f0-9]+:\s*d5 aa af 94 f8 09 09 00 00\s+imul\s+0x909\(%rax,%r31,8\),%rdx diff --git a/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s new file mode 100644 index 00000000000..139d875d5a7 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s @@ -0,0 +1,115 @@ +# Check 64bit APX NDD instructions with optimized encoding + + .allow_index_reg + .text +_start: +inc %ax,%ax +inc %eax,%eax +inc %rax,%rax +inc %r16,%r16 +add %r31b,%r8b,%r8b +add %r31b,%r8b,%r31b +addb %r31b,%r8b,%r8b +add %r31,%r8,%r8 +addq %r31,%r8,%r8 +add %r31d,%r8d,%r8d +addl %r31d,%r8d,%r8d +add %r31w,%r8w,%r8w +addw %r31w,%r8w,%r8w +{store} add %r31,%r8,%r8 +{load} add %r31,%r8,%r8 +add %r31,(%r8),%r31 +add (%r31),%r8,%r8 +add $0x12344433,%r15,%r15 +add $0xfffffffff4332211,%r8,%r8 +dec %r17,%r17 +not %r17,%r17 +neg %r17,%r17 +sub %r15,%r17,%r17 +sub %r15d,(%r8),%r15d +sub (%r15,%rax,1),%r16,%r16 +sub $0x1234,%r30,%r30 +sbb %r15,%r17,%r17 +sbb %r15,(%r8),%r15 +sbb (%r15,%rax,1),%r16,%r16 +sbb $0x1234,%r30,%r30 +adc %r15,%r17,%r17 +adc %r15d,(%r8),%r15d +adc (%r15,%rax,1),%r16,%r16 +adc $0x1234,%r30,%r30 +or %r15,%r17,%r17 +or %r15d,(%r8),%r15d +or (%r15,%rax,1),%r16,%r16 +or $0x1234,%r30,%r30 +xor %r15,%r17,%r17 +xor %r15d,(%r8),%r15d +xor (%r15,%rax,1),%r16,%r16 +xor $0x1234,%r30,%r30 +and %r15,%r17,%r17 +and %r15d,(%r8),%r15d +and (%r15,%rax,1),%r16,%r16 +and $0x1234,%r30,%r30 +and $0x1234,%r30 +ror %r31,%r31 +rorb %r31b,%r31b +ror $0x2,%r12,%r12 +rol %r31,%r31 +rolb %r31b,%r31b +rol $0x2,%r12,%r12 +rcr %r31,%r31 +rcrb %r31b,%r31b +rcr $0x2,%r12b,%r12b +rcr $0x2,%r12,%r12 +rcl %r31,%r31 +rclb %r31b,%r31b +rcl $0x2,%r12b,%r12b +rcl $0x2,%r12,%r12 +shl %r31,%r31 +shlb %r31b,%r31b +shl $0x2,%r12b,%r12b +shl $0x2,%r12,%r12 +sar %r31,%r31 +sarb %r31b,%r31b +sar $0x2,%r12b,%r12b +sar $0x2,%r12,%r12 +shl %r31,%r31 +shlb %r31b,%r31b +shl $0x2,%r12b,%r12b +shl $0x2,%r12,%r12 +shr %r31,%r31 +shrb %r31b,%r31b +shr $0x2,%r12b,%r12b +shr $0x2,%r12,%r12 +shld $0x1,%r12,(%rax),%r12 +shld $0x2,%r8w,%r12w,%r12w +shld %cl,%r9w,(%rax),%r9w +shld %cl,%r12,%r16,%r16 +shld %cl,%r13w,(%r19,%rax,4),%r13w +shrd $0x1,%r12,(%rax),%r12 +shrd $0x1,%r13,%r12,%r12 +shrd $0x2,%r8w,%r12w,%r12w +shrd %cl,%r9w,(%rax),%r9w +shrd %cl,%r12,%r16,%r16 +shrd %cl,%r13w,(%r19,%rax,4),%r13w +adcx %r15d,%r8d,%r8d +adcx (%r15,%r31,1),%r8d,%r8d +adox %r15d,%r8d,%r8d +adox (%r15,%r31,1),%r8d,%r8d +cmovo 0x90909090(%eax),%edx,%edx +cmovno 0x90909090(%eax),%edx,%edx +cmovb 0x90909090(%eax),%edx,%edx +cmovae 0x90909090(%eax),%edx,%edx +cmove 0x90909090(%eax),%edx,%edx +cmovne 0x90909090(%eax),%edx,%edx +cmovbe 0x90909090(%eax),%edx,%edx +cmova 0x90909090(%eax),%edx,%edx +cmovs 0x90909090(%eax),%edx,%edx +cmovns 0x90909090(%eax),%edx,%edx +cmovp 0x90909090(%eax),%edx,%edx +cmovnp 0x90909090(%eax),%edx,%edx +cmovl 0x90909090(%eax),%edx,%edx +cmovge 0x90909090(%eax),%edx,%edx +cmovle 0x90909090(%eax),%edx,%edx +cmovg 0x90909090(%eax),%edx,%edx +imul 0x90909(%eax),%edx,%edx +imul 0x909(%rax,%r31,8),%rdx,%rdx diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp index ca1583c6f88..c48430ca7cb 100644 --- a/gas/testsuite/gas/i386/x86-64.exp +++ b/gas/testsuite/gas/i386/x86-64.exp @@ -549,6 +549,7 @@ run_dump_test "x86-64-optimize-6" run_list_test "x86-64-optimize-7a" "-I${srcdir}/$subdir -march=+noavx -al" run_dump_test "x86-64-optimize-7b" run_list_test "x86-64-optimize-8" "-I${srcdir}/$subdir -march=+noavx2 -al" +run_dump_test "x86-64-apx-ndd-optimize" run_dump_test "x86-64-align-branch-1a" run_dump_test "x86-64-align-branch-1b" run_dump_test "x86-64-align-branch-1c" From patchwork Tue Sep 19 12:56:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Frager, Neal via Binutils" X-Patchwork-Id: 76380 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 62FD8385CCB8 for ; Tue, 19 Sep 2023 12:59:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 62FD8385CCB8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1695128385; bh=CVQMY8JaMrOQ1BMNquv4wpNhzjBtmuWGzeOf3Ogxf4w=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=wOI67SZFa5Wjkf99KJbFGkzOZ0kKYf9IE/PCi29KWuZSXfWcqrf8Tgo+A9j6WlWjh ULygLWmgKB337gxwQo9TQgQMzgd38tE3KcnSx6pUBJq4HI8DmIq5x8FtU3A/hSwQ8S zFEW/mi5qUlsHh75ZVbjAgFNridZ4OqF64Xr2+1g= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.136]) by sourceware.org (Postfix) with ESMTPS id 9FEDF3858281 for ; Tue, 19 Sep 2023 12:57:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9FEDF3858281 X-IronPort-AV: E=McAfee;i="6600,9927,10838"; a="359324704" X-IronPort-AV: E=Sophos;i="6.02,159,1688454000"; d="scan'208";a="359324704" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Sep 2023 05:57:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10838"; a="749470313" X-IronPort-AV: E=Sophos;i="6.02,159,1688454000"; d="scan'208";a="749470313" Received: from scymds04.sc.intel.com ([10.82.73.238]) by fmsmga007.fm.intel.com with ESMTP; 19 Sep 2023 05:57:31 -0700 Received: from shgcc101.sh.intel.com (shgcc101.sh.intel.com [10.239.85.97]) by scymds04.sc.intel.com (Postfix) with ESMTP id A5B8918007DF; Tue, 19 Sep 2023 05:57:28 -0700 (PDT) To: binutils@sourceware.org Cc: jbeulich@suse.com, hongjiu.lu@intel.com, "Hu, Lin1" Subject: [PATCH 7/7] Support APX JMPABS Date: Tue, 19 Sep 2023 12:56:33 +0000 Message-Id: <20230919125633.491660-8-lili.cui@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230919125633.491660-1-lili.cui@intel.com> References: <20230919125633.491660-1-lili.cui@intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: "Cui, Lili via Binutils" From: "Frager, Neal via Binutils" Reply-To: "Cui, Lili" Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org Sender: "Binutils" From: "Hu, Lin1" gas/ChangeLog: * config/tc-i386.c (is_any_apx_encoding): Add jmpabs. (is_any_apx_rex2_encoding): Ditto. * testsuite/gas/i386/i386.exp: Add tests. * testsuite/gas/i386/x86-64.exp: Ditto. * testsuite/gas/i386/apx-jmpabs-inval.l: New test. * testsuite/gas/i386/apx-jmpabs-inval.s: Ditto. * testsuite/gas/i386/x86-64-apx-jmpabs-intel.d: Ditto. * testsuite/gas/i386/x86-64-apx-jmpabs-inval.d: Ditto. * testsuite/gas/i386/x86-64-apx-jmpabs-inval.s: Ditto. * testsuite/gas/i386/x86-64-apx-mov-inval.l: Ditto. * testsuite/gas/i386/x86-64-apx-mov-inval.s: Ditto. * testsuite/gas/i386/x86-64-apx-jmpabs.d: Ditto. * testsuite/gas/i386/x86-64-apx-jmpabs.s: Ditto. opcodes/ChangeLog: * i386-dis.c (JMPABS_Fixup): New Fixup function to disassemble jmpabs. (print_insn): Add #UD exception for jmpabs. (dis386): Modify a1 unit for support jmpabs. * i386-mnem.h: Regenerated. * i386-opc.tbl: New insns. * i386-tbl.h: Regenerated. --- gas/config/tc-i386.c | 6 +- gas/testsuite/gas/i386/apx-jmpabs-inval.l | 3 + gas/testsuite/gas/i386/apx-jmpabs-inval.s | 6 + gas/testsuite/gas/i386/apx-mov-inval.l | 2 + gas/testsuite/gas/i386/i386.exp | 1 + .../gas/i386/x86-64-apx-jmpabs-intel.d | 14 + .../gas/i386/x86-64-apx-jmpabs-inval.d | 55 + .../gas/i386/x86-64-apx-jmpabs-inval.s | 18 + gas/testsuite/gas/i386/x86-64-apx-jmpabs.d | 14 + gas/testsuite/gas/i386/x86-64-apx-jmpabs.s | 10 + gas/testsuite/gas/i386/x86-64-apx-mov-inval.l | 2 + gas/testsuite/gas/i386/x86-64-apx-mov-inval.s | 5 + gas/testsuite/gas/i386/x86-64.exp | 4 + opcodes/i386-dis.c | 42 +- opcodes/i386-mnem.h | 1251 +++++----- opcodes/i386-opc.tbl | 4 +- opcodes/i386-tbl.h | 2143 +++++++++-------- 17 files changed, 1884 insertions(+), 1696 deletions(-) create mode 100644 gas/testsuite/gas/i386/apx-jmpabs-inval.l create mode 100644 gas/testsuite/gas/i386/apx-jmpabs-inval.s create mode 100644 gas/testsuite/gas/i386/apx-mov-inval.l create mode 100644 gas/testsuite/gas/i386/x86-64-apx-jmpabs-intel.d create mode 100644 gas/testsuite/gas/i386/x86-64-apx-jmpabs-inval.d create mode 100644 gas/testsuite/gas/i386/x86-64-apx-jmpabs-inval.s create mode 100644 gas/testsuite/gas/i386/x86-64-apx-jmpabs.d create mode 100644 gas/testsuite/gas/i386/x86-64-apx-jmpabs.s create mode 100644 gas/testsuite/gas/i386/x86-64-apx-mov-inval.l create mode 100644 gas/testsuite/gas/i386/x86-64-apx-mov-inval.s diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 1fe4980f26a..36720d40eb0 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -3880,6 +3880,7 @@ is_any_apx_encoding (void) || i.tm.opcode_space == SPACE_EVEXMAP4 || i.has_nf || i.has_zero_upper + || i.tm.mnem_off == MN_jmpabs || (i.vex.register_specifier && i.vex.register_specifier->reg_flags & RegRex2); } @@ -3887,7 +3888,8 @@ is_any_apx_encoding (void) static INLINE bool is_any_apx_rex2_encoding (void) { - return (i.rex2 && i.vex.length == 2) || i.rex2_encoding; + return (i.rex2 && i.vex.length == 2) || i.rex2_encoding + || i.tm.mnem_off == MN_jmpabs; } static INLINE bool @@ -7703,7 +7705,7 @@ match_template (char mnem_suffix) if (!quiet_warnings) { if (!intel_syntax - && (i.jumpabsolute != (t->opcode_modifier.jump == JUMP_ABSOLUTE))) + && (i.jumpabsolute != (t->opcode_modifier.jump == JUMP_ABSOLUTE) && t->mnem_off != MN_jmpabs)) as_warn (_("indirect %s without `*'"), insn_name (t)); if (t->opcode_modifier.isprefix diff --git a/gas/testsuite/gas/i386/apx-jmpabs-inval.l b/gas/testsuite/gas/i386/apx-jmpabs-inval.l new file mode 100644 index 00000000000..87e7a800f1a --- /dev/null +++ b/gas/testsuite/gas/i386/apx-jmpabs-inval.l @@ -0,0 +1,3 @@ +.* Assembler messages: +.*:5: Error: `jmpabs' is only supported in 64-bit mode +.*:6: Error: `jmpabs' is only supported in 64-bit mode diff --git a/gas/testsuite/gas/i386/apx-jmpabs-inval.s b/gas/testsuite/gas/i386/apx-jmpabs-inval.s new file mode 100644 index 00000000000..1f9f1f80b72 --- /dev/null +++ b/gas/testsuite/gas/i386/apx-jmpabs-inval.s @@ -0,0 +1,6 @@ +# Check 32bit illegal APX_F JMPABS instructions + + .text + _start: + jmpabs $0x0202020202020202 + jmpabs $0x2 diff --git a/gas/testsuite/gas/i386/apx-mov-inval.l b/gas/testsuite/gas/i386/apx-mov-inval.l new file mode 100644 index 00000000000..b1aa91ae3c9 --- /dev/null +++ b/gas/testsuite/gas/i386/apx-mov-inval.l @@ -0,0 +1,2 @@ +.* Assembler messages: +.*:5: Error: unsupport rex2 pseudo prefix for `mov' diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index 7e0ad339141..d842505a928 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -508,6 +508,7 @@ if [gas_32_check] then { run_dump_test "sm4-intel" run_list_test "pbndkb-inval" run_list_test "apx-push2pop2-inval" + run_list_test "apx-jmpabs-inval" run_list_test "sg" run_dump_test "clzero" run_dump_test "invlpgb" diff --git a/gas/testsuite/gas/i386/x86-64-apx-jmpabs-intel.d b/gas/testsuite/gas/i386/x86-64-apx-jmpabs-intel.d new file mode 100644 index 00000000000..d8407bdd92b --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-apx-jmpabs-intel.d @@ -0,0 +1,14 @@ +#as: +#objdump: -dw -Mintel +#name: x86_64 APX_F JMPABS insns (Intel disassembly) +#source: x86-64-apx-jmpabs.s + +.*: +file format .* + +Disassembly of section \.text: + +0+ <_start>: +\s*[a-f0-9]+:\s*d5 00 a1 02 02 02 02 02 02 02 02\s+jmpabs 0x202020202020202 +\s*[a-f0-9]+:\s*d5 00 a1 02 00 00 00 00 00 00 00\s+jmpabs 0x2 +\s*[a-f0-9]+:\s*d5 00 a1 02 02 02 02 02 02 02 02\s+jmpabs 0x202020202020202 +\s*[a-f0-9]+:\s*d5 00 a1 02 00 00 00 00 00 00 00\s+jmpabs 0x2 diff --git a/gas/testsuite/gas/i386/x86-64-apx-jmpabs-inval.d b/gas/testsuite/gas/i386/x86-64-apx-jmpabs-inval.d new file mode 100644 index 00000000000..5c887acfebc --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-apx-jmpabs-inval.d @@ -0,0 +1,55 @@ +#as: --64 +#objdump: -dw +#name: illegal decoding of APX_F jmpabs insns +#source: x86-64-apx-jmpabs-inval.s + +.*: +file format .* + +Disassembly of section \.text: + +0+ <.text>: +\s*[a-f0-9]+: 66 64 d5 00 a1\s+\(bad\) +\s*[a-f0-9]+: 01 00\s+add %eax,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 66 d5 00 a1\s+\(bad\) +\s*[a-f0-9]+: 01 00\s+add %eax,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 67 64 d5 00 a1\s+\(bad\) +\s*[a-f0-9]+: 01 00\s+add %eax,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 67 d5 00 a1\s+\(bad\) +\s*[a-f0-9]+: 01 00\s+add %eax,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: f2 64 d5 00 a1\s+\(bad\) +\s*[a-f0-9]+: 01 00\s+add %eax,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: f2 d5 00 a1\s+\(bad\) +\s*[a-f0-9]+: 01 00\s+add %eax,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: f3 64 d5 00 a1\s+\(bad\) +\s*[a-f0-9]+: 01 00\s+add %eax,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: f3 d5 00 a1\s+\(bad\) +\s*[a-f0-9]+: 01 00\s+add %eax,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: d5 08 a1\s+\(bad\) +\s*[a-f0-9]+: 01 00\s+add %eax,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*[a-f0-9]+: 00 00\s+add %al,\(%rax\) +\s*... diff --git a/gas/testsuite/gas/i386/x86-64-apx-jmpabs-inval.s b/gas/testsuite/gas/i386/x86-64-apx-jmpabs-inval.s new file mode 100644 index 00000000000..3642d430546 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-apx-jmpabs-inval.s @@ -0,0 +1,18 @@ +# Check bytecode of APX_F jmpabs instructions with illegal encode. + + .allow_index_reg + .text +# With 66 prefix + .byte 0x66,0x64,0xd5,0x00,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + .byte 0x66,0xd5,0x00,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +# With 67 prefix + .byte 0x67,0x64,0xd5,0x00,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + .byte 0x67,0xd5,0x00,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +# With F2 prefix + .byte 0xf2,0x64,0xd5,0x00,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + .byte 0xf2,0xd5,0x00,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +# With F3 prefix + .byte 0xf3,0x64,0xd5,0x00,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + .byte 0xf3,0xd5,0x00,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +# REX2.M0 = 0 REX2.W = 1 + .byte 0xd5,0x08,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00 diff --git a/gas/testsuite/gas/i386/x86-64-apx-jmpabs.d b/gas/testsuite/gas/i386/x86-64-apx-jmpabs.d new file mode 100644 index 00000000000..409943dd9b9 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-apx-jmpabs.d @@ -0,0 +1,14 @@ +#as: +#objdump: -dw +#name: x86_64 APX_F JMPABS insns +#source: x86-64-apx-jmpabs.s + +.*: +file format .* + +Disassembly of section \.text: + +0+ <_start>: +\s*[a-f0-9]+:\s*d5 00 a1 02 02 02 02 02 02 02 02\s+jmpabs \$0x202020202020202 +\s*[a-f0-9]+:\s*d5 00 a1 02 00 00 00 00 00 00 00\s+jmpabs \$0x2 +\s*[a-f0-9]+:\s*d5 00 a1 02 02 02 02 02 02 02 02\s+jmpabs \$0x202020202020202 +\s*[a-f0-9]+:\s*d5 00 a1 02 00 00 00 00 00 00 00\s+jmpabs \$0x2 diff --git a/gas/testsuite/gas/i386/x86-64-apx-jmpabs.s b/gas/testsuite/gas/i386/x86-64-apx-jmpabs.s new file mode 100644 index 00000000000..beb722421bd --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-apx-jmpabs.s @@ -0,0 +1,10 @@ +# Check 64bit APX_F JMPABS instructions + + .text + _start: + jmpabs $0x0202020202020202 + jmpabs $0x2 + +.intel_syntax noprefix + jmpabs 0x0202020202020202 + jmpabs 0x2 diff --git a/gas/testsuite/gas/i386/x86-64-apx-mov-inval.l b/gas/testsuite/gas/i386/x86-64-apx-mov-inval.l new file mode 100644 index 00000000000..b1aa91ae3c9 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-apx-mov-inval.l @@ -0,0 +1,2 @@ +.* Assembler messages: +.*:5: Error: unsupport rex2 pseudo prefix for `mov' diff --git a/gas/testsuite/gas/i386/x86-64-apx-mov-inval.s b/gas/testsuite/gas/i386/x86-64-apx-mov-inval.s new file mode 100644 index 00000000000..f0896da6b4d --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-apx-mov-inval.s @@ -0,0 +1,5 @@ +# Check 64bit illegal APX_F mov instructions with rex2 prefix + + .text + _start: + {rex2} mov %fs:0x0202020202020202, %rax diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp index 9aaa905393b..cf64b1f0000 100644 --- a/gas/testsuite/gas/i386/x86-64.exp +++ b/gas/testsuite/gas/i386/x86-64.exp @@ -374,6 +374,10 @@ run_dump_test "x86-64-apx-evex-egpr" run_dump_test "x86-64-apx-ndd" run_dump_test "x86-64-apx-nf" run_dump_test "x86-64-apx-nf-intel" +run_dump_test "x86-64-apx-jmpabs" +run_dump_test "x86-64-apx-jmpabs-intel" +run_dump_test "x86-64-apx-jmpabs-inval" +run_list_test "x86-64-apx-mov-inval" run_dump_test "x86-64-avx512f-rcigrz-intel" run_dump_test "x86-64-avx512f-rcigrz" run_dump_test "x86-64-clwb" diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index b3ede02df06..e2e903afde4 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -105,6 +105,7 @@ static bool FXSAVE_Fixup (instr_info *, int, int); static bool MOVSXD_Fixup (instr_info *, int, int); static bool DistinctDest_Fixup (instr_info *, int, int); static bool PREFETCHI_Fixup (instr_info *, int, int); +static bool JMPABS_Fixup (instr_info *, int, int); static void ATTRIBUTE_PRINTF_3 i386_dis_printf (const disassemble_info *, enum disassembler_style, @@ -260,6 +261,9 @@ struct instr_info char scale_char; enum x86_64_isa isa64; + + /* Remember if the current op is jmpabs instructions. */ + bool jmpabs; }; struct dis_private { @@ -2057,7 +2061,7 @@ static const struct dis386 dis386[] = { { "lahf", { XX }, 0 }, /* a0 */ { "mov%LB", { AL, Ob }, 0 }, - { "mov%LS", { eAX, Ov }, 0 }, + { "mov%LS", { { JMPABS_Fixup, eAX_reg }, { JMPABS_Fixup, v_mode } }, 0 }, { "mov%LB", { Ob, AL }, 0 }, { "mov%LS", { Ov, eAX }, 0 }, { "movs{b|}", { Ybr, Xb }, 0 }, @@ -9690,6 +9694,15 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax) goto out; } + if (ins.jmpabs + && ((ins.prefixes & (PREFIX_OPCODE | PREFIX_ADDR)) != 0x0 + || (ins.rex2_payload & 0x8) != 0x0)) + { + i386_dis_printf (info, dis_style_text, "(bad)"); + ret = ins.end_codep - priv.the_buffer; + goto out; + } + switch (dp->prefix_requirement) { case PREFIX_DATA: @@ -13877,3 +13890,30 @@ PREFETCHI_Fixup (instr_info *ins, int bytemode, int sizeflag) return OP_M (ins, bytemode, sizeflag); } + +static bool +JMPABS_Fixup (instr_info *ins, int bytemode, int sizeflag) +{ + if (ins->address_mode == mode_64bit + && ins->last_rex2_prefix >= 0 + && (ins->rex2_payload & 0x80) == 0x0) + { + uint64_t op; + + if (bytemode == eAX_reg) + return true; + + if (!get64 (ins, &op)) + return false; + + ins->mnemonicendp = stpcpy (ins->obuf, "jmpabs"); + ins->all_prefixes[ins->last_rex2_prefix] = 0; + ins->jmpabs = true; + oappend_immediate (ins, op); + return true; + } + + if (bytemode == eAX_reg) + return OP_IMREG (ins, bytemode, sizeflag); + return OP_OFF64 (ins, v_mode, sizeflag); +} diff --git a/opcodes/i386-mnem.h b/opcodes/i386-mnem.h index 999fddb8eee..bbfa3601031 100644 --- a/opcodes/i386-mnem.h +++ b/opcodes/i386-mnem.h @@ -1606,763 +1606,764 @@ extern const char i386_mnemonics[]; #define MN_scas 0x3103 #define MN_das 0x3108 #define MN_fabs 0x310c -#define MN_movabs 0x3111 +#define MN_jmpabs 0x3111 +#define MN_movabs 0x3118 #define MN_cs (MN_blcs + 2) -#define MN_blcs 0x3118 +#define MN_blcs 0x311f #define MN_ds (MN_lds + 1) -#define MN_lds 0x311d -#define MN_enqcmds 0x3121 -#define MN_lods 0x3129 -#define MN_vpdpbssds 0x312e -#define MN_vp4dpwssds 0x3138 -#define MN_vpdpwssds 0x3143 -#define MN_vpdpbusds 0x314d -#define MN_vpdpwusds 0x3157 -#define MN_vpdpbsuds 0x3161 -#define MN_vpdpwsuds 0x316b -#define MN_vpdpbuuds 0x3175 -#define MN_vpdpwuuds 0x317f +#define MN_lds 0x3124 +#define MN_enqcmds 0x3128 +#define MN_lods 0x3130 +#define MN_vpdpbssds 0x3135 +#define MN_vp4dpwssds 0x313f +#define MN_vpdpwssds 0x314a +#define MN_vpdpbusds 0x3154 +#define MN_vpdpwusds 0x315e +#define MN_vpdpbsuds 0x3168 +#define MN_vpdpwsuds 0x3172 +#define MN_vpdpbuuds 0x317c +#define MN_vpdpwuuds 0x3186 #define MN_es (MN_les + 1) -#define MN_les 0x3189 -#define MN_xsaves 0x318d +#define MN_les 0x3190 +#define MN_xsaves 0x3194 #define MN_fs (MN_lfs + 1) -#define MN_lfs 0x3194 +#define MN_lfs 0x319b #define MN_gs (MN_lkgs + 2) -#define MN_lkgs 0x3198 -#define MN_lgs 0x319d -#define MN_swapgs 0x31a1 -#define MN_fchs 0x31a8 -#define MN_js 0x31ad -#define MN_encls 0x31b0 +#define MN_lkgs 0x319f +#define MN_lgs 0x31a4 +#define MN_swapgs 0x31a8 +#define MN_fchs 0x31af +#define MN_js 0x31b4 +#define MN_encls 0x31b7 #define MN_emms (MN_femms + 1) -#define MN_femms 0x31b6 +#define MN_femms 0x31bd #define MN_ins (MN_lwpins + 3) -#define MN_lwpins 0x31bc -#define MN_jns 0x31c3 -#define MN_wrmsrns 0x31c7 -#define MN_setns 0x31cf -#define MN_cmovns 0x31d5 -#define MN_fcos 0x31dc -#define MN_fsincos 0x31e1 -#define MN_stos 0x31e9 -#define MN_vfmaddsub231ps 0x31ee -#define MN_vfmsub231ps 0x31fd -#define MN_vfnmsub231ps 0x3209 -#define MN_vfmsubadd231ps 0x3216 -#define MN_vfmadd231ps 0x3225 -#define MN_vfnmadd231ps 0x3231 -#define MN_vfmaddsub132ps 0x323e -#define MN_vfmsub132ps 0x324d -#define MN_vfnmsub132ps 0x3259 -#define MN_vfmsubadd132ps 0x3266 -#define MN_vfmadd132ps 0x3275 -#define MN_vfnmadd132ps 0x3281 -#define MN_vcvtneebf162ps 0x328e -#define MN_vbcstnebf162ps 0x329d -#define MN_vcvtneobf162ps 0x32ac +#define MN_lwpins 0x31c3 +#define MN_jns 0x31ca +#define MN_wrmsrns 0x31ce +#define MN_setns 0x31d6 +#define MN_cmovns 0x31dc +#define MN_fcos 0x31e3 +#define MN_fsincos 0x31e8 +#define MN_stos 0x31f0 +#define MN_vfmaddsub231ps 0x31f5 +#define MN_vfmsub231ps 0x3204 +#define MN_vfnmsub231ps 0x3210 +#define MN_vfmsubadd231ps 0x321d +#define MN_vfmadd231ps 0x322c +#define MN_vfnmadd231ps 0x3238 +#define MN_vfmaddsub132ps 0x3245 +#define MN_vfmsub132ps 0x3254 +#define MN_vfnmsub132ps 0x3260 +#define MN_vfmsubadd132ps 0x326d +#define MN_vfmadd132ps 0x327c +#define MN_vfnmadd132ps 0x3288 +#define MN_vcvtneebf162ps 0x3295 +#define MN_vbcstnebf162ps 0x32a4 +#define MN_vcvtneobf162ps 0x32b3 #define MN_cvtpd2ps (MN_vcvtpd2ps + 1) -#define MN_vcvtpd2ps 0x32bb -#define MN_vcvtneeph2ps 0x32c5 -#define MN_vcvtneoph2ps 0x32d2 -#define MN_vcvtph2ps 0x32df -#define MN_vbcstnesh2ps 0x32e9 -#define MN_vpermi2ps 0x32f6 -#define MN_cvtpi2ps 0x3300 -#define MN_vpermil2ps 0x3309 -#define MN_vexp2ps 0x3314 +#define MN_vcvtpd2ps 0x32c2 +#define MN_vcvtneeph2ps 0x32cc +#define MN_vcvtneoph2ps 0x32d9 +#define MN_vcvtph2ps 0x32e6 +#define MN_vbcstnesh2ps 0x32f0 +#define MN_vpermi2ps 0x32fd +#define MN_cvtpi2ps 0x3307 +#define MN_vpermil2ps 0x3310 +#define MN_vexp2ps 0x331b #define MN_cvtdq2ps (MN_vcvtdq2ps + 1) -#define MN_vcvtdq2ps 0x331c -#define MN_vcvtudq2ps 0x3326 -#define MN_vcvtqq2ps 0x3331 -#define MN_vcvtuqq2ps 0x333b -#define MN_vpermt2ps 0x3346 -#define MN_vfmaddsub213ps 0x3350 -#define MN_vfmsub213ps 0x335f -#define MN_vfnmsub213ps 0x336b -#define MN_vfmsubadd213ps 0x3378 -#define MN_vfmadd213ps 0x3387 -#define MN_vfnmadd213ps 0x3393 -#define MN_vrcp14ps 0x33a0 -#define MN_vrsqrt14ps 0x33a9 -#define MN_tdpbf16ps 0x33b4 -#define MN_vdpbf16ps 0x33be -#define MN_tcmmrlfp16ps 0x33c8 -#define MN_tcmmimfp16ps 0x33d5 -#define MN_tdpfp16ps 0x33e2 -#define MN_vrcp28ps 0x33ec -#define MN_vrsqrt28ps 0x33f5 +#define MN_vcvtdq2ps 0x3323 +#define MN_vcvtudq2ps 0x332d +#define MN_vcvtqq2ps 0x3338 +#define MN_vcvtuqq2ps 0x3342 +#define MN_vpermt2ps 0x334d +#define MN_vfmaddsub213ps 0x3357 +#define MN_vfmsub213ps 0x3366 +#define MN_vfnmsub213ps 0x3372 +#define MN_vfmsubadd213ps 0x337f +#define MN_vfmadd213ps 0x338e +#define MN_vfnmadd213ps 0x339a +#define MN_vrcp14ps 0x33a7 +#define MN_vrsqrt14ps 0x33b0 +#define MN_tdpbf16ps 0x33bb +#define MN_vdpbf16ps 0x33c5 +#define MN_tcmmrlfp16ps 0x33cf +#define MN_tcmmimfp16ps 0x33dc +#define MN_tdpfp16ps 0x33e9 +#define MN_vrcp28ps 0x33f3 +#define MN_vrsqrt28ps 0x33fc #define MN_movaps (MN_vmovaps + 1) -#define MN_vmovaps 0x3400 +#define MN_vmovaps 0x3407 #define MN_subps (MN_addsubps + 3) #define MN_addsubps (MN_vfmaddsubps + 3) -#define MN_vfmaddsubps 0x3408 -#define MN_vaddsubps 0x3414 +#define MN_vfmaddsubps 0x340f +#define MN_vaddsubps 0x341b #define MN_hsubps (MN_vhsubps + 1) -#define MN_vhsubps 0x341e -#define MN_vfmsubps 0x3426 -#define MN_vfnmsubps 0x342f -#define MN_vsubps 0x3439 -#define MN_vgatherpf0dps 0x3440 -#define MN_vscatterpf0dps 0x344e -#define MN_vgatherpf1dps 0x345d -#define MN_vscatterpf1dps 0x346b +#define MN_vhsubps 0x3425 +#define MN_vfmsubps 0x342d +#define MN_vfnmsubps 0x3436 +#define MN_vsubps 0x3440 +#define MN_vgatherpf0dps 0x3447 +#define MN_vscatterpf0dps 0x3455 +#define MN_vgatherpf1dps 0x3464 +#define MN_vscatterpf1dps 0x3472 #define MN_addps (MN_vfmsubaddps + 6) -#define MN_vfmsubaddps 0x347a +#define MN_vfmsubaddps 0x3481 #define MN_haddps (MN_vhaddps + 1) -#define MN_vhaddps 0x3486 -#define MN_v4fmaddps 0x348e -#define MN_vfmaddps 0x3498 -#define MN_v4fnmaddps 0x34a1 -#define MN_vfnmaddps 0x34ac -#define MN_vaddps 0x34b6 +#define MN_vhaddps 0x348d +#define MN_v4fmaddps 0x3495 +#define MN_vfmaddps 0x349f +#define MN_v4fnmaddps 0x34a8 +#define MN_vfnmaddps 0x34b3 +#define MN_vaddps 0x34bd #define MN_andps (MN_vexpandps + 4) -#define MN_vexpandps 0x34bd -#define MN_vandps 0x34c7 +#define MN_vexpandps 0x34c4 +#define MN_vandps 0x34ce #define MN_blendps (MN_vblendps + 1) -#define MN_vblendps 0x34ce +#define MN_vblendps 0x34d5 #define MN_roundps (MN_vroundps + 1) -#define MN_vroundps 0x34d7 -#define MN_vgatherdps 0x34e0 -#define MN_vscatterdps 0x34eb +#define MN_vroundps 0x34de +#define MN_vgatherdps 0x34e7 +#define MN_vscatterdps 0x34f2 #define MN_cmpunordps (MN_vcmpunordps + 1) -#define MN_vcmpunordps 0x34f7 +#define MN_vcmpunordps 0x34fe #define MN_cmpordps (MN_vcmpordps + 1) -#define MN_vcmpordps 0x3503 -#define MN_vreduceps 0x350d -#define MN_vrangeps 0x3517 -#define MN_vcmpngeps 0x3520 -#define MN_vcmpgeps 0x352a -#define MN_vrndscaleps 0x3533 +#define MN_vcmpordps 0x350a +#define MN_vreduceps 0x3514 +#define MN_vrangeps 0x351e +#define MN_vcmpngeps 0x3527 +#define MN_vcmpgeps 0x3531 +#define MN_vrndscaleps 0x353a #define MN_cmpnleps (MN_vcmpnleps + 1) -#define MN_vcmpnleps 0x353f +#define MN_vcmpnleps 0x3546 #define MN_cmpleps (MN_vcmpleps + 1) -#define MN_vcmpleps 0x3549 -#define MN_vcmpfalseps 0x3552 -#define MN_vcmptrueps 0x355e -#define MN_vscalefps 0x3569 +#define MN_vcmpleps 0x3550 +#define MN_vcmpfalseps 0x3559 +#define MN_vcmptrueps 0x3565 +#define MN_vscalefps 0x3570 #define MN_shufps (MN_vshufps + 1) -#define MN_vshufps 0x3573 +#define MN_vshufps 0x357a #define MN_unpckhps (MN_vunpckhps + 1) -#define MN_vunpckhps 0x357b +#define MN_vunpckhps 0x3582 #define MN_movlhps (MN_vmovlhps + 1) -#define MN_vmovlhps 0x3585 +#define MN_vmovlhps 0x358c #define MN_movhps (MN_vmovhps + 1) -#define MN_vmovhps 0x358e +#define MN_vmovhps 0x3595 #define MN_movmskps (MN_vmovmskps + 1) -#define MN_vmovmskps 0x3596 +#define MN_vmovmskps 0x359d #define MN_movhlps (MN_vmovhlps + 1) -#define MN_vmovhlps 0x35a0 -#define MN_vpermilps 0x35a9 +#define MN_vmovhlps 0x35a7 +#define MN_vpermilps 0x35b0 #define MN_unpcklps (MN_vunpcklps + 1) -#define MN_vunpcklps 0x35b3 +#define MN_vunpcklps 0x35ba #define MN_mulps (MN_vmulps + 1) -#define MN_vmulps 0x35bd +#define MN_vmulps 0x35c4 #define MN_movlps (MN_vmovlps + 1) -#define MN_vmovlps 0x35c4 -#define MN_cmps 0x35cc -#define MN_vblendmps 0x35d1 -#define MN_vfixupimmps 0x35db -#define MN_vpermps 0x35e7 +#define MN_vmovlps 0x35cb +#define MN_cmps 0x35d3 +#define MN_vblendmps 0x35d8 +#define MN_vfixupimmps 0x35e2 +#define MN_vpermps 0x35ee #define MN_andnps (MN_vandnps + 1) -#define MN_vandnps 0x35ef +#define MN_vandnps 0x35f6 #define MN_minps (MN_vminps + 1) -#define MN_vminps 0x35f7 -#define MN_seamops 0x35fe +#define MN_vminps 0x35fe +#define MN_seamops 0x3605 #define MN_rcpps (MN_vrcpps + 1) -#define MN_vrcpps 0x3606 +#define MN_vrcpps 0x360d #define MN_dpps (MN_vdpps + 1) -#define MN_vdpps 0x360d +#define MN_vdpps 0x3614 #define MN_cmpps (MN_vcmpps + 1) -#define MN_vcmpps 0x3613 -#define MN_vgetexpps 0x361a -#define MN_vgatherpf0qps 0x3624 -#define MN_vscatterpf0qps 0x3632 -#define MN_vgatherpf1qps 0x3641 -#define MN_vscatterpf1qps 0x364f -#define MN_vcmpunord_qps 0x365e -#define MN_vcmpord_qps 0x366c +#define MN_vcmpps 0x361a +#define MN_vgetexpps 0x3621 +#define MN_vgatherpf0qps 0x362b +#define MN_vscatterpf0qps 0x3639 +#define MN_vgatherpf1qps 0x3648 +#define MN_vscatterpf1qps 0x3656 +#define MN_vcmpunord_qps 0x3665 +#define MN_vcmpord_qps 0x3673 #define MN_cmpneqps (MN_vcmpneqps + 1) -#define MN_vcmpneqps 0x3678 +#define MN_vcmpneqps 0x367f #define MN_cmpeqps (MN_vcmpeqps + 1) -#define MN_vcmpeqps 0x3682 -#define MN_vcmpge_oqps 0x368b -#define MN_vcmple_oqps 0x3697 -#define MN_vcmpfalse_oqps 0x36a3 -#define MN_vcmpneq_oqps 0x36b2 -#define MN_vcmpeq_oqps 0x36bf -#define MN_vcmpgt_oqps 0x36cb -#define MN_vcmplt_oqps 0x36d7 -#define MN_vgatherqps 0x36e3 -#define MN_vscatterqps 0x36ee -#define MN_vcmpnge_uqps 0x36fa -#define MN_vcmpnle_uqps 0x3707 -#define MN_vcmptrue_uqps 0x3714 -#define MN_vcmpneq_uqps 0x3722 -#define MN_vcmpeq_uqps 0x372f -#define MN_vcmpngt_uqps 0x373b -#define MN_vcmpnlt_uqps 0x3748 +#define MN_vcmpeqps 0x3689 +#define MN_vcmpge_oqps 0x3692 +#define MN_vcmple_oqps 0x369e +#define MN_vcmpfalse_oqps 0x36aa +#define MN_vcmpneq_oqps 0x36b9 +#define MN_vcmpeq_oqps 0x36c6 +#define MN_vcmpgt_oqps 0x36d2 +#define MN_vcmplt_oqps 0x36de +#define MN_vgatherqps 0x36ea +#define MN_vscatterqps 0x36f5 +#define MN_vcmpnge_uqps 0x3701 +#define MN_vcmpnle_uqps 0x370e +#define MN_vcmptrue_uqps 0x371b +#define MN_vcmpneq_uqps 0x3729 +#define MN_vcmpeq_uqps 0x3736 +#define MN_vcmpngt_uqps 0x3742 +#define MN_vcmpnlt_uqps 0x374f #define MN_orps (MN_vorps + 1) -#define MN_vorps 0x3755 +#define MN_vorps 0x375c #define MN_xorps (MN_vxorps + 1) -#define MN_vxorps 0x375b -#define MN_vcmpunord_sps 0x3762 -#define MN_vcmpord_sps 0x3770 -#define MN_vcmpge_osps 0x377c -#define MN_vcmple_osps 0x3788 -#define MN_vcmpfalse_osps 0x3794 -#define MN_vcmpneq_osps 0x37a3 -#define MN_vcmpeq_osps 0x37b0 -#define MN_vcmpgt_osps 0x37bc -#define MN_vcmplt_osps 0x37c8 -#define MN_vfpclassps 0x37d4 -#define MN_vcompressps 0x37df -#define MN_vcmpnge_usps 0x37eb -#define MN_vcmpnle_usps 0x37f8 -#define MN_vcmptrue_usps 0x3805 -#define MN_vcmpneq_usps 0x3813 -#define MN_vcmpeq_usps 0x3820 -#define MN_vcmpngt_usps 0x382c -#define MN_vcmpnlt_usps 0x3839 +#define MN_vxorps 0x3762 +#define MN_vcmpunord_sps 0x3769 +#define MN_vcmpord_sps 0x3777 +#define MN_vcmpge_osps 0x3783 +#define MN_vcmple_osps 0x378f +#define MN_vcmpfalse_osps 0x379b +#define MN_vcmpneq_osps 0x37aa +#define MN_vcmpeq_osps 0x37b7 +#define MN_vcmpgt_osps 0x37c3 +#define MN_vcmplt_osps 0x37cf +#define MN_vfpclassps 0x37db +#define MN_vcompressps 0x37e6 +#define MN_vcmpnge_usps 0x37f2 +#define MN_vcmpnle_usps 0x37ff +#define MN_vcmptrue_usps 0x380c +#define MN_vcmpneq_usps 0x381a +#define MN_vcmpeq_usps 0x3827 +#define MN_vcmpngt_usps 0x3833 +#define MN_vcmpnlt_usps 0x3840 #define MN_extractps (MN_vextractps + 1) -#define MN_vextractps 0x3846 -#define MN_vcmpngtps 0x3851 -#define MN_vcmpgtps 0x385b +#define MN_vextractps 0x384d +#define MN_vcmpngtps 0x3858 +#define MN_vcmpgtps 0x3862 #define MN_cmpnltps (MN_vcmpnltps + 1) -#define MN_vcmpnltps 0x3864 +#define MN_vcmpnltps 0x386b #define MN_cmpltps (MN_vcmpltps + 1) -#define MN_vcmpltps 0x386e -#define MN_vgetmantps 0x3877 +#define MN_vcmpltps 0x3875 +#define MN_vgetmantps 0x387e #define MN_movntps (MN_vmovntps + 1) -#define MN_vmovntps 0x3882 +#define MN_vmovntps 0x3889 #define MN_insertps (MN_vinsertps + 1) -#define MN_vinsertps 0x388b +#define MN_vinsertps 0x3892 #define MN_sqrtps (MN_rsqrtps + 1) #define MN_rsqrtps (MN_vrsqrtps + 1) -#define MN_vrsqrtps 0x3895 -#define MN_vsqrtps 0x389e -#define MN_vtestps 0x38a6 +#define MN_vrsqrtps 0x389c +#define MN_vsqrtps 0x38a5 +#define MN_vtestps 0x38ad #define MN_movups (MN_vmovups + 1) -#define MN_vmovups 0x38ae +#define MN_vmovups 0x38b5 #define MN_blendvps (MN_vblendvps + 1) -#define MN_vblendvps 0x38b6 +#define MN_vblendvps 0x38bd #define MN_divps (MN_vdivps + 1) -#define MN_vdivps 0x38c0 -#define MN_vmaskmovps 0x38c7 +#define MN_vdivps 0x38c7 +#define MN_vmaskmovps 0x38ce #define MN_maxps (MN_vmaxps + 1) -#define MN_vmaxps 0x38d2 -#define MN_vfrczps 0x38d9 -#define MN_xrstors 0x38e1 +#define MN_vmaxps 0x38d9 +#define MN_vfrczps 0x38e0 +#define MN_xrstors 0x38e8 #define MN_ss (MN_vfmsub231ss + 9) -#define MN_vfmsub231ss 0x38e9 -#define MN_vfnmsub231ss 0x38f5 -#define MN_vfmadd231ss 0x3902 -#define MN_vfnmadd231ss 0x390e -#define MN_vfmsub132ss 0x391b -#define MN_vfnmsub132ss 0x3927 -#define MN_vfmadd132ss 0x3934 -#define MN_vfnmadd132ss 0x3940 +#define MN_vfmsub231ss 0x38f0 +#define MN_vfnmsub231ss 0x38fc +#define MN_vfmadd231ss 0x3909 +#define MN_vfnmadd231ss 0x3915 +#define MN_vfmsub132ss 0x3922 +#define MN_vfnmsub132ss 0x392e +#define MN_vfmadd132ss 0x393b +#define MN_vfnmadd132ss 0x3947 #define MN_cvtsd2ss (MN_vcvtsd2ss + 1) -#define MN_vcvtsd2ss 0x394d -#define MN_vcvtsh2ss 0x3957 +#define MN_vcvtsd2ss 0x3954 +#define MN_vcvtsh2ss 0x395e #define MN_cvtsi2ss (MN_vcvtsi2ss + 1) -#define MN_vcvtsi2ss 0x3961 -#define MN_vcvtusi2ss 0x396b -#define MN_vfmsub213ss 0x3976 -#define MN_vfnmsub213ss 0x3982 -#define MN_vfmadd213ss 0x398f -#define MN_vfnmadd213ss 0x399b -#define MN_vrcp14ss 0x39a8 -#define MN_vrsqrt14ss 0x39b1 -#define MN_vrcp28ss 0x39bc -#define MN_vrsqrt28ss 0x39c5 +#define MN_vcvtsi2ss 0x3968 +#define MN_vcvtusi2ss 0x3972 +#define MN_vfmsub213ss 0x397d +#define MN_vfnmsub213ss 0x3989 +#define MN_vfmadd213ss 0x3996 +#define MN_vfnmadd213ss 0x39a2 +#define MN_vrcp14ss 0x39af +#define MN_vrsqrt14ss 0x39b8 +#define MN_vrcp28ss 0x39c3 +#define MN_vrsqrt28ss 0x39cc #define MN_subss (MN_vfmsubss + 3) -#define MN_vfmsubss 0x39d0 -#define MN_vfnmsubss 0x39d9 -#define MN_vsubss 0x39e3 +#define MN_vfmsubss 0x39d7 +#define MN_vfnmsubss 0x39e0 +#define MN_vsubss 0x39ea #define MN_addss (MN_v4fmaddss + 4) -#define MN_v4fmaddss 0x39ea -#define MN_vfmaddss 0x39f4 -#define MN_v4fnmaddss 0x39fd -#define MN_vfnmaddss 0x3a08 -#define MN_vaddss 0x3a12 +#define MN_v4fmaddss 0x39f1 +#define MN_vfmaddss 0x39fb +#define MN_v4fnmaddss 0x3a04 +#define MN_vfnmaddss 0x3a0f +#define MN_vaddss 0x3a19 #define MN_roundss (MN_vroundss + 1) -#define MN_vroundss 0x3a19 +#define MN_vroundss 0x3a20 #define MN_cmpunordss (MN_vcmpunordss + 1) -#define MN_vcmpunordss 0x3a22 +#define MN_vcmpunordss 0x3a29 #define MN_cmpordss (MN_vcmpordss + 1) -#define MN_vcmpordss 0x3a2e -#define MN_vreducess 0x3a38 -#define MN_vrangess 0x3a42 -#define MN_vcmpngess 0x3a4b -#define MN_vcmpgess 0x3a55 -#define MN_vrndscaless 0x3a5e +#define MN_vcmpordss 0x3a35 +#define MN_vreducess 0x3a3f +#define MN_vrangess 0x3a49 +#define MN_vcmpngess 0x3a52 +#define MN_vcmpgess 0x3a5c +#define MN_vrndscaless 0x3a65 #define MN_cmpnless (MN_vcmpnless + 1) -#define MN_vcmpnless 0x3a6a +#define MN_vcmpnless 0x3a71 #define MN_cmpless (MN_vcmpless + 1) -#define MN_vcmpless 0x3a74 -#define MN_vcmpfalsess 0x3a7d -#define MN_vcmptruess 0x3a89 -#define MN_vscalefss 0x3a94 +#define MN_vcmpless 0x3a7b +#define MN_vcmpfalsess 0x3a84 +#define MN_vcmptruess 0x3a90 +#define MN_vscalefss 0x3a9b #define MN_comiss (MN_ucomiss + 1) #define MN_ucomiss (MN_vucomiss + 1) -#define MN_vucomiss 0x3a9e -#define MN_vcomiss 0x3aa7 +#define MN_vucomiss 0x3aa5 +#define MN_vcomiss 0x3aae #define MN_lss (MN_mulss + 2) #define MN_mulss (MN_vmulss + 1) -#define MN_vmulss 0x3aaf -#define MN_vfixupimmss 0x3ab6 +#define MN_vmulss 0x3ab6 +#define MN_vfixupimmss 0x3abd #define MN_minss (MN_vminss + 1) -#define MN_vminss 0x3ac2 +#define MN_vminss 0x3ac9 #define MN_rcpss (MN_vrcpss + 1) -#define MN_vrcpss 0x3ac9 +#define MN_vrcpss 0x3ad0 #define MN_cmpss (MN_vcmpss + 1) -#define MN_vcmpss 0x3ad0 -#define MN_vgetexpss 0x3ad7 -#define MN_vcmpunord_qss 0x3ae1 -#define MN_vcmpord_qss 0x3aef +#define MN_vcmpss 0x3ad7 +#define MN_vgetexpss 0x3ade +#define MN_vcmpunord_qss 0x3ae8 +#define MN_vcmpord_qss 0x3af6 #define MN_cmpneqss (MN_vcmpneqss + 1) -#define MN_vcmpneqss 0x3afb +#define MN_vcmpneqss 0x3b02 #define MN_cmpeqss (MN_vcmpeqss + 1) -#define MN_vcmpeqss 0x3b05 -#define MN_vcmpge_oqss 0x3b0e -#define MN_vcmple_oqss 0x3b1a -#define MN_vcmpfalse_oqss 0x3b26 -#define MN_vcmpneq_oqss 0x3b35 -#define MN_vcmpeq_oqss 0x3b42 -#define MN_vcmpgt_oqss 0x3b4e -#define MN_vcmplt_oqss 0x3b5a -#define MN_vcmpnge_uqss 0x3b66 -#define MN_vcmpnle_uqss 0x3b73 -#define MN_vcmptrue_uqss 0x3b80 -#define MN_vcmpneq_uqss 0x3b8e -#define MN_vcmpeq_uqss 0x3b9b -#define MN_vcmpngt_uqss 0x3ba7 -#define MN_vcmpnlt_uqss 0x3bb4 -#define MN_vcmpunord_sss 0x3bc1 -#define MN_vcmpord_sss 0x3bcf -#define MN_vcmpge_osss 0x3bdb -#define MN_vcmple_osss 0x3be7 -#define MN_vcmpfalse_osss 0x3bf3 -#define MN_vcmpneq_osss 0x3c02 -#define MN_vcmpeq_osss 0x3c0f -#define MN_vcmpgt_osss 0x3c1b -#define MN_vcmplt_osss 0x3c27 -#define MN_vfpclassss 0x3c33 -#define MN_vcmpnge_usss 0x3c3e -#define MN_vcmpnle_usss 0x3c4b -#define MN_vcmptrue_usss 0x3c58 -#define MN_vcmpneq_usss 0x3c66 -#define MN_vcmpeq_usss 0x3c73 -#define MN_vcmpngt_usss 0x3c7f -#define MN_vcmpnlt_usss 0x3c8c -#define MN_vcmpngtss 0x3c99 -#define MN_vcmpgtss 0x3ca3 +#define MN_vcmpeqss 0x3b0c +#define MN_vcmpge_oqss 0x3b15 +#define MN_vcmple_oqss 0x3b21 +#define MN_vcmpfalse_oqss 0x3b2d +#define MN_vcmpneq_oqss 0x3b3c +#define MN_vcmpeq_oqss 0x3b49 +#define MN_vcmpgt_oqss 0x3b55 +#define MN_vcmplt_oqss 0x3b61 +#define MN_vcmpnge_uqss 0x3b6d +#define MN_vcmpnle_uqss 0x3b7a +#define MN_vcmptrue_uqss 0x3b87 +#define MN_vcmpneq_uqss 0x3b95 +#define MN_vcmpeq_uqss 0x3ba2 +#define MN_vcmpngt_uqss 0x3bae +#define MN_vcmpnlt_uqss 0x3bbb +#define MN_vcmpunord_sss 0x3bc8 +#define MN_vcmpord_sss 0x3bd6 +#define MN_vcmpge_osss 0x3be2 +#define MN_vcmple_osss 0x3bee +#define MN_vcmpfalse_osss 0x3bfa +#define MN_vcmpneq_osss 0x3c09 +#define MN_vcmpeq_osss 0x3c16 +#define MN_vcmpgt_osss 0x3c22 +#define MN_vcmplt_osss 0x3c2e +#define MN_vfpclassss 0x3c3a +#define MN_vcmpnge_usss 0x3c45 +#define MN_vcmpnle_usss 0x3c52 +#define MN_vcmptrue_usss 0x3c5f +#define MN_vcmpneq_usss 0x3c6d +#define MN_vcmpeq_usss 0x3c7a +#define MN_vcmpngt_usss 0x3c86 +#define MN_vcmpnlt_usss 0x3c93 +#define MN_vcmpngtss 0x3ca0 +#define MN_vcmpgtss 0x3caa #define MN_cmpnltss (MN_vcmpnltss + 1) -#define MN_vcmpnltss 0x3cac +#define MN_vcmpnltss 0x3cb3 #define MN_cmpltss (MN_vcmpltss + 1) -#define MN_vcmpltss 0x3cb6 -#define MN_vgetmantss 0x3cbf -#define MN_movntss 0x3cca +#define MN_vcmpltss 0x3cbd +#define MN_vgetmantss 0x3cc6 +#define MN_movntss 0x3cd1 #define MN_sqrtss (MN_rsqrtss + 1) #define MN_rsqrtss (MN_vrsqrtss + 1) -#define MN_vrsqrtss 0x3cd2 -#define MN_vsqrtss 0x3cdb -#define MN_vbroadcastss 0x3ce3 +#define MN_vrsqrtss 0x3cd9 +#define MN_vsqrtss 0x3ce2 +#define MN_vbroadcastss 0x3cea #define MN_divss (MN_vdivss + 1) -#define MN_vdivss 0x3cf0 +#define MN_vdivss 0x3cf7 #define MN_movss (MN_vmovss + 1) -#define MN_vmovss 0x3cf7 +#define MN_vmovss 0x3cfe #define MN_maxss (MN_vmaxss + 1) -#define MN_vmaxss 0x3cfe -#define MN_vfrczss 0x3d05 -#define MN_bts 0x3d0d -#define MN_erets 0x3d11 -#define MN_sets 0x3d17 -#define MN_clts 0x3d1c -#define MN_outs 0x3d21 +#define MN_vmaxss 0x3d05 +#define MN_vfrczss 0x3d0c +#define MN_bts 0x3d14 +#define MN_erets 0x3d18 +#define MN_sets 0x3d1e +#define MN_clts 0x3d23 +#define MN_outs 0x3d28 #define MN_movs (MN_cmovs + 1) -#define MN_cmovs 0x3d26 -#define MN_fldl2t 0x3d2c -#define MN_xlat 0x3d33 -#define MN_bt 0x3d38 -#define MN_fxtract 0x3d3b -#define MN_lgdt 0x3d43 -#define MN_sgdt 0x3d48 -#define MN_lidt 0x3d4d -#define MN_sidt 0x3d52 -#define MN_fldt 0x3d57 -#define MN_lldt 0x3d5c -#define MN_sldt 0x3d61 +#define MN_cmovs 0x3d2d +#define MN_fldl2t 0x3d33 +#define MN_xlat 0x3d3a +#define MN_bt 0x3d3f +#define MN_fxtract 0x3d42 +#define MN_lgdt 0x3d4a +#define MN_sgdt 0x3d4f +#define MN_lidt 0x3d54 +#define MN_sidt 0x3d59 +#define MN_fldt 0x3d5e +#define MN_lldt 0x3d63 +#define MN_sldt 0x3d68 #define MN_ret (MN_iret + 1) #define MN_iret (MN_uiret + 1) -#define MN_uiret 0x3d66 -#define MN_lret 0x3d6c -#define MN_seamret 0x3d71 -#define MN_sysret 0x3d79 -#define MN_hreset 0x3d80 -#define MN_pfcmpgt 0x3d87 -#define MN_ht 0x3d8f +#define MN_uiret 0x3d6d +#define MN_lret 0x3d73 +#define MN_seamret 0x3d78 +#define MN_sysret 0x3d80 +#define MN_hreset 0x3d87 +#define MN_pfcmpgt 0x3d8e +#define MN_ht 0x3d96 #define MN_wait (MN_fwait + 1) -#define MN_fwait 0x3d92 +#define MN_fwait 0x3d99 #define MN_mwait (MN_umwait + 1) -#define MN_umwait 0x3d98 -#define MN_mcommit 0x3d9f -#define MN_finit 0x3da7 -#define MN_skinit 0x3dad -#define MN_fninit 0x3db4 -#define MN_vmgexit 0x3dbb -#define MN_sysexit 0x3dc3 -#define MN_hlt 0x3dcb -#define MN_popcnt 0x3dcf -#define MN_lzcnt 0x3dd6 -#define MN_tzcnt 0x3ddc -#define MN_hnt 0x3de2 +#define MN_umwait 0x3d9f +#define MN_mcommit 0x3da6 +#define MN_finit 0x3dae +#define MN_skinit 0x3db4 +#define MN_fninit 0x3dbb +#define MN_vmgexit 0x3dc2 +#define MN_sysexit 0x3dca +#define MN_hlt 0x3dd2 +#define MN_popcnt 0x3dd6 +#define MN_lzcnt 0x3ddd +#define MN_tzcnt 0x3de3 +#define MN_hnt 0x3de9 #define MN_int (MN_frndint + 4) -#define MN_frndint 0x3de6 -#define MN_not 0x3dee -#define MN_invept 0x3df2 -#define MN_xsaveopt 0x3df9 -#define MN_clflushopt 0x3e02 -#define MN_fstpt 0x3e0d -#define MN_xabort 0x3e13 -#define MN_fsqrt 0x3e1a -#define MN_pfrsqrt 0x3e20 +#define MN_frndint 0x3ded +#define MN_not 0x3df5 +#define MN_invept 0x3df9 +#define MN_xsaveopt 0x3e00 +#define MN_clflushopt 0x3e09 +#define MN_fstpt 0x3e14 +#define MN_xabort 0x3e1a +#define MN_fsqrt 0x3e21 +#define MN_pfrsqrt 0x3e27 #define MN_aesdeclast (MN_vaesdeclast + 1) -#define MN_vaesdeclast 0x3e28 +#define MN_vaesdeclast 0x3e2f #define MN_aesenclast (MN_vaesenclast + 1) -#define MN_vaesenclast 0x3e34 +#define MN_vaesenclast 0x3e3b #define MN_test (MN_ptest + 1) #define MN_ptest (MN_vptest + 1) -#define MN_vptest 0x3e40 -#define MN_xtest 0x3e47 -#define MN_fst 0x3e4d -#define MN_fist 0x3e51 -#define MN_rdmsrlist 0x3e56 -#define MN_wrmsrlist 0x3e60 +#define MN_vptest 0x3e47 +#define MN_xtest 0x3e4e +#define MN_fst 0x3e54 +#define MN_fist 0x3e58 +#define MN_rdmsrlist 0x3e5d +#define MN_wrmsrlist 0x3e67 #define MN_aeskeygenassist (MN_vaeskeygenassist + 1) -#define MN_vaeskeygenassist 0x3e6a -#define MN_vmptrst 0x3e7b -#define MN_ftst 0x3e83 -#define MN_rmpadjust 0x3e88 -#define MN_out 0x3e92 -#define MN_pext 0x3e96 -#define MN_bndcu 0x3e9b -#define MN_enclu 0x3ea1 -#define MN_fcmovnu 0x3ea7 +#define MN_vaeskeygenassist 0x3e71 +#define MN_vmptrst 0x3e82 +#define MN_ftst 0x3e8a +#define MN_rmpadjust 0x3e8f +#define MN_out 0x3e99 +#define MN_pext 0x3e9d +#define MN_bndcu 0x3ea2 +#define MN_enclu 0x3ea8 +#define MN_fcmovnu 0x3eae #define MN_lddqu (MN_vlddqu + 1) -#define MN_vlddqu 0x3eaf +#define MN_vlddqu 0x3eb6 #define MN_movdqu (MN_maskmovdqu + 4) #define MN_maskmovdqu (MN_vmaskmovdqu + 1) -#define MN_vmaskmovdqu 0x3eb6 -#define MN_vmovdqu 0x3ec2 -#define MN_rdpkru 0x3eca -#define MN_wrpkru 0x3ed1 -#define MN_rdpru 0x3ed8 -#define MN_eretu 0x3ede -#define MN_fcmovu 0x3ee4 -#define MN_xgetbv 0x3eeb -#define MN_xsetbv 0x3ef2 +#define MN_vmaskmovdqu 0x3ebd +#define MN_vmovdqu 0x3ec9 +#define MN_rdpkru 0x3ed1 +#define MN_wrpkru 0x3ed8 +#define MN_rdpru 0x3edf +#define MN_eretu 0x3ee5 +#define MN_fcmovu 0x3eeb +#define MN_xgetbv 0x3ef2 +#define MN_xsetbv 0x3ef9 #define MN_div (MN_fdiv + 1) -#define MN_fdiv 0x3ef9 +#define MN_fdiv 0x3f00 #define MN_idiv (MN_fidiv + 1) -#define MN_fidiv 0x3efe -#define MN_enclv 0x3f04 -#define MN_fldenv 0x3f0a -#define MN_fstenv 0x3f11 -#define MN_fnstenv 0x3f18 +#define MN_fidiv 0x3f05 +#define MN_enclv 0x3f0b +#define MN_fldenv 0x3f11 +#define MN_fstenv 0x3f18 +#define MN_fnstenv 0x3f1f #define MN_mov (MN_vpcmov + 3) -#define MN_vpcmov 0x3f20 -#define MN_bndmov 0x3f27 -#define MN_smov 0x3f2e -#define MN_rex_w 0x3f33 -#define MN_vcvttph2w 0x3f39 -#define MN_vcvtph2w 0x3f43 -#define MN_vpermi2w 0x3f4c -#define MN_vpmovm2w 0x3f55 -#define MN_vpermt2w 0x3f5e -#define MN_vpshaw 0x3f67 +#define MN_vpcmov 0x3f27 +#define MN_bndmov 0x3f2e +#define MN_smov 0x3f35 +#define MN_rex_w 0x3f3a +#define MN_vcvttph2w 0x3f40 +#define MN_vcvtph2w 0x3f4a +#define MN_vpermi2w 0x3f53 +#define MN_vpmovm2w 0x3f5c +#define MN_vpermt2w 0x3f65 +#define MN_vpshaw 0x3f6e #define MN_psraw (MN_vpsraw + 1) -#define MN_vpsraw 0x3f6e -#define MN_vphsubbw 0x3f75 -#define MN_cbw 0x3f7e +#define MN_vpsraw 0x3f75 +#define MN_vphsubbw 0x3f7c +#define MN_cbw 0x3f85 #define MN_psadbw (MN_vdbpsadbw + 3) -#define MN_vdbpsadbw 0x3f82 +#define MN_vdbpsadbw 0x3f89 #define MN_mpsadbw (MN_vmpsadbw + 1) -#define MN_vmpsadbw 0x3f8c -#define MN_vpsadbw 0x3f95 -#define MN_vphaddbw 0x3f9d +#define MN_vmpsadbw 0x3f93 +#define MN_vpsadbw 0x3f9c +#define MN_vphaddbw 0x3fa4 #define MN_punpckhbw (MN_vpunpckhbw + 1) -#define MN_vpunpckhbw 0x3fa6 -#define MN_kunpckbw 0x3fb1 +#define MN_vpunpckhbw 0x3fad +#define MN_kunpckbw 0x3fb8 #define MN_punpcklbw (MN_vpunpcklbw + 1) -#define MN_vpunpcklbw 0x3fba -#define MN_vphaddubw 0x3fc5 +#define MN_vpunpcklbw 0x3fc1 +#define MN_vphaddubw 0x3fcc #define MN_phsubw (MN_vphsubw + 1) -#define MN_vphsubw 0x3fcf +#define MN_vphsubw 0x3fd6 #define MN_psubw (MN_vpsubw + 1) -#define MN_vpsubw 0x3fd7 +#define MN_vpsubw 0x3fde #define MN_pmovsxbw (MN_vpmovsxbw + 1) -#define MN_vpmovsxbw 0x3fde +#define MN_vpmovsxbw 0x3fe5 #define MN_pmovzxbw (MN_vpmovzxbw + 1) -#define MN_vpmovzxbw 0x3fe8 -#define MN_fldcw 0x3ff2 -#define MN_fstcw 0x3ff8 -#define MN_fnstcw 0x3ffe +#define MN_vpmovzxbw 0x3fef +#define MN_fldcw 0x3ff9 +#define MN_fstcw 0x3fff +#define MN_fnstcw 0x4005 #define MN_phaddw (MN_vphaddw + 1) -#define MN_vphaddw 0x4005 -#define MN_kaddw 0x400d +#define MN_vphaddw 0x400c +#define MN_kaddw 0x4014 #define MN_paddw (MN_vpaddw + 1) -#define MN_vpaddw 0x4013 -#define MN_vpshldw 0x401a -#define MN_kandw 0x4022 -#define MN_vpexpandw 0x4028 +#define MN_vpaddw 0x401a +#define MN_vpshldw 0x4021 +#define MN_kandw 0x4029 +#define MN_vpexpandw 0x402f #define MN_pblendw (MN_vpblendw + 1) -#define MN_vpblendw 0x4032 -#define MN_vpshrdw 0x403b +#define MN_vpblendw 0x4039 +#define MN_vpshrdw 0x4042 #define MN_packssdw (MN_vpackssdw + 1) -#define MN_vpackssdw 0x4043 +#define MN_vpackssdw 0x404a #define MN_packusdw (MN_vpackusdw + 1) -#define MN_vpackusdw 0x404d -#define MN_vpmovusdw 0x4057 -#define MN_vpmovsdw 0x4061 -#define MN_vpmovdw 0x406a -#define MN_vpcomgew 0x4072 -#define MN_vpcomlew 0x407b -#define MN_vpcmpnlew 0x4084 -#define MN_vpcmplew 0x408e -#define MN_vpcomfalsew 0x4097 -#define MN_vpcomtruew 0x40a3 -#define MN_pi2fw 0x40ae -#define MN_pshufw 0x40b4 +#define MN_vpackusdw 0x4054 +#define MN_vpmovusdw 0x405e +#define MN_vpmovsdw 0x4068 +#define MN_vpmovdw 0x4071 +#define MN_vpcomgew 0x4079 +#define MN_vpcomlew 0x4082 +#define MN_vpcmpnlew 0x408b +#define MN_vpcmplew 0x4095 +#define MN_vpcomfalsew 0x409e +#define MN_vpcomtruew 0x40aa +#define MN_pi2fw 0x40b5 +#define MN_pshufw 0x40bb #define MN_pavgw (MN_vpavgw + 1) -#define MN_vpavgw 0x40bb -#define MN_prefetchw 0x40c2 +#define MN_vpavgw 0x40c2 +#define MN_prefetchw 0x40c9 #define MN_pshufhw (MN_vpshufhw + 1) -#define MN_vpshufhw 0x40cc +#define MN_vpshufhw 0x40d3 #define MN_pmulhw (MN_vpmulhw + 1) -#define MN_vpmulhw 0x40d5 -#define MN_pf2iw 0x40dd +#define MN_vpmulhw 0x40dc +#define MN_pf2iw 0x40e4 #define MN_pshuflw (MN_vpshuflw + 1) -#define MN_vpshuflw 0x40e3 -#define MN_vpshlw 0x40ec +#define MN_vpshuflw 0x40ea +#define MN_vpshlw 0x40f3 #define MN_psllw (MN_vpsllw + 1) -#define MN_vpsllw 0x40f3 +#define MN_vpsllw 0x40fa #define MN_pmullw (MN_vpmullw + 1) -#define MN_vpmullw 0x40fa +#define MN_vpmullw 0x4101 #define MN_psrlw (MN_vpsrlw + 1) -#define MN_vpsrlw 0x4102 -#define MN_kshiftlw 0x4109 -#define MN_vpblendmw 0x4112 -#define MN_vptestnmw 0x411c -#define MN_vpcomw 0x4126 -#define MN_vpermw 0x412d -#define MN_vptestmw 0x4134 -#define MN_kandnw 0x413d +#define MN_vpsrlw 0x4109 +#define MN_kshiftlw 0x4110 +#define MN_vpblendmw 0x4119 +#define MN_vptestnmw 0x4123 +#define MN_vpcomw 0x412d +#define MN_vpermw 0x4134 +#define MN_vptestmw 0x413b +#define MN_kandnw 0x4144 #define MN_psignw (MN_vpsignw + 1) -#define MN_vpsignw 0x4144 -#define MN_vpcmpw 0x414c -#define MN_vpcomeqw 0x4153 -#define MN_vpcomneqw 0x415c -#define MN_vpcmpneqw 0x4166 +#define MN_vpsignw 0x414b +#define MN_vpcmpw 0x4153 +#define MN_vpcomeqw 0x415a +#define MN_vpcomneqw 0x4163 +#define MN_vpcmpneqw 0x416d #define MN_pcmpeqw (MN_vpcmpeqw + 1) -#define MN_vpcmpeqw 0x4170 -#define MN_vpmovusqw 0x4179 -#define MN_vpmovsqw 0x4183 -#define MN_vpmovqw 0x418c -#define MN_verw 0x4194 -#define MN_pmulhrw 0x4199 -#define MN_korw 0x41a1 -#define MN_kxnorw 0x41a6 -#define MN_kxorw 0x41ad +#define MN_vpcmpeqw 0x4177 +#define MN_vpmovusqw 0x4180 +#define MN_vpmovsqw 0x418a +#define MN_vpmovqw 0x4193 +#define MN_verw 0x419b +#define MN_pmulhrw 0x41a0 +#define MN_korw 0x41a8 +#define MN_kxnorw 0x41ad +#define MN_kxorw 0x41b4 #define MN_pinsrw (MN_vpinsrw + 1) -#define MN_vpinsrw 0x41b3 -#define MN_kshiftrw 0x41bb +#define MN_vpinsrw 0x41ba +#define MN_kshiftrw 0x41c2 #define MN_pextrw (MN_vpextrw + 1) -#define MN_vpextrw 0x41c4 +#define MN_vpextrw 0x41cb #define MN_pabsw (MN_vpabsw + 1) -#define MN_vpabsw 0x41cc +#define MN_vpabsw 0x41d3 #define MN_pmaddubsw (MN_vpmaddubsw + 1) -#define MN_vpmaddubsw 0x41d3 +#define MN_vpmaddubsw 0x41da #define MN_phsubsw (MN_vphsubsw + 1) -#define MN_vphsubsw 0x41de +#define MN_vphsubsw 0x41e5 #define MN_psubsw (MN_vpsubsw + 1) -#define MN_vpsubsw 0x41e7 +#define MN_vpsubsw 0x41ee #define MN_phaddsw (MN_vphaddsw + 1) -#define MN_vphaddsw 0x41ef +#define MN_vphaddsw 0x41f6 #define MN_paddsw (MN_vpaddsw + 1) -#define MN_vpaddsw 0x41f8 -#define MN_lmsw 0x4200 -#define MN_smsw 0x4205 +#define MN_vpaddsw 0x41ff +#define MN_lmsw 0x4207 +#define MN_smsw 0x420c #define MN_pminsw (MN_vpminsw + 1) -#define MN_vpminsw 0x420a +#define MN_vpminsw 0x4211 #define MN_pmulhrsw (MN_vpmulhrsw + 1) -#define MN_vpmulhrsw 0x4212 -#define MN_vpcompressw 0x421c -#define MN_fstsw 0x4228 -#define MN_fnstsw 0x422e +#define MN_vpmulhrsw 0x4219 +#define MN_vpcompressw 0x4223 +#define MN_fstsw 0x422f +#define MN_fnstsw 0x4235 #define MN_psubusw (MN_vpsubusw + 1) -#define MN_vpsubusw 0x4235 +#define MN_vpsubusw 0x423c #define MN_paddusw (MN_vpaddusw + 1) -#define MN_vpaddusw 0x423e -#define MN_movsw 0x4247 +#define MN_vpaddusw 0x4245 +#define MN_movsw 0x424e #define MN_pmaxsw (MN_vpmaxsw + 1) -#define MN_vpmaxsw 0x424d -#define MN_cbtw 0x4255 -#define MN_vpcomgtw 0x425a +#define MN_vpmaxsw 0x4254 +#define MN_cbtw 0x425c +#define MN_vpcomgtw 0x4261 #define MN_pcmpgtw (MN_vpcmpgtw + 1) -#define MN_vpcmpgtw 0x4263 -#define MN_vpcomltw 0x426c -#define MN_vpcmpnltw 0x4275 -#define MN_vpcmpltw 0x427f -#define MN_vpopcntw 0x4288 -#define MN_knotw 0x4291 -#define MN_vprotw 0x4297 -#define MN_vpbroadcastw 0x429e -#define MN_ktestw 0x42ab -#define MN_kortestw 0x42b2 -#define MN_vcvttph2uw 0x42bb -#define MN_vcvtph2uw 0x42c6 -#define MN_vpcomgeuw 0x42d0 -#define MN_vpcomleuw 0x42da -#define MN_vpcmpnleuw 0x42e4 -#define MN_vpcmpleuw 0x42ef -#define MN_vpcomfalseuw 0x42f9 -#define MN_vpcomtrueuw 0x4306 +#define MN_vpcmpgtw 0x426a +#define MN_vpcomltw 0x4273 +#define MN_vpcmpnltw 0x427c +#define MN_vpcmpltw 0x4286 +#define MN_vpopcntw 0x428f +#define MN_knotw 0x4298 +#define MN_vprotw 0x429e +#define MN_vpbroadcastw 0x42a5 +#define MN_ktestw 0x42b2 +#define MN_kortestw 0x42b9 +#define MN_vcvttph2uw 0x42c2 +#define MN_vcvtph2uw 0x42cd +#define MN_vpcomgeuw 0x42d7 +#define MN_vpcomleuw 0x42e1 +#define MN_vpcmpnleuw 0x42eb +#define MN_vpcmpleuw 0x42f6 +#define MN_vpcomfalseuw 0x4300 +#define MN_vpcomtrueuw 0x430d #define MN_pmulhuw (MN_vpmulhuw + 1) -#define MN_vpmulhuw 0x4312 -#define MN_vpcomuw 0x431b +#define MN_vpmulhuw 0x4319 +#define MN_vpcomuw 0x4322 #define MN_pminuw (MN_vpminuw + 1) -#define MN_vpminuw 0x4323 -#define MN_vpcmpuw 0x432b -#define MN_vpcomequw 0x4333 -#define MN_vpcomnequw 0x433d -#define MN_vpcmpnequw 0x4348 -#define MN_vpcmpequw 0x4353 +#define MN_vpminuw 0x432a +#define MN_vpcmpuw 0x4332 +#define MN_vpcomequw 0x433a +#define MN_vpcomnequw 0x4344 +#define MN_vpcmpnequw 0x434f +#define MN_vpcmpequw 0x435a #define MN_phminposuw (MN_vphminposuw + 1) -#define MN_vphminposuw 0x435d -#define MN_vpcomgtuw 0x4369 -#define MN_vpcomltuw 0x4373 -#define MN_vpcmpnltuw 0x437d -#define MN_vpcmpltuw 0x4388 +#define MN_vphminposuw 0x4364 +#define MN_vpcomgtuw 0x4370 +#define MN_vpcomltuw 0x437a +#define MN_vpcmpnltuw 0x4384 +#define MN_vpcmpltuw 0x438f #define MN_pmaxuw (MN_vpmaxuw + 1) -#define MN_vpmaxuw 0x4392 -#define MN_vpsravw 0x439a -#define MN_vpshldvw 0x43a2 -#define MN_vpshrdvw 0x43ab -#define MN_vpsllvw 0x43b4 -#define MN_vpsrlvw 0x43bc -#define MN_kmovw 0x43c4 -#define MN_vmovw 0x43ca -#define MN_vpmacsww 0x43d0 -#define MN_vpmacssww 0x43d9 -#define MN_movzw 0x43e3 -#define MN_rex_x 0x43e9 -#define MN_fyl2x 0x43ef -#define MN_rex64x 0x43f5 -#define MN_vcvtneps2bf16x 0x43fc -#define MN_pfmax 0x440b -#define MN_adcx 0x4411 -#define MN_bndldx 0x4416 -#define MN_vfpclasspdx 0x441d -#define MN_fclex 0x4429 -#define MN_fnclex 0x442f -#define MN_rex 0x4436 -#define MN_vcvtpd2phx 0x443a -#define MN_vcvtdq2phx 0x4445 -#define MN_vcvtudq2phx 0x4450 -#define MN_vcvtqq2phx 0x445c -#define MN_vcvtuqq2phx 0x4467 -#define MN_vcvtps2phx 0x4473 -#define MN_vfpclassphx 0x447e -#define MN_shlx 0x448a -#define MN_mulx 0x448f -#define MN_adox 0x4494 -#define MN_vcvttpd2dqx 0x4499 -#define MN_vcvtpd2dqx 0x44a5 -#define MN_vcvttpd2udqx 0x44b0 -#define MN_vcvtpd2udqx 0x44bd -#define MN_rex_rx 0x44c9 -#define MN_sarx 0x44d0 -#define MN_shrx 0x44d5 -#define MN_rorx 0x44da -#define MN_monitorx 0x44df -#define MN_rex_wrx 0x44e8 -#define MN_vcvtpd2psx 0x44f0 -#define MN_vcvtph2psx 0x44fb -#define MN_vcvtqq2psx 0x4506 -#define MN_vcvtuqq2psx 0x4511 -#define MN_vfpclasspsx 0x451d -#define MN_movsx 0x4529 -#define MN_mwaitx 0x452f -#define MN_bndstx 0x4536 -#define MN_rex_wx 0x453d -#define MN_rexx 0x4544 -#define MN_vcvtps2phxx 0x4549 -#define MN_movzx 0x4555 -#define MN_rex64y 0x455b -#define MN_vcvtneps2bf16y 0x4562 -#define MN_vfpclasspdy 0x4571 -#define MN_loadiwkey 0x457d -#define MN_vcvtpd2phy 0x4587 -#define MN_vcvtdq2phy 0x4592 -#define MN_vcvtudq2phy 0x459d -#define MN_vcvtqq2phy 0x45a9 -#define MN_vcvtuqq2phy 0x45b4 -#define MN_vfpclassphy 0x45c0 -#define MN_vcvttpd2dqy 0x45cc -#define MN_vcvtpd2dqy 0x45d8 -#define MN_vcvttpd2udqy 0x45e3 -#define MN_vcvtpd2udqy 0x45f0 -#define MN_rmpquery 0x45fc -#define MN_clrssbsy 0x4605 -#define MN_setssbsy 0x460e -#define MN_vcvtpd2psy 0x4617 -#define MN_vcvtqq2psy 0x4622 -#define MN_vcvtuqq2psy 0x462d -#define MN_vfpclasspsy 0x4639 -#define MN_rex64xy 0x4645 -#define MN_rexy 0x464d -#define MN_vcvtps2phxy 0x4652 -#define MN_rexxy 0x465e -#define MN_rex64z 0x4664 -#define MN_fldz 0x466b -#define MN_vfpclasspdz 0x4670 -#define MN_vcvtpd2phz 0x467c -#define MN_vcvtqq2phz 0x4687 -#define MN_vcvtuqq2phz 0x4692 -#define MN_vfpclassphz 0x469e -#define MN_jz 0x46aa -#define MN_jnz 0x46ad -#define MN_repnz 0x46b1 -#define MN_loopnz 0x46b7 -#define MN_setnz 0x46be -#define MN_cmovnz 0x46c4 -#define MN_repz 0x46cb -#define MN_loopz 0x46d0 -#define MN_vfpclasspsz 0x46d6 -#define MN_setz 0x46e2 -#define MN_cmovz 0x46e7 -#define MN_rex64xz 0x46ed -#define MN_jecxz 0x46f5 -#define MN_jcxz 0x46fb -#define MN_jrcxz 0x4700 -#define MN_rexz 0x4706 -#define MN_rexxz 0x470b -#define MN_rex64yz 0x4711 -#define MN_rex64xyz 0x4719 -#define MN_rexyz 0x4722 -#define MN_rexxyz 0x4728 -#define MN__disp32_ 0x472f -#define MN__rex2_ 0x4738 -#define MN__vex2_ 0x473f -#define MN__vex3_ 0x4746 -#define MN__disp16_ 0x474d -#define MN__disp8_ 0x4756 -#define MN__load_ 0x475e -#define MN__store_ 0x4765 -#define MN__nooptimize_ 0x476d -#define MN__nf_ 0x477a -#define MN__rex_ 0x477f -#define MN__evex_ 0x4785 -#define MN__vex_ 0x478c -#define MN__insn 0x4792 +#define MN_vpmaxuw 0x4399 +#define MN_vpsravw 0x43a1 +#define MN_vpshldvw 0x43a9 +#define MN_vpshrdvw 0x43b2 +#define MN_vpsllvw 0x43bb +#define MN_vpsrlvw 0x43c3 +#define MN_kmovw 0x43cb +#define MN_vmovw 0x43d1 +#define MN_vpmacsww 0x43d7 +#define MN_vpmacssww 0x43e0 +#define MN_movzw 0x43ea +#define MN_rex_x 0x43f0 +#define MN_fyl2x 0x43f6 +#define MN_rex64x 0x43fc +#define MN_vcvtneps2bf16x 0x4403 +#define MN_pfmax 0x4412 +#define MN_adcx 0x4418 +#define MN_bndldx 0x441d +#define MN_vfpclasspdx 0x4424 +#define MN_fclex 0x4430 +#define MN_fnclex 0x4436 +#define MN_rex 0x443d +#define MN_vcvtpd2phx 0x4441 +#define MN_vcvtdq2phx 0x444c +#define MN_vcvtudq2phx 0x4457 +#define MN_vcvtqq2phx 0x4463 +#define MN_vcvtuqq2phx 0x446e +#define MN_vcvtps2phx 0x447a +#define MN_vfpclassphx 0x4485 +#define MN_shlx 0x4491 +#define MN_mulx 0x4496 +#define MN_adox 0x449b +#define MN_vcvttpd2dqx 0x44a0 +#define MN_vcvtpd2dqx 0x44ac +#define MN_vcvttpd2udqx 0x44b7 +#define MN_vcvtpd2udqx 0x44c4 +#define MN_rex_rx 0x44d0 +#define MN_sarx 0x44d7 +#define MN_shrx 0x44dc +#define MN_rorx 0x44e1 +#define MN_monitorx 0x44e6 +#define MN_rex_wrx 0x44ef +#define MN_vcvtpd2psx 0x44f7 +#define MN_vcvtph2psx 0x4502 +#define MN_vcvtqq2psx 0x450d +#define MN_vcvtuqq2psx 0x4518 +#define MN_vfpclasspsx 0x4524 +#define MN_movsx 0x4530 +#define MN_mwaitx 0x4536 +#define MN_bndstx 0x453d +#define MN_rex_wx 0x4544 +#define MN_rexx 0x454b +#define MN_vcvtps2phxx 0x4550 +#define MN_movzx 0x455c +#define MN_rex64y 0x4562 +#define MN_vcvtneps2bf16y 0x4569 +#define MN_vfpclasspdy 0x4578 +#define MN_loadiwkey 0x4584 +#define MN_vcvtpd2phy 0x458e +#define MN_vcvtdq2phy 0x4599 +#define MN_vcvtudq2phy 0x45a4 +#define MN_vcvtqq2phy 0x45b0 +#define MN_vcvtuqq2phy 0x45bb +#define MN_vfpclassphy 0x45c7 +#define MN_vcvttpd2dqy 0x45d3 +#define MN_vcvtpd2dqy 0x45df +#define MN_vcvttpd2udqy 0x45ea +#define MN_vcvtpd2udqy 0x45f7 +#define MN_rmpquery 0x4603 +#define MN_clrssbsy 0x460c +#define MN_setssbsy 0x4615 +#define MN_vcvtpd2psy 0x461e +#define MN_vcvtqq2psy 0x4629 +#define MN_vcvtuqq2psy 0x4634 +#define MN_vfpclasspsy 0x4640 +#define MN_rex64xy 0x464c +#define MN_rexy 0x4654 +#define MN_vcvtps2phxy 0x4659 +#define MN_rexxy 0x4665 +#define MN_rex64z 0x466b +#define MN_fldz 0x4672 +#define MN_vfpclasspdz 0x4677 +#define MN_vcvtpd2phz 0x4683 +#define MN_vcvtqq2phz 0x468e +#define MN_vcvtuqq2phz 0x4699 +#define MN_vfpclassphz 0x46a5 +#define MN_jz 0x46b1 +#define MN_jnz 0x46b4 +#define MN_repnz 0x46b8 +#define MN_loopnz 0x46be +#define MN_setnz 0x46c5 +#define MN_cmovnz 0x46cb +#define MN_repz 0x46d2 +#define MN_loopz 0x46d7 +#define MN_vfpclasspsz 0x46dd +#define MN_setz 0x46e9 +#define MN_cmovz 0x46ee +#define MN_rex64xz 0x46f4 +#define MN_jecxz 0x46fc +#define MN_jcxz 0x4702 +#define MN_jrcxz 0x4707 +#define MN_rexz 0x470d +#define MN_rexxz 0x4712 +#define MN_rex64yz 0x4718 +#define MN_rex64xyz 0x4720 +#define MN_rexyz 0x4729 +#define MN_rexxyz 0x472f +#define MN__disp32_ 0x4736 +#define MN__rex2_ 0x473f +#define MN__vex2_ 0x4746 +#define MN__vex3_ 0x474d +#define MN__disp16_ 0x4754 +#define MN__disp8_ 0x475d +#define MN__load_ 0x4765 +#define MN__store_ 0x476c +#define MN__nooptimize_ 0x4774 +#define MN__nf_ 0x4781 +#define MN__rex_ 0x4786 +#define MN__evex_ 0x478c +#define MN__vex_ 0x4793 +#define MN__insn 0x4799 diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl index 4e8ef15c28b..4d1b6742060 100644 --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -161,7 +161,7 @@ // Move instructions. mov, 0xa0, No64, D|W|CheckOperandSize|No_sSuf|No_qSuf, { Disp16|Disp32|Unspecified|Byte|Word|Dword, Acc|Byte|Word|Dword } -mov, 0xa0, x64, D|W|CheckOperandSize|No_sSuf, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword } +mov, 0xa0, x64, D|W|CheckOperandSize|No_sSuf|No_egpr, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword } movabs, 0xa0, x64, D|W|CheckOperandSize|No_sSuf, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword } mov, 0x88, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixRelease, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } // In the 64bit mode the short form mov immediate is redefined to have @@ -623,6 +623,8 @@ ljmp, 0xea, No64, JumpInterSegment|No_bSuf|No_sSuf|No_qSuf, { Imm16, Imm16|Imm32 ljmp, 0xff/5, 0, Amd64|Modrm|JumpAbsolute|No_bSuf|No_sSuf|No_qSuf, { Unspecified|BaseIndex } ljmp, 0xff/5, x64, Intel64|Modrm|JumpAbsolute|No_bSuf|No_sSuf, { Unspecified|BaseIndex } +jmpabs, 0xa1, APX_F|x64, JumpAbsolute|NoSuf, { Imm64 } + ret, 0xc3, No64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|RepPrefixOk|BNDPrefixOk, {} ret, 0xc2, No64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|RepPrefixOk|BNDPrefixOk, { Imm16 } ret, 0xc3, x64, Amd64|DefaultSize|No_bSuf|No_lSuf|No_sSuf|NoRex64|RepPrefixOk|BNDPrefixOk, {} diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h index 072527003a5..cb750552d7a 100644 --- a/opcodes/i386-tbl.h +++ b/opcodes/i386-tbl.h @@ -36,7 +36,7 @@ static const insn_template i386_optab[] = { MN_mov, 0xa0, 2, SPACE_BASE, None, { 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0 }, + 0, 1, 0, 0 }, { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } }, { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 } }, @@ -3052,6 +3052,13 @@ static const insn_template i386_optab[] = { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } }, { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } } } }, + { MN_jmpabs, 0xa1, 1, SPACE_BASE, None, + { 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0 }, + { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } }, + { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 } } } }, { MN_ret, 0xc3, 0, SPACE_BASE, None, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -39713,11 +39720,11 @@ static const insn_template *const i386_op_sets[] = i386_optab + 335, i386_optab + 343, i386_optab + 346, - i386_optab + 352, - i386_optab + 354, - i386_optab + 356, - i386_optab + 358, - i386_optab + 360, + i386_optab + 347, + i386_optab + 353, + i386_optab + 355, + i386_optab + 357, + i386_optab + 359, i386_optab + 361, i386_optab + 362, i386_optab + 363, @@ -39751,11 +39758,11 @@ static const insn_template *const i386_op_sets[] = i386_optab + 391, i386_optab + 392, i386_optab + 393, - i386_optab + 395, - i386_optab + 397, - i386_optab + 399, - i386_optab + 401, - i386_optab + 403, + i386_optab + 394, + i386_optab + 396, + i386_optab + 398, + i386_optab + 400, + i386_optab + 402, i386_optab + 404, i386_optab + 405, i386_optab + 406, @@ -39786,25 +39793,25 @@ static const insn_template *const i386_op_sets[] = i386_optab + 431, i386_optab + 432, i386_optab + 433, - i386_optab + 435, - i386_optab + 437, - i386_optab + 439, - i386_optab + 441, - i386_optab + 444, - i386_optab + 447, - i386_optab + 449, - i386_optab + 451, - i386_optab + 454, - i386_optab + 457, - i386_optab + 460, - i386_optab + 463, - i386_optab + 465, + i386_optab + 434, + i386_optab + 436, + i386_optab + 438, + i386_optab + 440, + i386_optab + 442, + i386_optab + 445, + i386_optab + 448, + i386_optab + 450, + i386_optab + 452, + i386_optab + 455, + i386_optab + 458, + i386_optab + 461, + i386_optab + 464, i386_optab + 466, i386_optab + 467, - i386_optab + 469, - i386_optab + 471, - i386_optab + 473, - i386_optab + 475, + i386_optab + 468, + i386_optab + 470, + i386_optab + 472, + i386_optab + 474, i386_optab + 476, i386_optab + 477, i386_optab + 478, @@ -39813,42 +39820,42 @@ static const insn_template *const i386_op_sets[] = i386_optab + 481, i386_optab + 482, i386_optab + 483, - i386_optab + 485, - i386_optab + 487, - i386_optab + 489, - i386_optab + 491, - i386_optab + 493, - i386_optab + 495, + i386_optab + 484, + i386_optab + 486, + i386_optab + 488, + i386_optab + 490, + i386_optab + 492, + i386_optab + 494, i386_optab + 496, - i386_optab + 498, - i386_optab + 500, - i386_optab + 502, - i386_optab + 504, - i386_optab + 506, - i386_optab + 508, - i386_optab + 510, - i386_optab + 512, - i386_optab + 514, - i386_optab + 518, - i386_optab + 520, + i386_optab + 497, + i386_optab + 499, + i386_optab + 501, + i386_optab + 503, + i386_optab + 505, + i386_optab + 507, + i386_optab + 509, + i386_optab + 511, + i386_optab + 513, + i386_optab + 515, + i386_optab + 519, i386_optab + 521, i386_optab + 522, i386_optab + 523, - i386_optab + 526, + i386_optab + 524, i386_optab + 527, - i386_optab + 531, - i386_optab + 533, + i386_optab + 528, + i386_optab + 532, i386_optab + 534, i386_optab + 535, i386_optab + 536, - i386_optab + 538, - i386_optab + 542, + i386_optab + 537, + i386_optab + 539, i386_optab + 543, - i386_optab + 547, + i386_optab + 544, i386_optab + 548, i386_optab + 549, - i386_optab + 551, - i386_optab + 553, + i386_optab + 550, + i386_optab + 552, i386_optab + 554, i386_optab + 555, i386_optab + 556, @@ -39859,24 +39866,24 @@ static const insn_template *const i386_op_sets[] = i386_optab + 561, i386_optab + 562, i386_optab + 563, - i386_optab + 567, + i386_optab + 564, i386_optab + 568, - i386_optab + 571, - i386_optab + 576, + i386_optab + 569, + i386_optab + 572, i386_optab + 577, - i386_optab + 583, - i386_optab + 588, + i386_optab + 578, + i386_optab + 584, i386_optab + 589, - i386_optab + 595, - i386_optab + 599, + i386_optab + 590, + i386_optab + 596, i386_optab + 600, - i386_optab + 603, - i386_optab + 608, + i386_optab + 601, + i386_optab + 604, i386_optab + 609, - i386_optab + 615, - i386_optab + 620, + i386_optab + 610, + i386_optab + 616, i386_optab + 621, - i386_optab + 627, + i386_optab + 622, i386_optab + 628, i386_optab + 629, i386_optab + 630, @@ -39900,8 +39907,8 @@ static const insn_template *const i386_op_sets[] = i386_optab + 648, i386_optab + 649, i386_optab + 650, - i386_optab + 653, - i386_optab + 656, + i386_optab + 651, + i386_optab + 654, i386_optab + 657, i386_optab + 658, i386_optab + 659, @@ -39999,8 +40006,8 @@ static const insn_template *const i386_op_sets[] = i386_optab + 751, i386_optab + 752, i386_optab + 753, - i386_optab + 755, - i386_optab + 757, + i386_optab + 754, + i386_optab + 756, i386_optab + 758, i386_optab + 759, i386_optab + 760, @@ -40011,36 +40018,36 @@ static const insn_template *const i386_op_sets[] = i386_optab + 765, i386_optab + 766, i386_optab + 767, - i386_optab + 769, - i386_optab + 771, - i386_optab + 773, - i386_optab + 775, - i386_optab + 777, - i386_optab + 779, - i386_optab + 781, - i386_optab + 783, - i386_optab + 785, - i386_optab + 787, - i386_optab + 789, - i386_optab + 791, - i386_optab + 793, - i386_optab + 795, - i386_optab + 797, - i386_optab + 799, - i386_optab + 801, - i386_optab + 803, - i386_optab + 805, - i386_optab + 807, - i386_optab + 809, - i386_optab + 811, - i386_optab + 813, - i386_optab + 815, - i386_optab + 817, - i386_optab + 819, - i386_optab + 821, - i386_optab + 823, - i386_optab + 825, - i386_optab + 827, + i386_optab + 768, + i386_optab + 770, + i386_optab + 772, + i386_optab + 774, + i386_optab + 776, + i386_optab + 778, + i386_optab + 780, + i386_optab + 782, + i386_optab + 784, + i386_optab + 786, + i386_optab + 788, + i386_optab + 790, + i386_optab + 792, + i386_optab + 794, + i386_optab + 796, + i386_optab + 798, + i386_optab + 800, + i386_optab + 802, + i386_optab + 804, + i386_optab + 806, + i386_optab + 808, + i386_optab + 810, + i386_optab + 812, + i386_optab + 814, + i386_optab + 816, + i386_optab + 818, + i386_optab + 820, + i386_optab + 822, + i386_optab + 824, + i386_optab + 826, i386_optab + 828, i386_optab + 829, i386_optab + 830, @@ -40053,325 +40060,325 @@ static const insn_template *const i386_op_sets[] = i386_optab + 837, i386_optab + 838, i386_optab + 839, - i386_optab + 842, - i386_optab + 845, - i386_optab + 848, - i386_optab + 851, - i386_optab + 854, - i386_optab + 857, + i386_optab + 840, + i386_optab + 843, + i386_optab + 846, + i386_optab + 849, + i386_optab + 852, + i386_optab + 855, i386_optab + 858, i386_optab + 859, i386_optab + 860, i386_optab + 861, i386_optab + 862, i386_optab + 863, - i386_optab + 869, - i386_optab + 877, - i386_optab + 880, - i386_optab + 883, - i386_optab + 886, - i386_optab + 889, - i386_optab + 892, - i386_optab + 895, - i386_optab + 898, - i386_optab + 901, - i386_optab + 904, - i386_optab + 907, - i386_optab + 910, - i386_optab + 913, - i386_optab + 916, - i386_optab + 919, - i386_optab + 922, - i386_optab + 925, - i386_optab + 928, - i386_optab + 931, - i386_optab + 934, - i386_optab + 937, - i386_optab + 940, - i386_optab + 943, - i386_optab + 946, - i386_optab + 952, - i386_optab + 958, - i386_optab + 964, - i386_optab + 970, - i386_optab + 976, - i386_optab + 982, - i386_optab + 988, - i386_optab + 994, - i386_optab + 997, - i386_optab + 1000, - i386_optab + 1003, - i386_optab + 1006, - i386_optab + 1009, - i386_optab + 1012, - i386_optab + 1015, - i386_optab + 1018, - i386_optab + 1021, - i386_optab + 1024, - i386_optab + 1027, - i386_optab + 1030, - i386_optab + 1033, - i386_optab + 1036, - i386_optab + 1039, - i386_optab + 1041, - i386_optab + 1043, - i386_optab + 1045, - i386_optab + 1047, - i386_optab + 1049, - i386_optab + 1051, - i386_optab + 1053, - i386_optab + 1055, - i386_optab + 1057, - i386_optab + 1059, - i386_optab + 1061, - i386_optab + 1063, - i386_optab + 1065, - i386_optab + 1067, - i386_optab + 1069, - i386_optab + 1071, - i386_optab + 1073, - i386_optab + 1075, - i386_optab + 1077, - i386_optab + 1079, - i386_optab + 1081, - i386_optab + 1083, - i386_optab + 1085, + i386_optab + 864, + i386_optab + 870, + i386_optab + 878, + i386_optab + 881, + i386_optab + 884, + i386_optab + 887, + i386_optab + 890, + i386_optab + 893, + i386_optab + 896, + i386_optab + 899, + i386_optab + 902, + i386_optab + 905, + i386_optab + 908, + i386_optab + 911, + i386_optab + 914, + i386_optab + 917, + i386_optab + 920, + i386_optab + 923, + i386_optab + 926, + i386_optab + 929, + i386_optab + 932, + i386_optab + 935, + i386_optab + 938, + i386_optab + 941, + i386_optab + 944, + i386_optab + 947, + i386_optab + 953, + i386_optab + 959, + i386_optab + 965, + i386_optab + 971, + i386_optab + 977, + i386_optab + 983, + i386_optab + 989, + i386_optab + 995, + i386_optab + 998, + i386_optab + 1001, + i386_optab + 1004, + i386_optab + 1007, + i386_optab + 1010, + i386_optab + 1013, + i386_optab + 1016, + i386_optab + 1019, + i386_optab + 1022, + i386_optab + 1025, + i386_optab + 1028, + i386_optab + 1031, + i386_optab + 1034, + i386_optab + 1037, + i386_optab + 1040, + i386_optab + 1042, + i386_optab + 1044, + i386_optab + 1046, + i386_optab + 1048, + i386_optab + 1050, + i386_optab + 1052, + i386_optab + 1054, + i386_optab + 1056, + i386_optab + 1058, + i386_optab + 1060, + i386_optab + 1062, + i386_optab + 1064, + i386_optab + 1066, + i386_optab + 1068, + i386_optab + 1070, + i386_optab + 1072, + i386_optab + 1074, + i386_optab + 1076, + i386_optab + 1078, + i386_optab + 1080, + i386_optab + 1082, + i386_optab + 1084, i386_optab + 1086, i386_optab + 1087, - i386_optab + 1093, - i386_optab + 1095, + i386_optab + 1088, + i386_optab + 1094, i386_optab + 1096, - i386_optab + 1098, - i386_optab + 1100, - i386_optab + 1102, - i386_optab + 1104, + i386_optab + 1097, + i386_optab + 1099, + i386_optab + 1101, + i386_optab + 1103, i386_optab + 1105, - i386_optab + 1107, - i386_optab + 1109, - i386_optab + 1111, - i386_optab + 1113, - i386_optab + 1115, - i386_optab + 1117, - i386_optab + 1120, - i386_optab + 1122, - i386_optab + 1125, - i386_optab + 1127, - i386_optab + 1129, + i386_optab + 1106, + i386_optab + 1108, + i386_optab + 1110, + i386_optab + 1112, + i386_optab + 1114, + i386_optab + 1116, + i386_optab + 1118, + i386_optab + 1121, + i386_optab + 1123, + i386_optab + 1126, + i386_optab + 1128, i386_optab + 1130, - i386_optab + 1132, - i386_optab + 1135, - i386_optab + 1137, - i386_optab + 1139, - i386_optab + 1141, - i386_optab + 1143, - i386_optab + 1146, - i386_optab + 1149, - i386_optab + 1156, - i386_optab + 1162, - i386_optab + 1165, - i386_optab + 1168, - i386_optab + 1171, - i386_optab + 1174, - i386_optab + 1177, - i386_optab + 1180, + i386_optab + 1131, + i386_optab + 1133, + i386_optab + 1136, + i386_optab + 1138, + i386_optab + 1140, + i386_optab + 1142, + i386_optab + 1144, + i386_optab + 1147, + i386_optab + 1150, + i386_optab + 1157, + i386_optab + 1163, + i386_optab + 1166, + i386_optab + 1169, + i386_optab + 1172, + i386_optab + 1175, + i386_optab + 1178, i386_optab + 1181, i386_optab + 1182, i386_optab + 1183, i386_optab + 1184, - i386_optab + 1187, + i386_optab + 1185, i386_optab + 1188, - i386_optab + 1190, - i386_optab + 1192, - i386_optab + 1194, - i386_optab + 1196, + i386_optab + 1189, + i386_optab + 1191, + i386_optab + 1193, + i386_optab + 1195, i386_optab + 1197, - i386_optab + 1199, - i386_optab + 1201, - i386_optab + 1203, - i386_optab + 1205, - i386_optab + 1207, - i386_optab + 1209, - i386_optab + 1211, - i386_optab + 1213, - i386_optab + 1215, - i386_optab + 1217, - i386_optab + 1219, - i386_optab + 1221, - i386_optab + 1223, - i386_optab + 1225, - i386_optab + 1227, - i386_optab + 1229, - i386_optab + 1231, - i386_optab + 1233, - i386_optab + 1235, - i386_optab + 1237, - i386_optab + 1239, - i386_optab + 1241, - i386_optab + 1243, - i386_optab + 1245, - i386_optab + 1247, - i386_optab + 1249, - i386_optab + 1251, - i386_optab + 1253, - i386_optab + 1255, - i386_optab + 1257, - i386_optab + 1259, - i386_optab + 1261, - i386_optab + 1263, - i386_optab + 1266, - i386_optab + 1272, - i386_optab + 1274, - i386_optab + 1276, - i386_optab + 1278, - i386_optab + 1280, - i386_optab + 1282, - i386_optab + 1284, - i386_optab + 1286, - i386_optab + 1289, - i386_optab + 1292, - i386_optab + 1294, - i386_optab + 1296, - i386_optab + 1299, - i386_optab + 1301, - i386_optab + 1303, - i386_optab + 1305, - i386_optab + 1307, - i386_optab + 1309, - i386_optab + 1311, - i386_optab + 1313, - i386_optab + 1315, - i386_optab + 1317, - i386_optab + 1319, - i386_optab + 1321, - i386_optab + 1323, - i386_optab + 1325, - i386_optab + 1327, - i386_optab + 1329, - i386_optab + 1331, + i386_optab + 1198, + i386_optab + 1200, + i386_optab + 1202, + i386_optab + 1204, + i386_optab + 1206, + i386_optab + 1208, + i386_optab + 1210, + i386_optab + 1212, + i386_optab + 1214, + i386_optab + 1216, + i386_optab + 1218, + i386_optab + 1220, + i386_optab + 1222, + i386_optab + 1224, + i386_optab + 1226, + i386_optab + 1228, + i386_optab + 1230, + i386_optab + 1232, + i386_optab + 1234, + i386_optab + 1236, + i386_optab + 1238, + i386_optab + 1240, + i386_optab + 1242, + i386_optab + 1244, + i386_optab + 1246, + i386_optab + 1248, + i386_optab + 1250, + i386_optab + 1252, + i386_optab + 1254, + i386_optab + 1256, + i386_optab + 1258, + i386_optab + 1260, + i386_optab + 1262, + i386_optab + 1264, + i386_optab + 1267, + i386_optab + 1273, + i386_optab + 1275, + i386_optab + 1277, + i386_optab + 1279, + i386_optab + 1281, + i386_optab + 1283, + i386_optab + 1285, + i386_optab + 1287, + i386_optab + 1290, + i386_optab + 1293, + i386_optab + 1295, + i386_optab + 1297, + i386_optab + 1300, + i386_optab + 1302, + i386_optab + 1304, + i386_optab + 1306, + i386_optab + 1308, + i386_optab + 1310, + i386_optab + 1312, + i386_optab + 1314, + i386_optab + 1316, + i386_optab + 1318, + i386_optab + 1320, + i386_optab + 1322, + i386_optab + 1324, + i386_optab + 1326, + i386_optab + 1328, + i386_optab + 1330, i386_optab + 1332, - i386_optab + 1334, - i386_optab + 1336, - i386_optab + 1338, - i386_optab + 1340, - i386_optab + 1342, - i386_optab + 1344, + i386_optab + 1333, + i386_optab + 1335, + i386_optab + 1337, + i386_optab + 1339, + i386_optab + 1341, + i386_optab + 1343, i386_optab + 1345, - i386_optab + 1347, - i386_optab + 1349, - i386_optab + 1351, - i386_optab + 1353, - i386_optab + 1355, - i386_optab + 1357, + i386_optab + 1346, + i386_optab + 1348, + i386_optab + 1350, + i386_optab + 1352, + i386_optab + 1354, + i386_optab + 1356, i386_optab + 1358, i386_optab + 1359, - i386_optab + 1362, - i386_optab + 1364, - i386_optab + 1366, - i386_optab + 1368, - i386_optab + 1370, - i386_optab + 1372, - i386_optab + 1374, - i386_optab + 1376, - i386_optab + 1378, - i386_optab + 1380, - i386_optab + 1382, - i386_optab + 1384, - i386_optab + 1386, - i386_optab + 1388, - i386_optab + 1390, - i386_optab + 1392, - i386_optab + 1394, - i386_optab + 1396, - i386_optab + 1398, + i386_optab + 1360, + i386_optab + 1363, + i386_optab + 1365, + i386_optab + 1367, + i386_optab + 1369, + i386_optab + 1371, + i386_optab + 1373, + i386_optab + 1375, + i386_optab + 1377, + i386_optab + 1379, + i386_optab + 1381, + i386_optab + 1383, + i386_optab + 1385, + i386_optab + 1387, + i386_optab + 1389, + i386_optab + 1391, + i386_optab + 1393, + i386_optab + 1395, + i386_optab + 1397, i386_optab + 1399, i386_optab + 1400, - i386_optab + 1403, - i386_optab + 1405, + i386_optab + 1401, + i386_optab + 1404, i386_optab + 1406, i386_optab + 1407, i386_optab + 1408, i386_optab + 1409, i386_optab + 1410, i386_optab + 1411, - i386_optab + 1413, - i386_optab + 1415, + i386_optab + 1412, + i386_optab + 1414, i386_optab + 1416, i386_optab + 1417, i386_optab + 1418, i386_optab + 1419, - i386_optab + 1422, - i386_optab + 1425, - i386_optab + 1428, - i386_optab + 1431, - i386_optab + 1434, - i386_optab + 1437, - i386_optab + 1440, - i386_optab + 1443, - i386_optab + 1446, - i386_optab + 1449, - i386_optab + 1452, - i386_optab + 1455, - i386_optab + 1458, - i386_optab + 1461, - i386_optab + 1464, - i386_optab + 1467, - i386_optab + 1470, - i386_optab + 1473, - i386_optab + 1476, - i386_optab + 1478, - i386_optab + 1480, - i386_optab + 1484, - i386_optab + 1488, - i386_optab + 1490, - i386_optab + 1492, - i386_optab + 1496, - i386_optab + 1498, - i386_optab + 1500, - i386_optab + 1502, - i386_optab + 1504, - i386_optab + 1508, - i386_optab + 1510, - i386_optab + 1512, - i386_optab + 1516, - i386_optab + 1518, - i386_optab + 1520, - i386_optab + 1522, - i386_optab + 1526, - i386_optab + 1528, - i386_optab + 1530, - i386_optab + 1532, - i386_optab + 1534, - i386_optab + 1536, - i386_optab + 1538, - i386_optab + 1540, - i386_optab + 1542, - i386_optab + 1544, - i386_optab + 1546, - i386_optab + 1548, - i386_optab + 1550, - i386_optab + 1552, - i386_optab + 1554, - i386_optab + 1556, - i386_optab + 1558, - i386_optab + 1560, - i386_optab + 1562, - i386_optab + 1564, - i386_optab + 1566, - i386_optab + 1568, - i386_optab + 1570, - i386_optab + 1572, - i386_optab + 1574, - i386_optab + 1576, - i386_optab + 1578, - i386_optab + 1580, - i386_optab + 1582, - i386_optab + 1584, - i386_optab + 1586, - i386_optab + 1590, - i386_optab + 1594, - i386_optab + 1596, - i386_optab + 1598, - i386_optab + 1602, + i386_optab + 1420, + i386_optab + 1423, + i386_optab + 1426, + i386_optab + 1429, + i386_optab + 1432, + i386_optab + 1435, + i386_optab + 1438, + i386_optab + 1441, + i386_optab + 1444, + i386_optab + 1447, + i386_optab + 1450, + i386_optab + 1453, + i386_optab + 1456, + i386_optab + 1459, + i386_optab + 1462, + i386_optab + 1465, + i386_optab + 1468, + i386_optab + 1471, + i386_optab + 1474, + i386_optab + 1477, + i386_optab + 1479, + i386_optab + 1481, + i386_optab + 1485, + i386_optab + 1489, + i386_optab + 1491, + i386_optab + 1493, + i386_optab + 1497, + i386_optab + 1499, + i386_optab + 1501, + i386_optab + 1503, + i386_optab + 1505, + i386_optab + 1509, + i386_optab + 1511, + i386_optab + 1513, + i386_optab + 1517, + i386_optab + 1519, + i386_optab + 1521, + i386_optab + 1523, + i386_optab + 1527, + i386_optab + 1529, + i386_optab + 1531, + i386_optab + 1533, + i386_optab + 1535, + i386_optab + 1537, + i386_optab + 1539, + i386_optab + 1541, + i386_optab + 1543, + i386_optab + 1545, + i386_optab + 1547, + i386_optab + 1549, + i386_optab + 1551, + i386_optab + 1553, + i386_optab + 1555, + i386_optab + 1557, + i386_optab + 1559, + i386_optab + 1561, + i386_optab + 1563, + i386_optab + 1565, + i386_optab + 1567, + i386_optab + 1569, + i386_optab + 1571, + i386_optab + 1573, + i386_optab + 1575, + i386_optab + 1577, + i386_optab + 1579, + i386_optab + 1581, + i386_optab + 1583, + i386_optab + 1585, + i386_optab + 1587, + i386_optab + 1591, + i386_optab + 1595, + i386_optab + 1597, + i386_optab + 1599, i386_optab + 1603, i386_optab + 1604, i386_optab + 1605, @@ -40380,349 +40387,349 @@ static const insn_template *const i386_op_sets[] = i386_optab + 1608, i386_optab + 1609, i386_optab + 1610, - i386_optab + 1612, - i386_optab + 1614, - i386_optab + 1616, - i386_optab + 1618, - i386_optab + 1620, - i386_optab + 1622, - i386_optab + 1624, - i386_optab + 1626, - i386_optab + 1628, - i386_optab + 1630, - i386_optab + 1632, - i386_optab + 1634, - i386_optab + 1636, - i386_optab + 1638, - i386_optab + 1640, - i386_optab + 1642, - i386_optab + 1644, - i386_optab + 1646, + i386_optab + 1611, + i386_optab + 1613, + i386_optab + 1615, + i386_optab + 1617, + i386_optab + 1619, + i386_optab + 1621, + i386_optab + 1623, + i386_optab + 1625, + i386_optab + 1627, + i386_optab + 1629, + i386_optab + 1631, + i386_optab + 1633, + i386_optab + 1635, + i386_optab + 1637, + i386_optab + 1639, + i386_optab + 1641, + i386_optab + 1643, + i386_optab + 1645, i386_optab + 1647, i386_optab + 1648, - i386_optab + 1650, - i386_optab + 1652, - i386_optab + 1654, - i386_optab + 1656, + i386_optab + 1649, + i386_optab + 1651, + i386_optab + 1653, + i386_optab + 1655, i386_optab + 1657, i386_optab + 1658, i386_optab + 1659, i386_optab + 1660, i386_optab + 1661, - i386_optab + 1664, - i386_optab + 1667, - i386_optab + 1669, - i386_optab + 1671, - i386_optab + 1673, - i386_optab + 1675, - i386_optab + 1677, - i386_optab + 1679, - i386_optab + 1681, - i386_optab + 1683, - i386_optab + 1685, - i386_optab + 1687, - i386_optab + 1689, - i386_optab + 1691, - i386_optab + 1693, - i386_optab + 1695, - i386_optab + 1697, - i386_optab + 1699, - i386_optab + 1701, - i386_optab + 1703, - i386_optab + 1705, - i386_optab + 1707, - i386_optab + 1709, - i386_optab + 1711, - i386_optab + 1713, - i386_optab + 1715, - i386_optab + 1717, - i386_optab + 1719, - i386_optab + 1721, - i386_optab + 1723, - i386_optab + 1725, - i386_optab + 1727, - i386_optab + 1729, - i386_optab + 1731, - i386_optab + 1733, - i386_optab + 1735, - i386_optab + 1737, - i386_optab + 1739, - i386_optab + 1741, - i386_optab + 1743, - i386_optab + 1745, - i386_optab + 1747, - i386_optab + 1749, - i386_optab + 1751, - i386_optab + 1753, - i386_optab + 1755, - i386_optab + 1757, - i386_optab + 1759, - i386_optab + 1761, - i386_optab + 1763, - i386_optab + 1765, - i386_optab + 1767, - i386_optab + 1769, - i386_optab + 1771, - i386_optab + 1773, - i386_optab + 1775, - i386_optab + 1777, - i386_optab + 1779, - i386_optab + 1781, - i386_optab + 1783, - i386_optab + 1785, - i386_optab + 1787, - i386_optab + 1789, - i386_optab + 1791, - i386_optab + 1793, - i386_optab + 1795, - i386_optab + 1797, - i386_optab + 1799, - i386_optab + 1801, - i386_optab + 1803, - i386_optab + 1805, - i386_optab + 1807, - i386_optab + 1809, - i386_optab + 1811, - i386_optab + 1813, - i386_optab + 1815, - i386_optab + 1817, - i386_optab + 1819, - i386_optab + 1821, - i386_optab + 1823, - i386_optab + 1825, - i386_optab + 1827, - i386_optab + 1829, - i386_optab + 1831, - i386_optab + 1833, - i386_optab + 1835, - i386_optab + 1837, - i386_optab + 1839, - i386_optab + 1841, - i386_optab + 1843, - i386_optab + 1845, - i386_optab + 1847, - i386_optab + 1849, - i386_optab + 1851, - i386_optab + 1853, - i386_optab + 1855, - i386_optab + 1857, - i386_optab + 1859, - i386_optab + 1861, - i386_optab + 1863, - i386_optab + 1865, - i386_optab + 1867, - i386_optab + 1869, - i386_optab + 1871, - i386_optab + 1873, - i386_optab + 1875, - i386_optab + 1877, - i386_optab + 1879, - i386_optab + 1881, - i386_optab + 1883, - i386_optab + 1885, - i386_optab + 1887, - i386_optab + 1889, - i386_optab + 1891, - i386_optab + 1893, - i386_optab + 1895, - i386_optab + 1897, - i386_optab + 1899, - i386_optab + 1901, - i386_optab + 1903, - i386_optab + 1905, - i386_optab + 1907, - i386_optab + 1909, - i386_optab + 1911, - i386_optab + 1913, - i386_optab + 1915, - i386_optab + 1917, - i386_optab + 1919, - i386_optab + 1921, - i386_optab + 1923, - i386_optab + 1925, - i386_optab + 1927, - i386_optab + 1929, - i386_optab + 1931, - i386_optab + 1933, - i386_optab + 1935, - i386_optab + 1937, - i386_optab + 1939, - i386_optab + 1941, - i386_optab + 1943, - i386_optab + 1945, - i386_optab + 1947, - i386_optab + 1949, - i386_optab + 1951, - i386_optab + 1953, - i386_optab + 1955, - i386_optab + 1957, - i386_optab + 1959, - i386_optab + 1961, - i386_optab + 1963, - i386_optab + 1965, - i386_optab + 1967, - i386_optab + 1969, - i386_optab + 1971, - i386_optab + 1973, - i386_optab + 1975, - i386_optab + 1977, - i386_optab + 1979, - i386_optab + 1981, - i386_optab + 1983, - i386_optab + 1985, - i386_optab + 1987, - i386_optab + 1989, - i386_optab + 1991, - i386_optab + 1993, - i386_optab + 1995, - i386_optab + 1997, - i386_optab + 1999, - i386_optab + 2001, - i386_optab + 2003, - i386_optab + 2005, - i386_optab + 2007, - i386_optab + 2009, - i386_optab + 2011, - i386_optab + 2013, - i386_optab + 2015, - i386_optab + 2017, - i386_optab + 2019, - i386_optab + 2021, - i386_optab + 2023, - i386_optab + 2025, - i386_optab + 2027, - i386_optab + 2029, - i386_optab + 2031, - i386_optab + 2033, - i386_optab + 2035, - i386_optab + 2037, - i386_optab + 2039, - i386_optab + 2041, - i386_optab + 2043, - i386_optab + 2045, - i386_optab + 2047, - i386_optab + 2052, - i386_optab + 2054, - i386_optab + 2059, - i386_optab + 2061, - i386_optab + 2063, - i386_optab + 2068, - i386_optab + 2070, - i386_optab + 2072, - i386_optab + 2074, - i386_optab + 2079, - i386_optab + 2081, - i386_optab + 2083, - i386_optab + 2085, - i386_optab + 2089, - i386_optab + 2095, - i386_optab + 2097, - i386_optab + 2102, - i386_optab + 2104, - i386_optab + 2106, - i386_optab + 2108, - i386_optab + 2110, - i386_optab + 2112, - i386_optab + 2114, - i386_optab + 2116, - i386_optab + 2118, - i386_optab + 2120, + i386_optab + 1662, + i386_optab + 1665, + i386_optab + 1668, + i386_optab + 1670, + i386_optab + 1672, + i386_optab + 1674, + i386_optab + 1676, + i386_optab + 1678, + i386_optab + 1680, + i386_optab + 1682, + i386_optab + 1684, + i386_optab + 1686, + i386_optab + 1688, + i386_optab + 1690, + i386_optab + 1692, + i386_optab + 1694, + i386_optab + 1696, + i386_optab + 1698, + i386_optab + 1700, + i386_optab + 1702, + i386_optab + 1704, + i386_optab + 1706, + i386_optab + 1708, + i386_optab + 1710, + i386_optab + 1712, + i386_optab + 1714, + i386_optab + 1716, + i386_optab + 1718, + i386_optab + 1720, + i386_optab + 1722, + i386_optab + 1724, + i386_optab + 1726, + i386_optab + 1728, + i386_optab + 1730, + i386_optab + 1732, + i386_optab + 1734, + i386_optab + 1736, + i386_optab + 1738, + i386_optab + 1740, + i386_optab + 1742, + i386_optab + 1744, + i386_optab + 1746, + i386_optab + 1748, + i386_optab + 1750, + i386_optab + 1752, + i386_optab + 1754, + i386_optab + 1756, + i386_optab + 1758, + i386_optab + 1760, + i386_optab + 1762, + i386_optab + 1764, + i386_optab + 1766, + i386_optab + 1768, + i386_optab + 1770, + i386_optab + 1772, + i386_optab + 1774, + i386_optab + 1776, + i386_optab + 1778, + i386_optab + 1780, + i386_optab + 1782, + i386_optab + 1784, + i386_optab + 1786, + i386_optab + 1788, + i386_optab + 1790, + i386_optab + 1792, + i386_optab + 1794, + i386_optab + 1796, + i386_optab + 1798, + i386_optab + 1800, + i386_optab + 1802, + i386_optab + 1804, + i386_optab + 1806, + i386_optab + 1808, + i386_optab + 1810, + i386_optab + 1812, + i386_optab + 1814, + i386_optab + 1816, + i386_optab + 1818, + i386_optab + 1820, + i386_optab + 1822, + i386_optab + 1824, + i386_optab + 1826, + i386_optab + 1828, + i386_optab + 1830, + i386_optab + 1832, + i386_optab + 1834, + i386_optab + 1836, + i386_optab + 1838, + i386_optab + 1840, + i386_optab + 1842, + i386_optab + 1844, + i386_optab + 1846, + i386_optab + 1848, + i386_optab + 1850, + i386_optab + 1852, + i386_optab + 1854, + i386_optab + 1856, + i386_optab + 1858, + i386_optab + 1860, + i386_optab + 1862, + i386_optab + 1864, + i386_optab + 1866, + i386_optab + 1868, + i386_optab + 1870, + i386_optab + 1872, + i386_optab + 1874, + i386_optab + 1876, + i386_optab + 1878, + i386_optab + 1880, + i386_optab + 1882, + i386_optab + 1884, + i386_optab + 1886, + i386_optab + 1888, + i386_optab + 1890, + i386_optab + 1892, + i386_optab + 1894, + i386_optab + 1896, + i386_optab + 1898, + i386_optab + 1900, + i386_optab + 1902, + i386_optab + 1904, + i386_optab + 1906, + i386_optab + 1908, + i386_optab + 1910, + i386_optab + 1912, + i386_optab + 1914, + i386_optab + 1916, + i386_optab + 1918, + i386_optab + 1920, + i386_optab + 1922, + i386_optab + 1924, + i386_optab + 1926, + i386_optab + 1928, + i386_optab + 1930, + i386_optab + 1932, + i386_optab + 1934, + i386_optab + 1936, + i386_optab + 1938, + i386_optab + 1940, + i386_optab + 1942, + i386_optab + 1944, + i386_optab + 1946, + i386_optab + 1948, + i386_optab + 1950, + i386_optab + 1952, + i386_optab + 1954, + i386_optab + 1956, + i386_optab + 1958, + i386_optab + 1960, + i386_optab + 1962, + i386_optab + 1964, + i386_optab + 1966, + i386_optab + 1968, + i386_optab + 1970, + i386_optab + 1972, + i386_optab + 1974, + i386_optab + 1976, + i386_optab + 1978, + i386_optab + 1980, + i386_optab + 1982, + i386_optab + 1984, + i386_optab + 1986, + i386_optab + 1988, + i386_optab + 1990, + i386_optab + 1992, + i386_optab + 1994, + i386_optab + 1996, + i386_optab + 1998, + i386_optab + 2000, + i386_optab + 2002, + i386_optab + 2004, + i386_optab + 2006, + i386_optab + 2008, + i386_optab + 2010, + i386_optab + 2012, + i386_optab + 2014, + i386_optab + 2016, + i386_optab + 2018, + i386_optab + 2020, + i386_optab + 2022, + i386_optab + 2024, + i386_optab + 2026, + i386_optab + 2028, + i386_optab + 2030, + i386_optab + 2032, + i386_optab + 2034, + i386_optab + 2036, + i386_optab + 2038, + i386_optab + 2040, + i386_optab + 2042, + i386_optab + 2044, + i386_optab + 2046, + i386_optab + 2048, + i386_optab + 2053, + i386_optab + 2055, + i386_optab + 2060, + i386_optab + 2062, + i386_optab + 2064, + i386_optab + 2069, + i386_optab + 2071, + i386_optab + 2073, + i386_optab + 2075, + i386_optab + 2080, + i386_optab + 2082, + i386_optab + 2084, + i386_optab + 2086, + i386_optab + 2090, + i386_optab + 2096, + i386_optab + 2098, + i386_optab + 2103, + i386_optab + 2105, + i386_optab + 2107, + i386_optab + 2109, + i386_optab + 2111, + i386_optab + 2113, + i386_optab + 2115, + i386_optab + 2117, + i386_optab + 2119, i386_optab + 2121, i386_optab + 2122, i386_optab + 2123, - i386_optab + 2127, + i386_optab + 2124, i386_optab + 2128, i386_optab + 2129, i386_optab + 2130, i386_optab + 2131, i386_optab + 2132, - i386_optab + 2134, + i386_optab + 2133, i386_optab + 2135, i386_optab + 2136, i386_optab + 2137, - i386_optab + 2139, - i386_optab + 2141, - i386_optab + 2143, - i386_optab + 2145, - i386_optab + 2147, - i386_optab + 2149, - i386_optab + 2151, - i386_optab + 2153, - i386_optab + 2155, - i386_optab + 2157, - i386_optab + 2159, - i386_optab + 2161, - i386_optab + 2164, - i386_optab + 2168, + i386_optab + 2138, + i386_optab + 2140, + i386_optab + 2142, + i386_optab + 2144, + i386_optab + 2146, + i386_optab + 2148, + i386_optab + 2150, + i386_optab + 2152, + i386_optab + 2154, + i386_optab + 2156, + i386_optab + 2158, + i386_optab + 2160, + i386_optab + 2162, + i386_optab + 2165, i386_optab + 2169, i386_optab + 2170, - i386_optab + 2172, - i386_optab + 2176, - i386_optab + 2180, - i386_optab + 2182, - i386_optab + 2186, - i386_optab + 2190, + i386_optab + 2171, + i386_optab + 2173, + i386_optab + 2177, + i386_optab + 2181, + i386_optab + 2183, + i386_optab + 2187, i386_optab + 2191, i386_optab + 2192, - i386_optab + 2194, - i386_optab + 2196, - i386_optab + 2198, - i386_optab + 2200, - i386_optab + 2206, - i386_optab + 2210, - i386_optab + 2214, - i386_optab + 2216, - i386_optab + 2218, - i386_optab + 2220, - i386_optab + 2222, + i386_optab + 2193, + i386_optab + 2195, + i386_optab + 2197, + i386_optab + 2199, + i386_optab + 2201, + i386_optab + 2207, + i386_optab + 2211, + i386_optab + 2215, + i386_optab + 2217, + i386_optab + 2219, + i386_optab + 2221, i386_optab + 2223, - i386_optab + 2225, - i386_optab + 2227, - i386_optab + 2229, - i386_optab + 2231, - i386_optab + 2233, - i386_optab + 2235, - i386_optab + 2237, - i386_optab + 2239, - i386_optab + 2241, - i386_optab + 2243, - i386_optab + 2245, - i386_optab + 2247, - i386_optab + 2249, - i386_optab + 2251, - i386_optab + 2253, - i386_optab + 2255, - i386_optab + 2257, - i386_optab + 2259, - i386_optab + 2261, - i386_optab + 2263, - i386_optab + 2265, - i386_optab + 2267, + i386_optab + 2224, + i386_optab + 2226, + i386_optab + 2228, + i386_optab + 2230, + i386_optab + 2232, + i386_optab + 2234, + i386_optab + 2236, + i386_optab + 2238, + i386_optab + 2240, + i386_optab + 2242, + i386_optab + 2244, + i386_optab + 2246, + i386_optab + 2248, + i386_optab + 2250, + i386_optab + 2252, + i386_optab + 2254, + i386_optab + 2256, + i386_optab + 2258, + i386_optab + 2260, + i386_optab + 2262, + i386_optab + 2264, + i386_optab + 2266, i386_optab + 2268, i386_optab + 2269, - i386_optab + 2271, - i386_optab + 2273, + i386_optab + 2270, + i386_optab + 2272, i386_optab + 2274, i386_optab + 2275, - i386_optab + 2278, - i386_optab + 2281, - i386_optab + 2284, - i386_optab + 2287, - i386_optab + 2289, - i386_optab + 2291, - i386_optab + 2293, - i386_optab + 2295, - i386_optab + 2297, - i386_optab + 2299, + i386_optab + 2276, + i386_optab + 2279, + i386_optab + 2282, + i386_optab + 2285, + i386_optab + 2288, + i386_optab + 2290, + i386_optab + 2292, + i386_optab + 2294, + i386_optab + 2296, + i386_optab + 2298, i386_optab + 2300, i386_optab + 2301, i386_optab + 2302, - i386_optab + 2306, - i386_optab + 2310, - i386_optab + 2312, - i386_optab + 2314, - i386_optab + 2320, - i386_optab + 2324, + i386_optab + 2303, + i386_optab + 2307, + i386_optab + 2311, + i386_optab + 2313, + i386_optab + 2315, + i386_optab + 2321, i386_optab + 2325, i386_optab + 2326, i386_optab + 2327, @@ -40730,80 +40737,80 @@ static const insn_template *const i386_op_sets[] = i386_optab + 2329, i386_optab + 2330, i386_optab + 2331, - i386_optab + 2335, - i386_optab + 2337, - i386_optab + 2339, - i386_optab + 2343, - i386_optab + 2345, - i386_optab + 2347, - i386_optab + 2349, - i386_optab + 2351, - i386_optab + 2353, - i386_optab + 2355, - i386_optab + 2357, - i386_optab + 2359, - i386_optab + 2361, - i386_optab + 2363, - i386_optab + 2365, - i386_optab + 2367, - i386_optab + 2369, - i386_optab + 2371, + i386_optab + 2332, + i386_optab + 2336, + i386_optab + 2338, + i386_optab + 2340, + i386_optab + 2344, + i386_optab + 2346, + i386_optab + 2348, + i386_optab + 2350, + i386_optab + 2352, + i386_optab + 2354, + i386_optab + 2356, + i386_optab + 2358, + i386_optab + 2360, + i386_optab + 2362, + i386_optab + 2364, + i386_optab + 2366, + i386_optab + 2368, + i386_optab + 2370, i386_optab + 2372, - i386_optab + 2377, - i386_optab + 2382, - i386_optab + 2387, - i386_optab + 2392, - i386_optab + 2397, - i386_optab + 2402, - i386_optab + 2407, - i386_optab + 2412, - i386_optab + 2417, - i386_optab + 2422, - i386_optab + 2427, - i386_optab + 2432, - i386_optab + 2434, - i386_optab + 2436, - i386_optab + 2438, - i386_optab + 2440, - i386_optab + 2442, - i386_optab + 2444, - i386_optab + 2446, + i386_optab + 2373, + i386_optab + 2378, + i386_optab + 2383, + i386_optab + 2388, + i386_optab + 2393, + i386_optab + 2398, + i386_optab + 2403, + i386_optab + 2408, + i386_optab + 2413, + i386_optab + 2418, + i386_optab + 2423, + i386_optab + 2428, + i386_optab + 2433, + i386_optab + 2435, + i386_optab + 2437, + i386_optab + 2439, + i386_optab + 2441, + i386_optab + 2443, + i386_optab + 2445, i386_optab + 2447, - i386_optab + 2449, - i386_optab + 2451, - i386_optab + 2453, - i386_optab + 2455, - i386_optab + 2457, + i386_optab + 2448, + i386_optab + 2450, + i386_optab + 2452, + i386_optab + 2454, + i386_optab + 2456, i386_optab + 2458, i386_optab + 2459, i386_optab + 2460, - i386_optab + 2464, - i386_optab + 2468, - i386_optab + 2470, - i386_optab + 2474, - i386_optab + 2478, - i386_optab + 2482, - i386_optab + 2486, - i386_optab + 2490, - i386_optab + 2492, - i386_optab + 2496, - i386_optab + 2498, - i386_optab + 2500, - i386_optab + 2502, - i386_optab + 2504, - i386_optab + 2506, - i386_optab + 2508, - i386_optab + 2510, - i386_optab + 2512, + i386_optab + 2461, + i386_optab + 2465, + i386_optab + 2469, + i386_optab + 2471, + i386_optab + 2475, + i386_optab + 2479, + i386_optab + 2483, + i386_optab + 2487, + i386_optab + 2491, + i386_optab + 2493, + i386_optab + 2497, + i386_optab + 2499, + i386_optab + 2501, + i386_optab + 2503, + i386_optab + 2505, + i386_optab + 2507, + i386_optab + 2509, + i386_optab + 2511, i386_optab + 2513, - i386_optab + 2515, - i386_optab + 2517, - i386_optab + 2519, - i386_optab + 2521, - i386_optab + 2523, - i386_optab + 2525, - i386_optab + 2527, - i386_optab + 2529, + i386_optab + 2514, + i386_optab + 2516, + i386_optab + 2518, + i386_optab + 2520, + i386_optab + 2522, + i386_optab + 2524, + i386_optab + 2526, + i386_optab + 2528, i386_optab + 2530, i386_optab + 2531, i386_optab + 2532, @@ -40813,152 +40820,152 @@ static const insn_template *const i386_op_sets[] = i386_optab + 2536, i386_optab + 2537, i386_optab + 2538, - i386_optab + 2540, - i386_optab + 2542, - i386_optab + 2544, - i386_optab + 2546, - i386_optab + 2548, - i386_optab + 2550, + i386_optab + 2539, + i386_optab + 2541, + i386_optab + 2543, + i386_optab + 2545, + i386_optab + 2547, + i386_optab + 2549, i386_optab + 2551, - i386_optab + 2553, - i386_optab + 2555, - i386_optab + 2557, - i386_optab + 2559, + i386_optab + 2552, + i386_optab + 2554, + i386_optab + 2556, + i386_optab + 2558, i386_optab + 2560, i386_optab + 2561, - i386_optab + 2563, - i386_optab + 2565, - i386_optab + 2567, - i386_optab + 2569, - i386_optab + 2571, - i386_optab + 2573, - i386_optab + 2575, - i386_optab + 2577, + i386_optab + 2562, + i386_optab + 2564, + i386_optab + 2566, + i386_optab + 2568, + i386_optab + 2570, + i386_optab + 2572, + i386_optab + 2574, + i386_optab + 2576, i386_optab + 2578, i386_optab + 2579, i386_optab + 2580, i386_optab + 2581, - i386_optab + 2584, - i386_optab + 2587, - i386_optab + 2590, - i386_optab + 2593, + i386_optab + 2582, + i386_optab + 2585, + i386_optab + 2588, + i386_optab + 2591, i386_optab + 2594, - i386_optab + 2596, - i386_optab + 2599, - i386_optab + 2601, - i386_optab + 2604, + i386_optab + 2595, + i386_optab + 2597, + i386_optab + 2600, + i386_optab + 2602, i386_optab + 2605, i386_optab + 2606, - i386_optab + 2608, - i386_optab + 2610, - i386_optab + 2612, - i386_optab + 2614, - i386_optab + 2616, - i386_optab + 2618, - i386_optab + 2620, - i386_optab + 2623, - i386_optab + 2628, - i386_optab + 2633, - i386_optab + 2638, - i386_optab + 2643, - i386_optab + 2646, - i386_optab + 2651, - i386_optab + 2656, - i386_optab + 2659, - i386_optab + 2662, - i386_optab + 2665, - i386_optab + 2668, + i386_optab + 2607, + i386_optab + 2609, + i386_optab + 2611, + i386_optab + 2613, + i386_optab + 2615, + i386_optab + 2617, + i386_optab + 2619, + i386_optab + 2621, + i386_optab + 2624, + i386_optab + 2629, + i386_optab + 2634, + i386_optab + 2639, + i386_optab + 2644, + i386_optab + 2647, + i386_optab + 2652, + i386_optab + 2657, + i386_optab + 2660, + i386_optab + 2663, + i386_optab + 2666, i386_optab + 2669, i386_optab + 2670, - i386_optab + 2673, - i386_optab + 2676, - i386_optab + 2679, - i386_optab + 2682, - i386_optab + 2685, - i386_optab + 2687, - i386_optab + 2689, - i386_optab + 2691, + i386_optab + 2671, + i386_optab + 2674, + i386_optab + 2677, + i386_optab + 2680, + i386_optab + 2683, + i386_optab + 2686, + i386_optab + 2688, + i386_optab + 2690, i386_optab + 2692, i386_optab + 2693, i386_optab + 2694, i386_optab + 2695, i386_optab + 2696, - i386_optab + 2701, - i386_optab + 2706, - i386_optab + 2708, - i386_optab + 2710, - i386_optab + 2712, - i386_optab + 2714, - i386_optab + 2716, - i386_optab + 2718, - i386_optab + 2720, - i386_optab + 2722, - i386_optab + 2724, - i386_optab + 2726, - i386_optab + 2728, - i386_optab + 2730, - i386_optab + 2732, - i386_optab + 2734, - i386_optab + 2736, - i386_optab + 2738, - i386_optab + 2740, - i386_optab + 2742, - i386_optab + 2744, - i386_optab + 2746, - i386_optab + 2748, - i386_optab + 2750, - i386_optab + 2752, - i386_optab + 2754, - i386_optab + 2756, - i386_optab + 2758, - i386_optab + 2760, - i386_optab + 2762, - i386_optab + 2764, - i386_optab + 2766, - i386_optab + 2768, - i386_optab + 2770, - i386_optab + 2772, - i386_optab + 2774, - i386_optab + 2776, - i386_optab + 2778, - i386_optab + 2780, - i386_optab + 2782, - i386_optab + 2784, - i386_optab + 2786, - i386_optab + 2788, - i386_optab + 2790, - i386_optab + 2792, - i386_optab + 2794, - i386_optab + 2796, - i386_optab + 2798, - i386_optab + 2800, - i386_optab + 2802, - i386_optab + 2804, - i386_optab + 2806, - i386_optab + 2808, - i386_optab + 2810, - i386_optab + 2812, - i386_optab + 2814, - i386_optab + 2816, - i386_optab + 2818, - i386_optab + 2820, - i386_optab + 2822, - i386_optab + 2824, - i386_optab + 2826, + i386_optab + 2697, + i386_optab + 2702, + i386_optab + 2707, + i386_optab + 2709, + i386_optab + 2711, + i386_optab + 2713, + i386_optab + 2715, + i386_optab + 2717, + i386_optab + 2719, + i386_optab + 2721, + i386_optab + 2723, + i386_optab + 2725, + i386_optab + 2727, + i386_optab + 2729, + i386_optab + 2731, + i386_optab + 2733, + i386_optab + 2735, + i386_optab + 2737, + i386_optab + 2739, + i386_optab + 2741, + i386_optab + 2743, + i386_optab + 2745, + i386_optab + 2747, + i386_optab + 2749, + i386_optab + 2751, + i386_optab + 2753, + i386_optab + 2755, + i386_optab + 2757, + i386_optab + 2759, + i386_optab + 2761, + i386_optab + 2763, + i386_optab + 2765, + i386_optab + 2767, + i386_optab + 2769, + i386_optab + 2771, + i386_optab + 2773, + i386_optab + 2775, + i386_optab + 2777, + i386_optab + 2779, + i386_optab + 2781, + i386_optab + 2783, + i386_optab + 2785, + i386_optab + 2787, + i386_optab + 2789, + i386_optab + 2791, + i386_optab + 2793, + i386_optab + 2795, + i386_optab + 2797, + i386_optab + 2799, + i386_optab + 2801, + i386_optab + 2803, + i386_optab + 2805, + i386_optab + 2807, + i386_optab + 2809, + i386_optab + 2811, + i386_optab + 2813, + i386_optab + 2815, + i386_optab + 2817, + i386_optab + 2819, + i386_optab + 2821, + i386_optab + 2823, + i386_optab + 2825, i386_optab + 2827, i386_optab + 2828, i386_optab + 2829, i386_optab + 2830, i386_optab + 2831, i386_optab + 2832, - i386_optab + 2834, - i386_optab + 2836, - i386_optab + 2838, - i386_optab + 2840, - i386_optab + 2842, - i386_optab + 2844, - i386_optab + 2846, - i386_optab + 2848, + i386_optab + 2833, + i386_optab + 2835, + i386_optab + 2837, + i386_optab + 2839, + i386_optab + 2841, + i386_optab + 2843, + i386_optab + 2845, + i386_optab + 2847, i386_optab + 2849, i386_optab + 2850, i386_optab + 2851, @@ -41056,8 +41063,8 @@ static const insn_template *const i386_op_sets[] = i386_optab + 2943, i386_optab + 2944, i386_optab + 2945, - i386_optab + 2947, - i386_optab + 2949, + i386_optab + 2946, + i386_optab + 2948, i386_optab + 2950, i386_optab + 2951, i386_optab + 2952, @@ -41086,10 +41093,10 @@ static const insn_template *const i386_op_sets[] = i386_optab + 2975, i386_optab + 2976, i386_optab + 2977, - i386_optab + 2979, - i386_optab + 2981, - i386_optab + 2983, - i386_optab + 2985, + i386_optab + 2978, + i386_optab + 2980, + i386_optab + 2982, + i386_optab + 2984, i386_optab + 2986, i386_optab + 2987, i386_optab + 2988, @@ -41102,12 +41109,12 @@ static const insn_template *const i386_op_sets[] = i386_optab + 2995, i386_optab + 2996, i386_optab + 2997, - i386_optab + 2999, - i386_optab + 3002, - i386_optab + 3004, - i386_optab + 3006, - i386_optab + 3008, - i386_optab + 3010, + i386_optab + 2998, + i386_optab + 3000, + i386_optab + 3003, + i386_optab + 3005, + i386_optab + 3007, + i386_optab + 3009, i386_optab + 3011, i386_optab + 3012, i386_optab + 3013, @@ -41149,20 +41156,20 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3049, i386_optab + 3050, i386_optab + 3051, - i386_optab + 3053, - i386_optab + 3055, + i386_optab + 3052, + i386_optab + 3054, i386_optab + 3056, i386_optab + 3057, - i386_optab + 3059, + i386_optab + 3058, i386_optab + 3060, - i386_optab + 3062, - i386_optab + 3064, + i386_optab + 3061, + i386_optab + 3063, i386_optab + 3065, i386_optab + 3066, - i386_optab + 3068, - i386_optab + 3070, - i386_optab + 3072, - i386_optab + 3074, + i386_optab + 3067, + i386_optab + 3069, + i386_optab + 3071, + i386_optab + 3073, i386_optab + 3075, i386_optab + 3076, i386_optab + 3077, @@ -41179,26 +41186,26 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3088, i386_optab + 3089, i386_optab + 3090, - i386_optab + 3093, - i386_optab + 3096, + i386_optab + 3091, + i386_optab + 3094, i386_optab + 3097, i386_optab + 3098, i386_optab + 3099, i386_optab + 3100, i386_optab + 3101, i386_optab + 3102, - i386_optab + 3104, - i386_optab + 3106, - i386_optab + 3108, + i386_optab + 3103, + i386_optab + 3105, + i386_optab + 3107, i386_optab + 3109, i386_optab + 3110, - i386_optab + 3112, - i386_optab + 3114, - i386_optab + 3116, - i386_optab + 3118, - i386_optab + 3121, - i386_optab + 3123, - i386_optab + 3125, + i386_optab + 3111, + i386_optab + 3113, + i386_optab + 3115, + i386_optab + 3117, + i386_optab + 3119, + i386_optab + 3122, + i386_optab + 3124, i386_optab + 3126, i386_optab + 3127, i386_optab + 3128, @@ -41217,8 +41224,8 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3141, i386_optab + 3142, i386_optab + 3143, - i386_optab + 3149, - i386_optab + 3155, + i386_optab + 3144, + i386_optab + 3150, i386_optab + 3156, i386_optab + 3157, i386_optab + 3158, @@ -41273,25 +41280,25 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3207, i386_optab + 3208, i386_optab + 3209, - i386_optab + 3212, - i386_optab + 3214, - i386_optab + 3217, - i386_optab + 3220, - i386_optab + 3222, - i386_optab + 3225, - i386_optab + 3228, - i386_optab + 3231, - i386_optab + 3234, + i386_optab + 3210, + i386_optab + 3213, + i386_optab + 3215, + i386_optab + 3218, + i386_optab + 3221, + i386_optab + 3223, + i386_optab + 3226, + i386_optab + 3229, + i386_optab + 3232, i386_optab + 3235, - i386_optab + 3238, + i386_optab + 3236, i386_optab + 3239, i386_optab + 3240, i386_optab + 3241, i386_optab + 3242, i386_optab + 3243, - i386_optab + 3247, - i386_optab + 3249, - i386_optab + 3252, + i386_optab + 3244, + i386_optab + 3248, + i386_optab + 3250, i386_optab + 3253, i386_optab + 3254, i386_optab + 3255, @@ -41377,7 +41384,7 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3335, i386_optab + 3336, i386_optab + 3337, - i386_optab + 3339, + i386_optab + 3338, i386_optab + 3340, i386_optab + 3341, i386_optab + 3342, @@ -41417,26 +41424,26 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3376, i386_optab + 3377, i386_optab + 3378, - i386_optab + 3381, - i386_optab + 3384, - i386_optab + 3387, - i386_optab + 3390, - i386_optab + 3393, - i386_optab + 3396, - i386_optab + 3399, - i386_optab + 3402, - i386_optab + 3405, - i386_optab + 3408, - i386_optab + 3411, - i386_optab + 3414, - i386_optab + 3417, - i386_optab + 3420, - i386_optab + 3423, + i386_optab + 3379, + i386_optab + 3382, + i386_optab + 3385, + i386_optab + 3388, + i386_optab + 3391, + i386_optab + 3394, + i386_optab + 3397, + i386_optab + 3400, + i386_optab + 3403, + i386_optab + 3406, + i386_optab + 3409, + i386_optab + 3412, + i386_optab + 3415, + i386_optab + 3418, + i386_optab + 3421, i386_optab + 3424, i386_optab + 3425, i386_optab + 3426, i386_optab + 3427, - i386_optab + 3429, + i386_optab + 3428, i386_optab + 3430, i386_optab + 3431, i386_optab + 3432, @@ -41498,8 +41505,8 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3488, i386_optab + 3489, i386_optab + 3490, - i386_optab + 3496, - i386_optab + 3502, + i386_optab + 3491, + i386_optab + 3497, i386_optab + 3503, i386_optab + 3504, i386_optab + 3505, @@ -41562,9 +41569,9 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3562, i386_optab + 3563, i386_optab + 3564, - i386_optab + 3567, - i386_optab + 3570, - i386_optab + 3573, + i386_optab + 3565, + i386_optab + 3568, + i386_optab + 3571, i386_optab + 3574, i386_optab + 3575, i386_optab + 3576, @@ -41581,18 +41588,18 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3587, i386_optab + 3588, i386_optab + 3589, - i386_optab + 3592, - i386_optab + 3595, + i386_optab + 3590, + i386_optab + 3593, i386_optab + 3596, i386_optab + 3597, - i386_optab + 3600, + i386_optab + 3598, i386_optab + 3601, i386_optab + 3602, i386_optab + 3603, i386_optab + 3604, - i386_optab + 3607, - i386_optab + 3610, - i386_optab + 3613, + i386_optab + 3605, + i386_optab + 3608, + i386_optab + 3611, i386_optab + 3614, i386_optab + 3615, i386_optab + 3616, @@ -41603,8 +41610,8 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3621, i386_optab + 3622, i386_optab + 3623, - i386_optab + 3625, - i386_optab + 3627, + i386_optab + 3624, + i386_optab + 3626, i386_optab + 3628, i386_optab + 3629, i386_optab + 3630, @@ -41630,8 +41637,8 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3650, i386_optab + 3651, i386_optab + 3652, - i386_optab + 3654, - i386_optab + 3656, + i386_optab + 3653, + i386_optab + 3655, i386_optab + 3657, i386_optab + 3658, i386_optab + 3659, @@ -41657,10 +41664,10 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3679, i386_optab + 3680, i386_optab + 3681, - i386_optab + 3683, - i386_optab + 3685, - i386_optab + 3687, - i386_optab + 3689, + i386_optab + 3682, + i386_optab + 3684, + i386_optab + 3686, + i386_optab + 3688, i386_optab + 3690, i386_optab + 3691, i386_optab + 3692, @@ -41676,25 +41683,25 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3702, i386_optab + 3703, i386_optab + 3704, - i386_optab + 3706, + i386_optab + 3705, i386_optab + 3707, - i386_optab + 3709, - i386_optab + 3712, - i386_optab + 3714, + i386_optab + 3708, + i386_optab + 3710, + i386_optab + 3713, i386_optab + 3715, i386_optab + 3716, - i386_optab + 3718, - i386_optab + 3720, + i386_optab + 3717, + i386_optab + 3719, i386_optab + 3721, i386_optab + 3722, i386_optab + 3723, i386_optab + 3724, i386_optab + 3725, i386_optab + 3726, - i386_optab + 3728, - i386_optab + 3730, - i386_optab + 3732, - i386_optab + 3734, + i386_optab + 3727, + i386_optab + 3729, + i386_optab + 3731, + i386_optab + 3733, i386_optab + 3735, i386_optab + 3736, i386_optab + 3737, @@ -41704,15 +41711,15 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3741, i386_optab + 3742, i386_optab + 3743, - i386_optab + 3745, - i386_optab + 3747, + i386_optab + 3744, + i386_optab + 3746, i386_optab + 3748, - i386_optab + 3750, - i386_optab + 3752, + i386_optab + 3749, + i386_optab + 3751, i386_optab + 3753, - i386_optab + 3758, - i386_optab + 3760, - i386_optab + 3762, + i386_optab + 3754, + i386_optab + 3759, + i386_optab + 3761, i386_optab + 3763, i386_optab + 3764, i386_optab + 3765, @@ -41720,22 +41727,22 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3767, i386_optab + 3768, i386_optab + 3769, - i386_optab + 3771, - i386_optab + 3773, + i386_optab + 3770, + i386_optab + 3772, i386_optab + 3774, i386_optab + 3775, i386_optab + 3776, - i386_optab + 3778, - i386_optab + 3781, - i386_optab + 3784, - i386_optab + 3787, - i386_optab + 3789, + i386_optab + 3777, + i386_optab + 3779, + i386_optab + 3782, + i386_optab + 3785, + i386_optab + 3788, i386_optab + 3790, i386_optab + 3791, i386_optab + 3792, i386_optab + 3793, - i386_optab + 3795, - i386_optab + 3797, + i386_optab + 3794, + i386_optab + 3796, i386_optab + 3798, i386_optab + 3799, i386_optab + 3800, @@ -41744,22 +41751,22 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3803, i386_optab + 3804, i386_optab + 3805, - i386_optab + 3807, - i386_optab + 3809, - i386_optab + 3811, + i386_optab + 3806, + i386_optab + 3808, + i386_optab + 3810, i386_optab + 3812, i386_optab + 3813, i386_optab + 3814, - i386_optab + 3816, - i386_optab + 3818, - i386_optab + 3820, - i386_optab + 3822, - i386_optab + 3824, - i386_optab + 3826, - i386_optab + 3828, - i386_optab + 3830, - i386_optab + 3832, - i386_optab + 3834, + i386_optab + 3815, + i386_optab + 3817, + i386_optab + 3819, + i386_optab + 3821, + i386_optab + 3823, + i386_optab + 3825, + i386_optab + 3827, + i386_optab + 3829, + i386_optab + 3831, + i386_optab + 3833, i386_optab + 3835, i386_optab + 3836, i386_optab + 3837, @@ -41872,106 +41879,107 @@ static const insn_template *const i386_op_sets[] = i386_optab + 3944, i386_optab + 3945, i386_optab + 3946, - i386_optab + 3949, + i386_optab + 3947, i386_optab + 3950, i386_optab + 3951, - i386_optab + 3954, + i386_optab + 3952, i386_optab + 3955, i386_optab + 3956, - i386_optab + 3958, + i386_optab + 3957, i386_optab + 3959, i386_optab + 3960, i386_optab + 3961, - i386_optab + 3963, + i386_optab + 3962, i386_optab + 3964, i386_optab + 3965, i386_optab + 3966, - i386_optab + 3968, + i386_optab + 3967, i386_optab + 3969, i386_optab + 3970, i386_optab + 3971, - i386_optab + 3974, + i386_optab + 3972, i386_optab + 3975, i386_optab + 3976, i386_optab + 3977, i386_optab + 3978, - i386_optab + 3981, - i386_optab + 3984, - i386_optab + 3987, - i386_optab + 3990, - i386_optab + 3993, + i386_optab + 3979, + i386_optab + 3982, + i386_optab + 3985, + i386_optab + 3988, + i386_optab + 3991, i386_optab + 3994, i386_optab + 3995, i386_optab + 3996, i386_optab + 3997, - i386_optab + 3999, - i386_optab + 4001, + i386_optab + 3998, + i386_optab + 4000, i386_optab + 4002, i386_optab + 4003, i386_optab + 4004, - i386_optab + 4007, - i386_optab + 4010, - i386_optab + 4013, - i386_optab + 4016, - i386_optab + 4019, + i386_optab + 4005, + i386_optab + 4008, + i386_optab + 4011, + i386_optab + 4014, + i386_optab + 4017, i386_optab + 4020, i386_optab + 4021, i386_optab + 4022, - i386_optab + 4024, + i386_optab + 4023, i386_optab + 4025, i386_optab + 4026, i386_optab + 4027, - i386_optab + 4029, + i386_optab + 4028, i386_optab + 4030, i386_optab + 4031, i386_optab + 4032, i386_optab + 4033, i386_optab + 4034, i386_optab + 4035, - i386_optab + 4037, - i386_optab + 4039, - i386_optab + 4041, - i386_optab + 4043, - i386_optab + 4045, - i386_optab + 4047, - i386_optab + 4049, - i386_optab + 4051, - i386_optab + 4053, - i386_optab + 4055, - i386_optab + 4057, - i386_optab + 4059, - i386_optab + 4061, - i386_optab + 4063, - i386_optab + 4065, - i386_optab + 4067, - i386_optab + 4069, - i386_optab + 4071, - i386_optab + 4073, - i386_optab + 4075, - i386_optab + 4077, - i386_optab + 4079, - i386_optab + 4081, - i386_optab + 4083, - i386_optab + 4085, - i386_optab + 4087, - i386_optab + 4089, - i386_optab + 4091, - i386_optab + 4093, - i386_optab + 4095, + i386_optab + 4036, + i386_optab + 4038, + i386_optab + 4040, + i386_optab + 4042, + i386_optab + 4044, + i386_optab + 4046, + i386_optab + 4048, + i386_optab + 4050, + i386_optab + 4052, + i386_optab + 4054, + i386_optab + 4056, + i386_optab + 4058, + i386_optab + 4060, + i386_optab + 4062, + i386_optab + 4064, + i386_optab + 4066, + i386_optab + 4068, + i386_optab + 4070, + i386_optab + 4072, + i386_optab + 4074, + i386_optab + 4076, + i386_optab + 4078, + i386_optab + 4080, + i386_optab + 4082, + i386_optab + 4084, + i386_optab + 4086, + i386_optab + 4088, + i386_optab + 4090, + i386_optab + 4092, + i386_optab + 4094, i386_optab + 4096, i386_optab + 4097, i386_optab + 4098, - i386_optab + 4100, - i386_optab + 4102, - i386_optab + 4104, - i386_optab + 4106, - i386_optab + 4108, + i386_optab + 4099, + i386_optab + 4101, + i386_optab + 4103, + i386_optab + 4105, + i386_optab + 4107, i386_optab + 4109, i386_optab + 4110, i386_optab + 4111, i386_optab + 4112, i386_optab + 4113, i386_optab + 4114, + i386_optab + 4115, }; /* i386 mnemonics table. */ @@ -43347,6 +43355,7 @@ const char i386_mnemonics[] = "\0""scas" "\0""das" "\0""fabs" + "\0""jmpabs" "\0""movabs" "\0""blcs" "\0""lds"