From patchwork Thu Sep 21 10:11:36 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: 76518 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 E64E63856DEA for ; Thu, 21 Sep 2023 10:14:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E64E63856DEA DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1695291297; bh=qijSM6AVdxF8x9LrOMmAUVil9I+/PacdBdAmlE+qVuI=; 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=nMYrqD6eapo1vDw9ZRQXB5Y2IqdNhIemh7fhT+QSg2KLeQaEWFJD/QxXvuMi58BSD 5ije9J5fmRCvDOw9c9Y0PPqrOtTsphn+LeZhj7OgwFS20at8ft66hRcdFcGpSLQlQ2 l4Bhpmrp51rmTjUWlAe0WhGA9qUJkT0xE07158e0= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.126]) by sourceware.org (Postfix) with ESMTPS id 2BE30385702F for ; Thu, 21 Sep 2023 10:12:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2BE30385702F X-IronPort-AV: E=McAfee;i="6600,9927,10839"; a="365533231" X-IronPort-AV: E=Sophos;i="6.03,165,1694761200"; d="scan'208";a="365533231" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Sep 2023 03:12:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10839"; a="812585766" X-IronPort-AV: E=Sophos;i="6.03,165,1694761200"; d="scan'208";a="812585766" Received: from scymds04.sc.intel.com ([10.82.73.238]) by fmsmga008.fm.intel.com with ESMTP; 21 Sep 2023 03:11:48 -0700 Received: from shgcc101.sh.intel.com (shgcc101.sh.intel.com [10.239.85.97]) by scymds04.sc.intel.com (Postfix) with ESMTP id 3050A181F52C; Thu, 21 Sep 2023 03:11:45 -0700 (PDT) To: binutils@sourceware.org Cc: jbeulich@suse.com, hongjiu.lu@intel.com, ccoutant@gmail.com, "Hu, Lin1" Subject: [PATCH 1/6] Support {evex} pseudo prefix for decode evex promoted insns without egpr32. Date: Thu, 21 Sep 2023 10:11:36 +0000 Message-Id: <20230921101141.2518818-2-lili.cui@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230921101141.2518818-1-lili.cui@intel.com> References: <20230921101141.2518818-1-lili.cui@intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 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 (match_template): Support D for APX_F insns with 2 operands. * testsuite/gas/i386/x86-64.exp: Add tests. * testsuite/gas/i386/x86-64-apx_f-evex-intel.d: New test. * testsuite/gas/i386/x86-64-apx_f-evex.d: Ditto. * testsuite/gas/i386/x86-64-apx_f-evex.s: Ditto. opcodes/ChangeLog: * i386-dis-evex-len.h: Add %XE for output {evex} when evex prefix is unused. * i386-dis-evex-mod.h: Ditto. * i386-dis-evex-prefix.h: Ditto. * i386-dis-evex-reg.h: Ditto. * i386-dis-evex-x86.h: Ditto. * i386-dis-evex.h: Ditto. * i386-dis.c (putop): Add some conditions for disable {evex} pseudo prefix. --- gas/config/tc-i386.c | 2 + .../gas/i386/x86-64-apx_f-evex-intel.d | 1184 +++++++++++++++++ gas/testsuite/gas/i386/x86-64-apx_f-evex.d | 1184 +++++++++++++++++ gas/testsuite/gas/i386/x86-64-apx_f-evex.s | 1180 ++++++++++++++++ gas/testsuite/gas/i386/x86-64.exp | 2 + opcodes/i386-dis-evex-len.h | 2 +- opcodes/i386-dis-evex-mod.h | 24 +- opcodes/i386-dis-evex-prefix.h | 36 +- opcodes/i386-dis-evex-reg.h | 50 +- opcodes/i386-dis-evex-x86.h | 32 +- opcodes/i386-dis-evex.h | 20 +- opcodes/i386-dis.c | 53 +- 12 files changed, 3662 insertions(+), 107 deletions(-) create mode 100644 gas/testsuite/gas/i386/x86-64-apx_f-evex-intel.d create mode 100644 gas/testsuite/gas/i386/x86-64-apx_f-evex.d create mode 100644 gas/testsuite/gas/i386/x86-64-apx_f-evex.s diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 36720d40eb0..8bdd386ed47 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -7581,6 +7581,8 @@ match_template (char mnem_suffix) } else if (t->opcode_space != SPACE_BASE && !t->opcode_modifier.nf + && (t->opcode_space != SPACE_EVEXMAP4 + || t->mnem_off == MN_movbe) && (t->opcode_space != SPACE_0F /* MOV to/from CR/DR/TR, as an exception, follow the base opcode space encoding model. */ diff --git a/gas/testsuite/gas/i386/x86-64-apx_f-evex-intel.d b/gas/testsuite/gas/i386/x86-64-apx_f-evex-intel.d new file mode 100644 index 00000000000..2696cabcabd --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-apx_f-evex-intel.d @@ -0,0 +1,1184 @@ +#as: +#objdump: -dw -Mintel +#name: x86_64 APX_F insns with evex pseudo prefix (Intel disassembly) +#source: x86-64-apx_f-evex.s + +.*: +file format .* + +Disassembly of section \.text: + +0+ <_start>: +\s*[a-f0-9]+:\s*62 54 fc 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 54 7c 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 54 fd 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aand\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 54 7d 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aand\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 83 d7 7b\s+\{evex\}\s+adc\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 d7 7b\s+\{evex\}\s+adc\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 d7 7b\s+\{evex\}\s+adc\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 d0 7b\s+\{evex\}\s+adc\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 94 80 23 01 00 00 7b\s+\{evex\}\s+adc\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 94 80 23 01 00 00 7b\s+\{evex\}\s+adc\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 94 80 23 01 00 00 7b\s+\{evex\}\s+adc\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 83 94 80 23 01 00 00 7b\s+\{evex\}\s+adc\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 11 ff\s+\{evex\}\s+adc\s+r15,r15 +\s*[a-f0-9]+:\s*62 54 fc 08 11 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 74 7c 08 11 fa\s+\{evex\}\s+adc\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 7c 08 11 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 74 7d 08 11 f8\s+\{evex\}\s+adc\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 7d 08 11 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w +\s*[a-f0-9]+:\s*62 74 7c 08 10 c2\s+\{evex\}\s+adc\s+dl,r8b +\s*[a-f0-9]+:\s*62 54 7c 08 10 84 80 23 01 00 00\s+\{evex\}\s+adc\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b +\s*[a-f0-9]+:\s*62 54 fc 08 13 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 13 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 13 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 12 84 80 23 01 00 00\s+\{evex\}\s+adc\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 fd 08 66 ff\s+\{evex\}\s+adcx\s+r15,r15 +\s*[a-f0-9]+:\s*62 d4 7d 08 66 d7\s+\{evex\}\s+adcx\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 fd 08 66 bc 80 23 01 00 00\s+\{evex\}\s+adcx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 66 bc 80 23 01 00 00\s+\{evex\}\s+adcx\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 83 c7 7b\s+\{evex\}\s+add\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 c7 7b\s+\{evex\}\s+add\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 c7 7b\s+\{evex\}\s+add\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 c0 7b\s+\{evex\}\s+add\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 84 80 23 01 00 00 7b\s+\{evex\}\s+add\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 84 80 23 01 00 00 7b\s+\{evex\}\s+add\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 84 80 23 01 00 00 7b\s+\{evex\}\s+add\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 83 84 80 23 01 00 00 7b\s+\{evex\}\s+add\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 01 ff\s+\{evex\}\s+add\s+r15,r15 +\s*[a-f0-9]+:\s*62 54 fc 08 01 bc 80 23 01 00 00\s+\{evex\}\s+add\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 74 7c 08 01 fa\s+\{evex\}\s+add\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 7c 08 01 bc 80 23 01 00 00\s+\{evex\}\s+add\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 74 7d 08 01 f8\s+\{evex\}\s+add\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 7d 08 01 bc 80 23 01 00 00\s+\{evex\}\s+add\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w +\s*[a-f0-9]+:\s*62 74 7c 08 00 c2\s+\{evex\}\s+add\s+dl,r8b +\s*[a-f0-9]+:\s*62 54 7c 08 00 84 80 23 01 00 00\s+\{evex\}\s+add\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b +\s*[a-f0-9]+:\s*62 54 fc 08 03 bc 80 23 01 00 00\s+\{evex\}\s+add\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 03 bc 80 23 01 00 00\s+\{evex\}\s+add\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 03 bc 80 23 01 00 00\s+\{evex\}\s+add\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 02 84 80 23 01 00 00\s+\{evex\}\s+add\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 fe 08 66 ff\s+\{evex\}\s+adox\s+r15,r15 +\s*[a-f0-9]+:\s*62 d4 7e 08 66 d7\s+\{evex\}\s+adox\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 fe 08 66 bc 80 23 01 00 00\s+\{evex\}\s+adox\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7e 08 66 bc 80 23 01 00 00\s+\{evex\}\s+adox\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7e 08 dd a4 80 23 01 00 00\s+\{evex\}\s+aesdec128kl xmm12,\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7e 08 df a4 80 23 01 00 00\s+\{evex\}\s+aesdec256kl xmm12,\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7e 08 d8 8c 80 23 01 00 00\s+\{evex\}\s+aesdecwide128kl\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7e 08 d8 9c 80 23 01 00 00\s+\{evex\}\s+aesdecwide256kl\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7e 08 dc a4 80 23 01 00 00\s+\{evex\}\s+aesenc128kl xmm12,\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7e 08 de a4 80 23 01 00 00\s+\{evex\}\s+aesenc256kl xmm12,\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7e 08 d8 84 80 23 01 00 00\s+\{evex\}\s+aesencwide128kl\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7e 08 d8 94 80 23 01 00 00\s+\{evex\}\s+aesencwide256kl\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 83 e7 7b\s+\{evex\}\s+and\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 e7 7b\s+\{evex\}\s+and\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 e7 7b\s+\{evex\}\s+and\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 e0 7b\s+\{evex\}\s+and\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 a4 80 23 01 00 00 7b\s+\{evex\}\s+and\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 a4 80 23 01 00 00 7b\s+\{evex\}\s+and\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 a4 80 23 01 00 00 7b\s+\{evex\}\s+and\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 83 a4 80 23 01 00 00 7b\s+\{evex\}\s+and\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 21 ff\s+\{evex\}\s+and\s+r15,r15 +\s*[a-f0-9]+:\s*62 54 fc 08 21 bc 80 23 01 00 00\s+\{evex\}\s+and\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 74 7c 08 21 fa\s+\{evex\}\s+and\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 7c 08 21 bc 80 23 01 00 00\s+\{evex\}\s+and\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 74 7d 08 21 f8\s+\{evex\}\s+and\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 7d 08 21 bc 80 23 01 00 00\s+\{evex\}\s+and\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w +\s*[a-f0-9]+:\s*62 74 7c 08 20 c2\s+\{evex\}\s+and\s+dl,r8b +\s*[a-f0-9]+:\s*62 54 7c 08 20 84 80 23 01 00 00\s+\{evex\}\s+and\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b +\s*[a-f0-9]+:\s*62 54 fc 08 23 bc 80 23 01 00 00\s+\{evex\}\s+and\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 23 bc 80 23 01 00 00\s+\{evex\}\s+and\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 23 bc 80 23 01 00 00\s+\{evex\}\s+and\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 22 84 80 23 01 00 00\s+\{evex\}\s+and\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 52 84 08 f2 df\s+\{evex\}\s+andn\s+r11,r15,r15 +\s*[a-f0-9]+:\s*62 52 6c 08 f2 d7\s+\{evex\}\s+andn\s+r10d,edx,r15d +\s*[a-f0-9]+:\s*62 52 84 08 f2 bc 80 23 01 00 00\s+\{evex\}\s+andn\s+r15,r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d2 04 08 f2 94 80 23 01 00 00\s+\{evex\}\s+andn\s+edx,r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 ff 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aor\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 54 7f 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aor\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 54 fe 08 fc bc 80 23 01 00 00\s+\{evex\}\s+axor\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 54 7e 08 fc bc 80 23 01 00 00\s+\{evex\}\s+axor\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 52 84 08 f7 df\s+\{evex\} bextr\s+r11,r15,r15 +\s*[a-f0-9]+:\s*62 52 84 08 f7 bc 80 23 01 00 00\s+\{evex\} bextr\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 72 04 08 f7 d2\s+\{evex\} bextr\s+r10d,edx,r15d +\s*[a-f0-9]+:\s*62 d2 04 08 f7 94 80 23 01 00 00\s+\{evex\} bextr\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 d2 84 08 f3 df\s+\{evex\} blsi\s+r15,r15 +\s*[a-f0-9]+:\s*62 d2 6c 08 f3 df\s+\{evex\} blsi\s+edx,r15d +\s*[a-f0-9]+:\s*62 d2 84 08 f3 9c 80 23 01 00 00\s+\{evex\} blsi\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d2 04 08 f3 9c 80 23 01 00 00\s+\{evex\} blsi\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d2 84 08 f3 d7\s+\{evex\} blsmsk\s+r15,r15 +\s*[a-f0-9]+:\s*62 d2 6c 08 f3 d7\s+\{evex\} blsmsk\s+edx,r15d +\s*[a-f0-9]+:\s*62 d2 84 08 f3 94 80 23 01 00 00\s+\{evex\} blsmsk\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d2 04 08 f3 94 80 23 01 00 00\s+\{evex\} blsmsk\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d2 84 08 f3 cf\s+\{evex\} blsr\s+r15,r15 +\s*[a-f0-9]+:\s*62 d2 6c 08 f3 cf\s+\{evex\} blsr\s+edx,r15d +\s*[a-f0-9]+:\s*62 d2 84 08 f3 8c 80 23 01 00 00\s+\{evex\} blsr\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d2 04 08 f3 8c 80 23 01 00 00\s+\{evex\} blsr\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 52 84 08 f5 df\s+\{evex\} bzhi\s+r11,r15,r15 +\s*[a-f0-9]+:\s*62 52 84 08 f5 bc 80 23 01 00 00\s+\{evex\} bzhi\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 72 04 08 f5 d2\s+\{evex\} bzhi\s+r10d,edx,r15d +\s*[a-f0-9]+:\s*62 d2 04 08 f5 94 80 23 01 00 00\s+\{evex\} bzhi\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 52 85 08 e6 bc 80 23 01 00 00\s+\{evex\} cmpbexadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e6 94 80 23 01 00 00\s+\{evex\} cmpbexadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 e2 bc 80 23 01 00 00\s+\{evex\} cmpbxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e2 94 80 23 01 00 00\s+\{evex\} cmpbxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 ee bc 80 23 01 00 00\s+\{evex\} cmplexadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 ee 94 80 23 01 00 00\s+\{evex\} cmplexadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 ec bc 80 23 01 00 00\s+\{evex\} cmplxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 ec 94 80 23 01 00 00\s+\{evex\} cmplxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 e7 bc 80 23 01 00 00\s+\{evex\} cmpnbexadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e7 94 80 23 01 00 00\s+\{evex\} cmpnbexadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 e3 bc 80 23 01 00 00\s+\{evex\} cmpnbxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e3 94 80 23 01 00 00\s+\{evex\} cmpnbxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 ef bc 80 23 01 00 00\s+\{evex\} cmpnlexadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 ef 94 80 23 01 00 00\s+\{evex\} cmpnlexadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 ed bc 80 23 01 00 00\s+\{evex\} cmpnlxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 ed 94 80 23 01 00 00\s+\{evex\} cmpnlxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 e1 bc 80 23 01 00 00\s+\{evex\} cmpnoxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e1 94 80 23 01 00 00\s+\{evex\} cmpnoxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 eb bc 80 23 01 00 00\s+\{evex\} cmpnpxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 eb 94 80 23 01 00 00\s+\{evex\} cmpnpxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 e9 bc 80 23 01 00 00\s+\{evex\} cmpnsxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e9 94 80 23 01 00 00\s+\{evex\} cmpnsxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 e5 bc 80 23 01 00 00\s+\{evex\} cmpnzxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e5 94 80 23 01 00 00\s+\{evex\} cmpnzxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 e0 bc 80 23 01 00 00\s+\{evex\} cmpoxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e0 94 80 23 01 00 00\s+\{evex\} cmpoxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 ea bc 80 23 01 00 00\s+\{evex\} cmppxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 ea 94 80 23 01 00 00\s+\{evex\} cmppxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 e8 bc 80 23 01 00 00\s+\{evex\} cmpsxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e8 94 80 23 01 00 00\s+\{evex\} cmpsxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 e4 bc 80 23 01 00 00\s+\{evex\} cmpzxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e4 94 80 23 01 00 00\s+\{evex\} cmpzxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 ff cf\s+\{evex\}\s+dec\s+r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 ff cf\s+\{evex\}\s+dec\s+r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 ff cf\s+\{evex\}\s+dec\s+r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 fe c8\s+\{evex\}\s+dec\s+r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 fe 8c 80 23 01 00 00\s+\{evex\}\s+dec\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7d 08 ff 8c 80 23 01 00 00\s+\{evex\}\s+dec\s+WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7c 08 ff 8c 80 23 01 00 00\s+\{evex\}\s+dec\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 ff 8c 80 23 01 00 00\s+\{evex\}\s+dec\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 f7\s+\{evex\}\s+div\s+r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 f7\s+\{evex\}\s+div\s+r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 f7\s+\{evex\}\s+div\s+r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 f0\s+\{evex\}\s+div\s+r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 b4 80 23 01 00 00\s+\{evex\}\s+div\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 b4 80 23 01 00 00\s+\{evex\}\s+div\s+WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 b4 80 23 01 00 00\s+\{evex\}\s+div\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 b4 80 23 01 00 00\s+\{evex\}\s+div\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7e 08 da d7\s+\{evex\}\s+encodekey128\s+edx,r15d +\s*[a-f0-9]+:\s*62 d4 7e 08 db d7\s+\{evex\}\s+encodekey256\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 7f 08 f8 bc 80 23 01 00 00\s+\{evex\}\s+enqcmd\s+r15,\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*67 62 54 7f 08 f8 bc 80 23 01 00 00\s+\{evex\}\s+enqcmd\s+r15d,\[r8d\+eax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7e 08 f8 bc 80 23 01 00 00\s+\{evex\}\s+enqcmds\s+r15,\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*67 62 54 7e 08 f8 bc 80 23 01 00 00\s+\{evex\}\s+enqcmds\s+r15d,\[r8d\+eax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ff\s+\{evex\} idiv\s+r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ff\s+\{evex\} idiv\s+r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ff\s+\{evex\} idiv\s+r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 f8\s+\{evex\} idiv\s+r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 bc 80 23 01 00 00\s+\{evex\} idiv\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 bc 80 23 01 00 00\s+\{evex\} idiv\s+WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 bc 80 23 01 00 00\s+\{evex\} idiv\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 bc 80 23 01 00 00\s+\{evex\} idiv\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ef\s+\{evex\} imul\s+r15 +\s*[a-f0-9]+:\s*62 54 fc 08 af ff\s+\{evex\} imul\s+r15,r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ef\s+\{evex\} imul\s+r15d +\s*[a-f0-9]+:\s*62 d4 7c 08 af d7\s+\{evex\} imul\s+edx,r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ef\s+\{evex\} imul\s+r15w +\s*[a-f0-9]+:\s*62 d4 7d 08 af c7\s+\{evex\} imul\s+ax,r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 e8\s+\{evex\} imul\s+r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 ac 80 23 01 00 00\s+\{evex\} imul\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ac 80 23 01 00 00\s+\{evex\} imul\s+WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ac 80 23 01 00 00\s+\{evex\} imul\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 fc 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ac 80 23 01 00 00\s+\{evex\} imul\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 ff c7\s+\{evex\} inc\s+r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 ff c7\s+\{evex\} inc\s+r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 ff c7\s+\{evex\} inc\s+r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 fe c0\s+\{evex\} inc\s+r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 fe 84 80 23 01 00 00\s+\{evex\} inc\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7d 08 ff 84 80 23 01 00 00\s+\{evex\} inc\s+WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7c 08 ff 84 80 23 01 00 00\s+\{evex\} inc\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 ff 84 80 23 01 00 00\s+\{evex\} inc\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7e 08 f0 bc 80 23 01 00 00\s+\{evex\} invept\s+r15,OWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7e 08 f2 bc 80 23 01 00 00\s+\{evex\} invpcid\s+r15,\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7e 08 f1 bc 80 23 01 00 00\s+\{evex\} invvpid\s+r15,OWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 f1 7d 08 90 eb\s+\{evex\}\s+kmovb\s+k5,k3 +\s*[a-f0-9]+:\s*62 71 7d 08 93 fd\s+\{evex\}\s+kmovb\s+r15d,k5 +\s*[a-f0-9]+:\s*62 d1 7d 08 91 ac 80 23 01 00 00\s+\{evex\}\s+kmovb\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],k5 +\s*[a-f0-9]+:\s*62 d1 7d 08 92 ef\s+\{evex\}\s+kmovb\s+k5,r15d +\s*[a-f0-9]+:\s*62 d1 7d 08 90 ac 80 23 01 00 00\s+\{evex\}\s+kmovb\s+k5,BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 f1 fd 08 90 eb\s+\{evex\}\s+kmovd\s+k5,k3 +\s*[a-f0-9]+:\s*62 71 7f 08 93 fd\s+\{evex\}\s+kmovd\s+r15d,k5 +\s*[a-f0-9]+:\s*62 d1 fd 08 91 ac 80 23 01 00 00\s+\{evex\}\s+kmovd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],k5 +\s*[a-f0-9]+:\s*62 d1 7f 08 92 ef\s+\{evex\}\s+kmovd\s+k5,r15d +\s*[a-f0-9]+:\s*62 d1 fd 08 90 ac 80 23 01 00 00\s+\{evex\}\s+kmovd\s+k5,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 f1 fc 08 90 eb\s+\{evex\}\s+kmovq\s+k5,k3 +\s*[a-f0-9]+:\s*62 71 ff 08 93 fd\s+\{evex\}\s+kmovq\s+r15,k5 +\s*[a-f0-9]+:\s*62 d1 fc 08 91 ac 80 23 01 00 00\s+\{evex\}\s+kmovq\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],k5 +\s*[a-f0-9]+:\s*62 d1 ff 08 92 ef\s+\{evex\}\s+kmovq\s+k5,r15 +\s*[a-f0-9]+:\s*62 d1 fc 08 90 ac 80 23 01 00 00\s+\{evex\}\s+kmovq\s+k5,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 f1 7c 08 90 eb\s+\{evex\}\s+kmovw\s+k5,k3 +\s*[a-f0-9]+:\s*62 71 7c 08 93 fd\s+\{evex\}\s+kmovw\s+r15d,k5 +\s*[a-f0-9]+:\s*62 d1 7c 08 91 ac 80 23 01 00 00\s+\{evex\}\s+kmovw\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],k5 +\s*[a-f0-9]+:\s*62 d1 7c 08 92 ef\s+\{evex\}\s+kmovw\s+k5,r15d +\s*[a-f0-9]+:\s*62 d1 7c 08 90 ac 80 23 01 00 00\s+\{evex\}\s+kmovw\s+k5,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 fc 08 f5 ff\s+\{evex\} lzcnt\s+r15,r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f5 d7\s+\{evex\} lzcnt\s+edx,r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f5 c7\s+\{evex\} lzcnt\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 fc 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 fc 08 60 ff\s+\{evex\} movbe\s+r15,r15 +\s*[a-f0-9]+:\s*62 54 fc 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 60 d7\s+\{evex\} movbe\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 7c 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 60 c7\s+\{evex\} movbe\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 7d 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w +\s*[a-f0-9]+:\s*62 54 fc 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 f8 bc 80 23 01 00 00\s+\{evex\} movdir64b\s+r15,\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*67 62 54 7d 08 f8 bc 80 23 01 00 00\s+\{evex\} movdir64b\s+r15d,\[r8d\+eax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 fc 08 f9 bc 80 23 01 00 00\s+\{evex\} movdiri\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 54 7c 08 f9 bc 80 23 01 00 00\s+\{evex\} movdiri\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 e7\s+\{evex\} mul\s+r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 e7\s+\{evex\} mul\s+r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 e7\s+\{evex\} mul\s+r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 e0\s+\{evex\} mul\s+r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 a4 80 23 01 00 00\s+\{evex\} mul\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 a4 80 23 01 00 00\s+\{evex\} mul\s+WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 a4 80 23 01 00 00\s+\{evex\} mul\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 a4 80 23 01 00 00\s+\{evex\} mul\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 52 87 08 f6 df\s+\{evex\} mulx\s+r11,r15,r15 +\s*[a-f0-9]+:\s*62 52 6f 08 f6 d7\s+\{evex\} mulx\s+r10d,edx,r15d +\s*[a-f0-9]+:\s*62 52 87 08 f6 bc 80 23 01 00 00\s+\{evex\} mulx\s+r15,r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d2 07 08 f6 94 80 23 01 00 00\s+\{evex\} mulx\s+edx,r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 df\s+\{evex\} neg\s+r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 df\s+\{evex\} neg\s+r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 df\s+\{evex\} neg\s+r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 d8\s+\{evex\} neg\s+r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 9c 80 23 01 00 00\s+\{evex\} neg\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 9c 80 23 01 00 00\s+\{evex\} neg\s+WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 9c 80 23 01 00 00\s+\{evex\} neg\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 9c 80 23 01 00 00\s+\{evex\} neg\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 d7\s+\{evex\} not\s+r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 d7\s+\{evex\} not\s+r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 d7\s+\{evex\} not\s+r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 d0\s+\{evex\} not\s+r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 94 80 23 01 00 00\s+\{evex\} not\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 94 80 23 01 00 00\s+\{evex\} not\s+WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 94 80 23 01 00 00\s+\{evex\} not\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 94 80 23 01 00 00\s+\{evex\} not\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 83 cf 7b\s+\{evex\} or\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 cf 7b\s+\{evex\} or\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 cf 7b\s+\{evex\} or\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 c8 7b\s+\{evex\} or\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 8c 80 23 01 00 00 7b\s+\{evex\} or\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 8c 80 23 01 00 00 7b\s+\{evex\} or\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 8c 80 23 01 00 00 7b\s+\{evex\} or\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 83 8c 80 23 01 00 00 7b\s+\{evex\} or\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 09 ff\s+\{evex\} or\s+r15,r15 +\s*[a-f0-9]+:\s*62 54 fc 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 74 7c 08 09 fa\s+\{evex\} or\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 7c 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 74 7d 08 09 f8\s+\{evex\} or\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 7d 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w +\s*[a-f0-9]+:\s*62 74 7c 08 08 c2\s+\{evex\} or\s+dl,r8b +\s*[a-f0-9]+:\s*62 54 7c 08 08 84 80 23 01 00 00\s+\{evex\} or\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b +\s*[a-f0-9]+:\s*62 54 fc 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 0a 84 80 23 01 00 00\s+\{evex\} or\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 52 87 08 f5 df\s+\{evex\} pdep\s+r11,r15,r15 +\s*[a-f0-9]+:\s*62 52 6f 08 f5 d7\s+\{evex\} pdep\s+r10d,edx,r15d +\s*[a-f0-9]+:\s*62 52 87 08 f5 bc 80 23 01 00 00\s+\{evex\} pdep\s+r15,r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d2 07 08 f5 94 80 23 01 00 00\s+\{evex\} pdep\s+edx,r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 52 86 08 f5 df\s+\{evex\} pext\s+r11,r15,r15 +\s*[a-f0-9]+:\s*62 52 6e 08 f5 d7\s+\{evex\} pext\s+r10d,edx,r15d +\s*[a-f0-9]+:\s*62 52 86 08 f5 bc 80 23 01 00 00\s+\{evex\} pext\s+r15,r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d2 06 08 f5 94 80 23 01 00 00\s+\{evex\} pext\s+edx,r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 fc 08 88 ff\s+\{evex\} popcnt\s+r15,r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 88 d7\s+\{evex\} popcnt\s+edx,r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 88 c7\s+\{evex\} popcnt\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 fc 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 d7 7b\s+\{evex\}\s+rcl\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 d7 7b\s+\{evex\}\s+rcl\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 d7 7b\s+\{evex\}\s+rcl\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 d0 7b\s+\{evex\}\s+rcl\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 94 80 23 01 00 00 7b\s+\{evex\}\s+rcl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 94 80 23 01 00 00 7b\s+\{evex\}\s+rcl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 94 80 23 01 00 00 7b\s+\{evex\}\s+rcl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 94 80 23 01 00 00 7b\s+\{evex\}\s+rcl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 d7\s+\{evex\}\s+rcl\s+r15,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 d7\s+\{evex\}\s+rcl\s+r15d,1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 d7\s+\{evex\}\s+rcl\s+r15w,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d0\s+\{evex\}\s+rcl\s+r8b,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 d7\s+\{evex\}\s+rcl\s+r15,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 d7\s+\{evex\}\s+rcl\s+r15d,cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 d7\s+\{evex\}\s+rcl\s+r15w,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 d0\s+\{evex\}\s+rcl\s+r8b,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 df 7b\s+\{evex\}\s+rcr\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 df 7b\s+\{evex\}\s+rcr\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 df 7b\s+\{evex\}\s+rcr\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 d8 7b\s+\{evex\}\s+rcr\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 9c 80 23 01 00 00 7b\s+\{evex\}\s+rcr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 9c 80 23 01 00 00 7b\s+\{evex\}\s+rcr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 9c 80 23 01 00 00 7b\s+\{evex\}\s+rcr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 9c 80 23 01 00 00 7b\s+\{evex\}\s+rcr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 df\s+\{evex\}\s+rcr\s+r15,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 df\s+\{evex\}\s+rcr\s+r15d,1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 df\s+\{evex\}\s+rcr\s+r15w,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d8\s+\{evex\}\s+rcr\s+r8b,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 df\s+\{evex\}\s+rcr\s+r15,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 df\s+\{evex\}\s+rcr\s+r15d,cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 df\s+\{evex\}\s+rcr\s+r15w,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 d8\s+\{evex\}\s+rcr\s+r8b,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 c7 7b\s+\{evex\}\s+rol\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 c7 7b\s+\{evex\}\s+rol\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 c7 7b\s+\{evex\}\s+rol\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 c0 7b\s+\{evex\}\s+rol\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 84 80 23 01 00 00 7b\s+\{evex\}\s+rol\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 84 80 23 01 00 00 7b\s+\{evex\}\s+rol\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 84 80 23 01 00 00 7b\s+\{evex\}\s+rol\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 84 80 23 01 00 00 7b\s+\{evex\}\s+rol\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 c7\s+\{evex\}\s+rol\s+r15,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 c7\s+\{evex\}\s+rol\s+r15d,1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 c7\s+\{evex\}\s+rol\s+r15w,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c0\s+\{evex\}\s+rol\s+r8b,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 84 80 23 01 00 00\s+\{evex\}\s+rol\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 84 80 23 01 00 00\s+\{evex\}\s+rol\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 84 80 23 01 00 00\s+\{evex\}\s+rol\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 84 80 23 01 00 00\s+\{evex\}\s+rol\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 c7\s+\{evex\}\s+rol\s+r15,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 c7\s+\{evex\}\s+rol\s+r15d,cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 c7\s+\{evex\}\s+rol\s+r15w,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 c0\s+\{evex\}\s+rol\s+r8b,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 84 80 23 01 00 00\s+\{evex\}\s+rol\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 84 80 23 01 00 00\s+\{evex\}\s+rol\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 84 80 23 01 00 00\s+\{evex\}\s+rol\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 84 80 23 01 00 00\s+\{evex\}\s+rol\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 cf 7b\s+\{evex\}\s+ror\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 cf 7b\s+\{evex\}\s+ror\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 cf 7b\s+\{evex\}\s+ror\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 c8 7b\s+\{evex\}\s+ror\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 8c 80 23 01 00 00 7b\s+\{evex\}\s+ror\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 8c 80 23 01 00 00 7b\s+\{evex\}\s+ror\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 8c 80 23 01 00 00 7b\s+\{evex\}\s+ror\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 8c 80 23 01 00 00 7b\s+\{evex\}\s+ror\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 cf\s+\{evex\}\s+ror\s+r15,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 cf\s+\{evex\}\s+ror\s+r15d,1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 cf\s+\{evex\}\s+ror\s+r15w,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c8\s+\{evex\}\s+ror\s+r8b,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 cf\s+\{evex\}\s+ror\s+r15,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 cf\s+\{evex\}\s+ror\s+r15d,cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 cf\s+\{evex\}\s+ror\s+r15w,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 c8\s+\{evex\}\s+ror\s+r8b,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 53 ff 08 f0 ff 7b\s+\{evex\}\s+rorx\s+r15,r15,0x7b +\s*[a-f0-9]+:\s*62 d3 7f 08 f0 d7 7b\s+\{evex\}\s+rorx\s+edx,r15d,0x7b +\s*[a-f0-9]+:\s*62 53 ff 08 f0 bc 80 23 01 00 00 7b\s+\{evex\}\s+rorx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 53 7f 08 f0 bc 80 23 01 00 00 7b\s+\{evex\}\s+rorx\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ff 7b\s+\{evex\} sar\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ff 7b\s+\{evex\} sar\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ff 7b\s+\{evex\} sar\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 f8 7b\s+\{evex\} sar\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 bc 80 23 01 00 00 7b\s+\{evex\} sar\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sar\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sar\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sar\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ff\s+\{evex\} sar\s+r15,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ff\s+\{evex\} sar\s+r15d,1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ff\s+\{evex\} sar\s+r15w,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 f8\s+\{evex\} sar\s+r8b,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 bc 80 23 01 00 00\s+\{evex\} sar\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 bc 80 23 01 00 00\s+\{evex\} sar\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 bc 80 23 01 00 00\s+\{evex\} sar\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 bc 80 23 01 00 00\s+\{evex\} sar\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ff\s+\{evex\} sar\s+r15,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ff\s+\{evex\} sar\s+r15d,cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ff\s+\{evex\} sar\s+r15w,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 f8\s+\{evex\} sar\s+r8b,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 bc 80 23 01 00 00\s+\{evex\} sar\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 bc 80 23 01 00 00\s+\{evex\} sar\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 bc 80 23 01 00 00\s+\{evex\} sar\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 bc 80 23 01 00 00\s+\{evex\} sar\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 52 86 08 f7 df\s+\{evex\} sarx\s+r11,r15,r15 +\s*[a-f0-9]+:\s*62 52 86 08 f7 bc 80 23 01 00 00\s+\{evex\} sarx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 72 06 08 f7 d2\s+\{evex\} sarx\s+r10d,edx,r15d +\s*[a-f0-9]+:\s*62 d2 06 08 f7 94 80 23 01 00 00\s+\{evex\} sarx\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 83 df 7b\s+\{evex\} sbb\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 df 7b\s+\{evex\} sbb\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 df 7b\s+\{evex\} sbb\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 d8 7b\s+\{evex\} sbb\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 9c 80 23 01 00 00 7b\s+\{evex\} sbb\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbb\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbb\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbb\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 19 ff\s+\{evex\} sbb\s+r15,r15 +\s*[a-f0-9]+:\s*62 54 fc 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 74 7c 08 19 fa\s+\{evex\} sbb\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 7c 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 74 7d 08 19 f8\s+\{evex\} sbb\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 7d 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w +\s*[a-f0-9]+:\s*62 74 7c 08 18 c2\s+\{evex\} sbb\s+dl,r8b +\s*[a-f0-9]+:\s*62 54 7c 08 18 84 80 23 01 00 00\s+\{evex\} sbb\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b +\s*[a-f0-9]+:\s*62 54 fc 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 1a 84 80 23 01 00 00\s+\{evex\} sbb\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 d9 e5\s+\{evex\} sha1msg1 xmm12,xmm13 +\s*[a-f0-9]+:\s*62 54 7c 08 d9 a4 80 23 01 00 00\s+\{evex\} sha1msg1 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 da e5\s+\{evex\} sha1msg2 xmm12,xmm13 +\s*[a-f0-9]+:\s*62 54 7c 08 da a4 80 23 01 00 00\s+\{evex\} sha1msg2 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 d8 e5\s+\{evex\} sha1nexte xmm12,xmm13 +\s*[a-f0-9]+:\s*62 54 7c 08 d8 a4 80 23 01 00 00\s+\{evex\} sha1nexte xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 d4 e5 7b\s+\{evex\} sha1rnds4 xmm12,xmm13,0x7b +\s*[a-f0-9]+:\s*62 54 7c 08 d4 a4 80 23 01 00 00 7b\s+\{evex\} sha1rnds4 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 54 7c 08 dc e5\s+\{evex\} sha256msg1 xmm12,xmm13 +\s*[a-f0-9]+:\s*62 54 7c 08 dc a4 80 23 01 00 00\s+\{evex\} sha256msg1 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 dd e5\s+\{evex\} sha256msg2 xmm12,xmm13 +\s*[a-f0-9]+:\s*62 54 7c 08 dd a4 80 23 01 00 00\s+\{evex\} sha256msg2 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 db a4 80 23 01 00 00\s+\{evex\} sha256rnds2 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\],xmm0 +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 e7 7b\s+\{evex\} shl\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 e7 7b\s+\{evex\} shl\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 e7 7b\s+\{evex\} shl\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 e0 7b\s+\{evex\} shl\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 a4 80 23 01 00 00 7b\s+\{evex\} shl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 e7\s+\{evex\} shl\s+r15,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 e7\s+\{evex\} shl\s+r15d,1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 e7\s+\{evex\} shl\s+r15w,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e0\s+\{evex\} shl\s+r8b,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 a4 80 23 01 00 00\s+\{evex\} shl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 a4 80 23 01 00 00\s+\{evex\} shl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 a4 80 23 01 00 00\s+\{evex\} shl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 a4 80 23 01 00 00\s+\{evex\} shl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 e7\s+\{evex\} shl\s+r15,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 e7\s+\{evex\} shl\s+r15d,cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 e7\s+\{evex\} shl\s+r15w,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 e0\s+\{evex\} shl\s+r8b,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 a4 80 23 01 00 00\s+\{evex\} shl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 a4 80 23 01 00 00\s+\{evex\} shl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 a4 80 23 01 00 00\s+\{evex\} shl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 a4 80 23 01 00 00\s+\{evex\} shl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 54 fc 08 24 ff 7b\s+\{evex\} shld\s+r15,r15,0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,0x7b +\s*[a-f0-9]+:\s*62 74 7c 08 24 fa 7b\s+\{evex\} shld\s+edx,r15d,0x7b +\s*[a-f0-9]+:\s*62 54 7c 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d,0x7b +\s*[a-f0-9]+:\s*62 74 7d 08 24 f8 7b\s+\{evex\} shld\s+ax,r15w,0x7b +\s*[a-f0-9]+:\s*62 54 7d 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w,0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 a5 ff\s+\{evex\} shld\s+r15,r15,cl +\s*[a-f0-9]+:\s*62 54 fc 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,cl +\s*[a-f0-9]+:\s*62 74 7c 08 a5 fa\s+\{evex\} shld\s+edx,r15d,cl +\s*[a-f0-9]+:\s*62 54 7c 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d,cl +\s*[a-f0-9]+:\s*62 74 7d 08 a5 f8\s+\{evex\} shld\s+ax,r15w,cl +\s*[a-f0-9]+:\s*62 54 7d 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w,cl +\s*[a-f0-9]+:\s*62 52 85 08 f7 df\s+\{evex\} shlx\s+r11,r15,r15 +\s*[a-f0-9]+:\s*62 52 85 08 f7 bc 80 23 01 00 00\s+\{evex\} shlx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 72 05 08 f7 d2\s+\{evex\} shlx\s+r10d,edx,r15d +\s*[a-f0-9]+:\s*62 d2 05 08 f7 94 80 23 01 00 00\s+\{evex\} shlx\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ef 7b\s+\{evex\} shr\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ef 7b\s+\{evex\} shr\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ef 7b\s+\{evex\} shr\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 e8 7b\s+\{evex\} shr\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 ac 80 23 01 00 00 7b\s+\{evex\} shr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ef\s+\{evex\} shr\s+r15,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ef\s+\{evex\} shr\s+r15d,1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ef\s+\{evex\} shr\s+r15w,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e8\s+\{evex\} shr\s+r8b,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 ac 80 23 01 00 00\s+\{evex\} shr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ac 80 23 01 00 00\s+\{evex\} shr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ac 80 23 01 00 00\s+\{evex\} shr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ac 80 23 01 00 00\s+\{evex\} shr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ef\s+\{evex\} shr\s+r15,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ef\s+\{evex\} shr\s+r15d,cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ef\s+\{evex\} shr\s+r15w,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 e8\s+\{evex\} shr\s+r8b,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 ac 80 23 01 00 00\s+\{evex\} shr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ac 80 23 01 00 00\s+\{evex\} shr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ac 80 23 01 00 00\s+\{evex\} shr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ac 80 23 01 00 00\s+\{evex\} shr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 54 fc 08 2c ff 7b\s+\{evex\} shrd\s+r15,r15,0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,0x7b +\s*[a-f0-9]+:\s*62 74 7c 08 2c fa 7b\s+\{evex\} shrd\s+edx,r15d,0x7b +\s*[a-f0-9]+:\s*62 54 7c 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d,0x7b +\s*[a-f0-9]+:\s*62 74 7d 08 2c f8 7b\s+\{evex\} shrd\s+ax,r15w,0x7b +\s*[a-f0-9]+:\s*62 54 7d 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w,0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 ad ff\s+\{evex\} shrd\s+r15,r15,cl +\s*[a-f0-9]+:\s*62 54 fc 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,cl +\s*[a-f0-9]+:\s*62 74 7c 08 ad fa\s+\{evex\} shrd\s+edx,r15d,cl +\s*[a-f0-9]+:\s*62 54 7c 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d,cl +\s*[a-f0-9]+:\s*62 74 7d 08 ad f8\s+\{evex\} shrd\s+ax,r15w,cl +\s*[a-f0-9]+:\s*62 54 7d 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w,cl +\s*[a-f0-9]+:\s*62 52 87 08 f7 df\s+\{evex\} shrx\s+r11,r15,r15 +\s*[a-f0-9]+:\s*62 52 87 08 f7 bc 80 23 01 00 00\s+\{evex\} shrx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 72 07 08 f7 d2\s+\{evex\} shrx\s+r10d,edx,r15d +\s*[a-f0-9]+:\s*62 d2 07 08 f7 94 80 23 01 00 00\s+\{evex\} shrx\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 83 ef 7b\s+\{evex\} sub\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 ef 7b\s+\{evex\} sub\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 ef 7b\s+\{evex\} sub\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 e8 7b\s+\{evex\} sub\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 ac 80 23 01 00 00 7b\s+\{evex\} sub\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 ac 80 23 01 00 00 7b\s+\{evex\} sub\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 ac 80 23 01 00 00 7b\s+\{evex\} sub\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 83 ac 80 23 01 00 00 7b\s+\{evex\} sub\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 29 ff\s+\{evex\} sub\s+r15,r15 +\s*[a-f0-9]+:\s*62 54 fc 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 74 7c 08 29 fa\s+\{evex\} sub\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 7c 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 74 7d 08 29 f8\s+\{evex\} sub\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 7d 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w +\s*[a-f0-9]+:\s*62 74 7c 08 28 c2\s+\{evex\} sub\s+dl,r8b +\s*[a-f0-9]+:\s*62 54 7c 08 28 84 80 23 01 00 00\s+\{evex\} sub\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b +\s*[a-f0-9]+:\s*62 54 fc 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 2a 84 80 23 01 00 00\s+\{evex\} sub\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 fc 08 f4 ff\s+\{evex\} tzcnt\s+r15,r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f4 d7\s+\{evex\} tzcnt\s+edx,r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f4 c7\s+\{evex\} tzcnt\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 fc 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 66 bc 80 23 01 00 00\s+\{evex\} wrssd\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 54 fc 08 66 bc 80 23 01 00 00\s+\{evex\} wrssq\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 54 7d 08 65 bc 80 23 01 00 00\s+\{evex\} wrussd\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 54 fd 08 65 bc 80 23 01 00 00\s+\{evex\} wrussq\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 d4 fc 08 83 f7 7b\s+\{evex\} xor\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 f7 7b\s+\{evex\} xor\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 f7 7b\s+\{evex\} xor\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 f0 7b\s+\{evex\} xor\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 b4 80 23 01 00 00 7b\s+\{evex\} xor\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xor\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xor\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xor\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 31 ff\s+\{evex\} xor\s+r15,r15 +\s*[a-f0-9]+:\s*62 54 fc 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 74 7c 08 31 fa\s+\{evex\} xor\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 7c 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 74 7d 08 31 f8\s+\{evex\} xor\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 7d 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w +\s*[a-f0-9]+:\s*62 74 7c 08 30 c2\s+\{evex\} xor\s+dl,r8b +\s*[a-f0-9]+:\s*62 54 7c 08 30 84 80 23 01 00 00\s+\{evex\} xor\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b +\s*[a-f0-9]+:\s*62 54 fc 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 32 84 80 23 01 00 00\s+\{evex\} xor\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 fc 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 54 7c 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 54 fd 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aand\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 54 7d 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aand\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 83 d7 7b\s+\{evex\}\s+adc\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 d7 7b\s+\{evex\}\s+adc\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 d7 7b\s+\{evex\}\s+adc\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 d0 7b\s+\{evex\}\s+adc\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 94 80 23 01 00 00 7b\s+\{evex\}\s+adc\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 94 80 23 01 00 00 7b\s+\{evex\}\s+adc\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 94 80 23 01 00 00 7b\s+\{evex\}\s+adc\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 83 94 80 23 01 00 00 7b\s+\{evex\}\s+adc\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 11 ff\s+\{evex\}\s+adc\s+r15,r15 +\s*[a-f0-9]+:\s*62 54 fc 08 11 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 74 7c 08 11 fa\s+\{evex\}\s+adc\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 7c 08 11 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 74 7d 08 11 f8\s+\{evex\}\s+adc\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 7d 08 11 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w +\s*[a-f0-9]+:\s*62 74 7c 08 10 c2\s+\{evex\}\s+adc\s+dl,r8b +\s*[a-f0-9]+:\s*62 54 7c 08 10 84 80 23 01 00 00\s+\{evex\}\s+adc\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b +\s*[a-f0-9]+:\s*62 54 fc 08 13 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 13 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 13 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 12 84 80 23 01 00 00\s+\{evex\}\s+adc\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 fd 08 66 ff\s+\{evex\}\s+adcx\s+r15,r15 +\s*[a-f0-9]+:\s*62 d4 7d 08 66 d7\s+\{evex\}\s+adcx\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 fd 08 66 bc 80 23 01 00 00\s+\{evex\}\s+adcx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 66 bc 80 23 01 00 00\s+\{evex\}\s+adcx\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 83 c7 7b\s+\{evex\}\s+add\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 c7 7b\s+\{evex\}\s+add\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 c7 7b\s+\{evex\}\s+add\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 c0 7b\s+\{evex\}\s+add\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 84 80 23 01 00 00 7b\s+\{evex\}\s+add\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 84 80 23 01 00 00 7b\s+\{evex\}\s+add\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 84 80 23 01 00 00 7b\s+\{evex\}\s+add\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 83 84 80 23 01 00 00 7b\s+\{evex\}\s+add\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 01 ff\s+\{evex\}\s+add\s+r15,r15 +\s*[a-f0-9]+:\s*62 54 fc 08 01 bc 80 23 01 00 00\s+\{evex\}\s+add\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 74 7c 08 01 fa\s+\{evex\}\s+add\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 7c 08 01 bc 80 23 01 00 00\s+\{evex\}\s+add\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 74 7d 08 01 f8\s+\{evex\}\s+add\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 7d 08 01 bc 80 23 01 00 00\s+\{evex\}\s+add\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w +\s*[a-f0-9]+:\s*62 74 7c 08 00 c2\s+\{evex\}\s+add\s+dl,r8b +\s*[a-f0-9]+:\s*62 54 7c 08 00 84 80 23 01 00 00\s+\{evex\}\s+add\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b +\s*[a-f0-9]+:\s*62 54 fc 08 03 bc 80 23 01 00 00\s+\{evex\}\s+add\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 03 bc 80 23 01 00 00\s+\{evex\}\s+add\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 03 bc 80 23 01 00 00\s+\{evex\}\s+add\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 02 84 80 23 01 00 00\s+\{evex\}\s+add\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 fe 08 66 ff\s+\{evex\}\s+adox\s+r15,r15 +\s*[a-f0-9]+:\s*62 d4 7e 08 66 d7\s+\{evex\}\s+adox\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 fe 08 66 bc 80 23 01 00 00\s+\{evex\}\s+adox\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7e 08 66 bc 80 23 01 00 00\s+\{evex\}\s+adox\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7e 08 dd a4 80 23 01 00 00\s+\{evex\}\s+aesdec128kl xmm12,\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7e 08 df a4 80 23 01 00 00\s+\{evex\}\s+aesdec256kl xmm12,\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7e 08 d8 8c 80 23 01 00 00\s+\{evex\}\s+aesdecwide128kl\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7e 08 d8 9c 80 23 01 00 00\s+\{evex\}\s+aesdecwide256kl\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7e 08 dc a4 80 23 01 00 00\s+\{evex\}\s+aesenc128kl xmm12,\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7e 08 de a4 80 23 01 00 00\s+\{evex\}\s+aesenc256kl xmm12,\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7e 08 d8 84 80 23 01 00 00\s+\{evex\}\s+aesencwide128kl\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7e 08 d8 94 80 23 01 00 00\s+\{evex\}\s+aesencwide256kl\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 83 e7 7b\s+\{evex\}\s+and\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 e7 7b\s+\{evex\}\s+and\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 e7 7b\s+\{evex\}\s+and\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 e0 7b\s+\{evex\}\s+and\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 a4 80 23 01 00 00 7b\s+\{evex\}\s+and\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 a4 80 23 01 00 00 7b\s+\{evex\}\s+and\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 a4 80 23 01 00 00 7b\s+\{evex\}\s+and\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 83 a4 80 23 01 00 00 7b\s+\{evex\}\s+and\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 21 ff\s+\{evex\}\s+and\s+r15,r15 +\s*[a-f0-9]+:\s*62 54 fc 08 21 bc 80 23 01 00 00\s+\{evex\}\s+and\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 74 7c 08 21 fa\s+\{evex\}\s+and\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 7c 08 21 bc 80 23 01 00 00\s+\{evex\}\s+and\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 74 7d 08 21 f8\s+\{evex\}\s+and\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 7d 08 21 bc 80 23 01 00 00\s+\{evex\}\s+and\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w +\s*[a-f0-9]+:\s*62 74 7c 08 20 c2\s+\{evex\}\s+and\s+dl,r8b +\s*[a-f0-9]+:\s*62 54 7c 08 20 84 80 23 01 00 00\s+\{evex\}\s+and\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b +\s*[a-f0-9]+:\s*62 54 fc 08 23 bc 80 23 01 00 00\s+\{evex\}\s+and\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 23 bc 80 23 01 00 00\s+\{evex\}\s+and\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 23 bc 80 23 01 00 00\s+\{evex\}\s+and\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 22 84 80 23 01 00 00\s+\{evex\}\s+and\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 52 84 08 f2 df\s+\{evex\}\s+andn\s+r11,r15,r15 +\s*[a-f0-9]+:\s*62 52 6c 08 f2 d7\s+\{evex\}\s+andn\s+r10d,edx,r15d +\s*[a-f0-9]+:\s*62 52 84 08 f2 bc 80 23 01 00 00\s+\{evex\}\s+andn\s+r15,r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d2 04 08 f2 94 80 23 01 00 00\s+\{evex\}\s+andn\s+edx,r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 ff 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aor\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 54 7f 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aor\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 54 fe 08 fc bc 80 23 01 00 00\s+\{evex\}\s+axor\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 54 7e 08 fc bc 80 23 01 00 00\s+\{evex\}\s+axor\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 52 84 08 f7 df\s+\{evex\} bextr\s+r11,r15,r15 +\s*[a-f0-9]+:\s*62 52 84 08 f7 bc 80 23 01 00 00\s+\{evex\} bextr\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 72 04 08 f7 d2\s+\{evex\} bextr\s+r10d,edx,r15d +\s*[a-f0-9]+:\s*62 d2 04 08 f7 94 80 23 01 00 00\s+\{evex\} bextr\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 d2 84 08 f3 df\s+\{evex\} blsi\s+r15,r15 +\s*[a-f0-9]+:\s*62 d2 6c 08 f3 df\s+\{evex\} blsi\s+edx,r15d +\s*[a-f0-9]+:\s*62 d2 84 08 f3 9c 80 23 01 00 00\s+\{evex\} blsi\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d2 04 08 f3 9c 80 23 01 00 00\s+\{evex\} blsi\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d2 84 08 f3 d7\s+\{evex\} blsmsk\s+r15,r15 +\s*[a-f0-9]+:\s*62 d2 6c 08 f3 d7\s+\{evex\} blsmsk\s+edx,r15d +\s*[a-f0-9]+:\s*62 d2 84 08 f3 94 80 23 01 00 00\s+\{evex\} blsmsk\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d2 04 08 f3 94 80 23 01 00 00\s+\{evex\} blsmsk\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d2 84 08 f3 cf\s+\{evex\} blsr\s+r15,r15 +\s*[a-f0-9]+:\s*62 d2 6c 08 f3 cf\s+\{evex\} blsr\s+edx,r15d +\s*[a-f0-9]+:\s*62 d2 84 08 f3 8c 80 23 01 00 00\s+\{evex\} blsr\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d2 04 08 f3 8c 80 23 01 00 00\s+\{evex\} blsr\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 52 84 08 f5 df\s+\{evex\} bzhi\s+r11,r15,r15 +\s*[a-f0-9]+:\s*62 52 84 08 f5 bc 80 23 01 00 00\s+\{evex\} bzhi\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 72 04 08 f5 d2\s+\{evex\} bzhi\s+r10d,edx,r15d +\s*[a-f0-9]+:\s*62 d2 04 08 f5 94 80 23 01 00 00\s+\{evex\} bzhi\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 52 85 08 e6 bc 80 23 01 00 00\s+\{evex\} cmpbexadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e6 94 80 23 01 00 00\s+\{evex\} cmpbexadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 e2 bc 80 23 01 00 00\s+\{evex\} cmpbxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e2 94 80 23 01 00 00\s+\{evex\} cmpbxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 ee bc 80 23 01 00 00\s+\{evex\} cmplexadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 ee 94 80 23 01 00 00\s+\{evex\} cmplexadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 ec bc 80 23 01 00 00\s+\{evex\} cmplxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 ec 94 80 23 01 00 00\s+\{evex\} cmplxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 e7 bc 80 23 01 00 00\s+\{evex\} cmpnbexadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e7 94 80 23 01 00 00\s+\{evex\} cmpnbexadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 e3 bc 80 23 01 00 00\s+\{evex\} cmpnbxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e3 94 80 23 01 00 00\s+\{evex\} cmpnbxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 ef bc 80 23 01 00 00\s+\{evex\} cmpnlexadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 ef 94 80 23 01 00 00\s+\{evex\} cmpnlexadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 ed bc 80 23 01 00 00\s+\{evex\} cmpnlxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 ed 94 80 23 01 00 00\s+\{evex\} cmpnlxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 e1 bc 80 23 01 00 00\s+\{evex\} cmpnoxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e1 94 80 23 01 00 00\s+\{evex\} cmpnoxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 eb bc 80 23 01 00 00\s+\{evex\} cmpnpxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 eb 94 80 23 01 00 00\s+\{evex\} cmpnpxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 e9 bc 80 23 01 00 00\s+\{evex\} cmpnsxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e9 94 80 23 01 00 00\s+\{evex\} cmpnsxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 e5 bc 80 23 01 00 00\s+\{evex\} cmpnzxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e5 94 80 23 01 00 00\s+\{evex\} cmpnzxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 e0 bc 80 23 01 00 00\s+\{evex\} cmpoxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e0 94 80 23 01 00 00\s+\{evex\} cmpoxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 ea bc 80 23 01 00 00\s+\{evex\} cmppxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 ea 94 80 23 01 00 00\s+\{evex\} cmppxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 e8 bc 80 23 01 00 00\s+\{evex\} cmpsxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e8 94 80 23 01 00 00\s+\{evex\} cmpsxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 52 85 08 e4 bc 80 23 01 00 00\s+\{evex\} cmpzxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15 +\s*[a-f0-9]+:\s*62 d2 05 08 e4 94 80 23 01 00 00\s+\{evex\} cmpzxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 ff cf\s+\{evex\}\s+dec\s+r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 ff cf\s+\{evex\}\s+dec\s+r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 ff cf\s+\{evex\}\s+dec\s+r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 fe c8\s+\{evex\}\s+dec\s+r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 fe 8c 80 23 01 00 00\s+\{evex\}\s+dec\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7d 08 ff 8c 80 23 01 00 00\s+\{evex\}\s+dec\s+WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7c 08 ff 8c 80 23 01 00 00\s+\{evex\}\s+dec\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 ff 8c 80 23 01 00 00\s+\{evex\}\s+dec\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 f7\s+\{evex\}\s+div\s+r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 f7\s+\{evex\}\s+div\s+r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 f7\s+\{evex\}\s+div\s+r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 f0\s+\{evex\}\s+div\s+r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 b4 80 23 01 00 00\s+\{evex\}\s+div\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 b4 80 23 01 00 00\s+\{evex\}\s+div\s+WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 b4 80 23 01 00 00\s+\{evex\}\s+div\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 b4 80 23 01 00 00\s+\{evex\}\s+div\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7e 08 da d7\s+\{evex\}\s+encodekey128\s+edx,r15d +\s*[a-f0-9]+:\s*62 d4 7e 08 db d7\s+\{evex\}\s+encodekey256\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 7f 08 f8 bc 80 23 01 00 00\s+\{evex\}\s+enqcmd\s+r15,\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*67 62 54 7f 08 f8 bc 80 23 01 00 00\s+\{evex\}\s+enqcmd\s+r15d,\[r8d\+eax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7e 08 f8 bc 80 23 01 00 00\s+\{evex\}\s+enqcmds\s+r15,\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*67 62 54 7e 08 f8 bc 80 23 01 00 00\s+\{evex\}\s+enqcmds\s+r15d,\[r8d\+eax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ff\s+\{evex\} idiv\s+r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ff\s+\{evex\} idiv\s+r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ff\s+\{evex\} idiv\s+r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 f8\s+\{evex\} idiv\s+r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 bc 80 23 01 00 00\s+\{evex\} idiv\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 bc 80 23 01 00 00\s+\{evex\} idiv\s+WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 bc 80 23 01 00 00\s+\{evex\} idiv\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 bc 80 23 01 00 00\s+\{evex\} idiv\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ef\s+\{evex\} imul\s+r15 +\s*[a-f0-9]+:\s*62 54 fc 08 af ff\s+\{evex\} imul\s+r15,r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ef\s+\{evex\} imul\s+r15d +\s*[a-f0-9]+:\s*62 d4 7c 08 af d7\s+\{evex\} imul\s+edx,r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ef\s+\{evex\} imul\s+r15w +\s*[a-f0-9]+:\s*62 d4 7d 08 af c7\s+\{evex\} imul\s+ax,r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 e8\s+\{evex\} imul\s+r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 ac 80 23 01 00 00\s+\{evex\} imul\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ac 80 23 01 00 00\s+\{evex\} imul\s+WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ac 80 23 01 00 00\s+\{evex\} imul\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 fc 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ac 80 23 01 00 00\s+\{evex\} imul\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 ff c7\s+\{evex\} inc\s+r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 ff c7\s+\{evex\} inc\s+r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 ff c7\s+\{evex\} inc\s+r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 fe c0\s+\{evex\} inc\s+r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 fe 84 80 23 01 00 00\s+\{evex\} inc\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7d 08 ff 84 80 23 01 00 00\s+\{evex\} inc\s+WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7c 08 ff 84 80 23 01 00 00\s+\{evex\} inc\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 ff 84 80 23 01 00 00\s+\{evex\} inc\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7e 08 f0 bc 80 23 01 00 00\s+\{evex\} invept\s+r15,OWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7e 08 f2 bc 80 23 01 00 00\s+\{evex\} invpcid\s+r15,\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7e 08 f1 bc 80 23 01 00 00\s+\{evex\} invvpid\s+r15,OWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 f1 7d 08 90 eb\s+\{evex\}\s+kmovb\s+k5,k3 +\s*[a-f0-9]+:\s*62 71 7d 08 93 fd\s+\{evex\}\s+kmovb\s+r15d,k5 +\s*[a-f0-9]+:\s*62 d1 7d 08 91 ac 80 23 01 00 00\s+\{evex\}\s+kmovb\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],k5 +\s*[a-f0-9]+:\s*62 d1 7d 08 92 ef\s+\{evex\}\s+kmovb\s+k5,r15d +\s*[a-f0-9]+:\s*62 d1 7d 08 90 ac 80 23 01 00 00\s+\{evex\}\s+kmovb\s+k5,BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 f1 fd 08 90 eb\s+\{evex\}\s+kmovd\s+k5,k3 +\s*[a-f0-9]+:\s*62 71 7f 08 93 fd\s+\{evex\}\s+kmovd\s+r15d,k5 +\s*[a-f0-9]+:\s*62 d1 fd 08 91 ac 80 23 01 00 00\s+\{evex\}\s+kmovd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],k5 +\s*[a-f0-9]+:\s*62 d1 7f 08 92 ef\s+\{evex\}\s+kmovd\s+k5,r15d +\s*[a-f0-9]+:\s*62 d1 fd 08 90 ac 80 23 01 00 00\s+\{evex\}\s+kmovd\s+k5,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 f1 fc 08 90 eb\s+\{evex\}\s+kmovq\s+k5,k3 +\s*[a-f0-9]+:\s*62 71 ff 08 93 fd\s+\{evex\}\s+kmovq\s+r15,k5 +\s*[a-f0-9]+:\s*62 d1 fc 08 91 ac 80 23 01 00 00\s+\{evex\}\s+kmovq\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],k5 +\s*[a-f0-9]+:\s*62 d1 ff 08 92 ef\s+\{evex\}\s+kmovq\s+k5,r15 +\s*[a-f0-9]+:\s*62 d1 fc 08 90 ac 80 23 01 00 00\s+\{evex\}\s+kmovq\s+k5,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 f1 7c 08 90 eb\s+\{evex\}\s+kmovw\s+k5,k3 +\s*[a-f0-9]+:\s*62 71 7c 08 93 fd\s+\{evex\}\s+kmovw\s+r15d,k5 +\s*[a-f0-9]+:\s*62 d1 7c 08 91 ac 80 23 01 00 00\s+\{evex\}\s+kmovw\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],k5 +\s*[a-f0-9]+:\s*62 d1 7c 08 92 ef\s+\{evex\}\s+kmovw\s+k5,r15d +\s*[a-f0-9]+:\s*62 d1 7c 08 90 ac 80 23 01 00 00\s+\{evex\}\s+kmovw\s+k5,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 fc 08 f5 ff\s+\{evex\} lzcnt\s+r15,r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f5 d7\s+\{evex\} lzcnt\s+edx,r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f5 c7\s+\{evex\} lzcnt\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 fc 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 fc 08 60 ff\s+\{evex\} movbe\s+r15,r15 +\s*[a-f0-9]+:\s*62 54 fc 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 60 d7\s+\{evex\} movbe\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 7c 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 60 c7\s+\{evex\} movbe\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 7d 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w +\s*[a-f0-9]+:\s*62 54 fc 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 f8 bc 80 23 01 00 00\s+\{evex\} movdir64b\s+r15,\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*67 62 54 7d 08 f8 bc 80 23 01 00 00\s+\{evex\} movdir64b\s+r15d,\[r8d\+eax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 fc 08 f9 bc 80 23 01 00 00\s+\{evex\} movdiri\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 54 7c 08 f9 bc 80 23 01 00 00\s+\{evex\} movdiri\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 e7\s+\{evex\} mul\s+r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 e7\s+\{evex\} mul\s+r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 e7\s+\{evex\} mul\s+r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 e0\s+\{evex\} mul\s+r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 a4 80 23 01 00 00\s+\{evex\} mul\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 a4 80 23 01 00 00\s+\{evex\} mul\s+WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 a4 80 23 01 00 00\s+\{evex\} mul\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 a4 80 23 01 00 00\s+\{evex\} mul\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 52 87 08 f6 df\s+\{evex\} mulx\s+r11,r15,r15 +\s*[a-f0-9]+:\s*62 52 6f 08 f6 d7\s+\{evex\} mulx\s+r10d,edx,r15d +\s*[a-f0-9]+:\s*62 52 87 08 f6 bc 80 23 01 00 00\s+\{evex\} mulx\s+r15,r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d2 07 08 f6 94 80 23 01 00 00\s+\{evex\} mulx\s+edx,r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 df\s+\{evex\} neg\s+r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 df\s+\{evex\} neg\s+r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 df\s+\{evex\} neg\s+r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 d8\s+\{evex\} neg\s+r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 9c 80 23 01 00 00\s+\{evex\} neg\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 9c 80 23 01 00 00\s+\{evex\} neg\s+WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 9c 80 23 01 00 00\s+\{evex\} neg\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 9c 80 23 01 00 00\s+\{evex\} neg\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 d7\s+\{evex\} not\s+r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 d7\s+\{evex\} not\s+r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 d7\s+\{evex\} not\s+r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 d0\s+\{evex\} not\s+r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 94 80 23 01 00 00\s+\{evex\} not\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 94 80 23 01 00 00\s+\{evex\} not\s+WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 94 80 23 01 00 00\s+\{evex\} not\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 94 80 23 01 00 00\s+\{evex\} not\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 83 cf 7b\s+\{evex\} or\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 cf 7b\s+\{evex\} or\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 cf 7b\s+\{evex\} or\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 c8 7b\s+\{evex\} or\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 8c 80 23 01 00 00 7b\s+\{evex\} or\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 8c 80 23 01 00 00 7b\s+\{evex\} or\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 8c 80 23 01 00 00 7b\s+\{evex\} or\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 83 8c 80 23 01 00 00 7b\s+\{evex\} or\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 09 ff\s+\{evex\} or\s+r15,r15 +\s*[a-f0-9]+:\s*62 54 fc 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 74 7c 08 09 fa\s+\{evex\} or\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 7c 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 74 7d 08 09 f8\s+\{evex\} or\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 7d 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w +\s*[a-f0-9]+:\s*62 74 7c 08 08 c2\s+\{evex\} or\s+dl,r8b +\s*[a-f0-9]+:\s*62 54 7c 08 08 84 80 23 01 00 00\s+\{evex\} or\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b +\s*[a-f0-9]+:\s*62 54 fc 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 0a 84 80 23 01 00 00\s+\{evex\} or\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 52 87 08 f5 df\s+\{evex\} pdep\s+r11,r15,r15 +\s*[a-f0-9]+:\s*62 52 6f 08 f5 d7\s+\{evex\} pdep\s+r10d,edx,r15d +\s*[a-f0-9]+:\s*62 52 87 08 f5 bc 80 23 01 00 00\s+\{evex\} pdep\s+r15,r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d2 07 08 f5 94 80 23 01 00 00\s+\{evex\} pdep\s+edx,r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 52 86 08 f5 df\s+\{evex\} pext\s+r11,r15,r15 +\s*[a-f0-9]+:\s*62 52 6e 08 f5 d7\s+\{evex\} pext\s+r10d,edx,r15d +\s*[a-f0-9]+:\s*62 52 86 08 f5 bc 80 23 01 00 00\s+\{evex\} pext\s+r15,r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d2 06 08 f5 94 80 23 01 00 00\s+\{evex\} pext\s+edx,r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 fc 08 88 ff\s+\{evex\} popcnt\s+r15,r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 88 d7\s+\{evex\} popcnt\s+edx,r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 88 c7\s+\{evex\} popcnt\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 fc 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 d7 7b\s+\{evex\}\s+rcl\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 d7 7b\s+\{evex\}\s+rcl\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 d7 7b\s+\{evex\}\s+rcl\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 d0 7b\s+\{evex\}\s+rcl\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 94 80 23 01 00 00 7b\s+\{evex\}\s+rcl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 94 80 23 01 00 00 7b\s+\{evex\}\s+rcl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 94 80 23 01 00 00 7b\s+\{evex\}\s+rcl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 94 80 23 01 00 00 7b\s+\{evex\}\s+rcl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 d7\s+\{evex\}\s+rcl\s+r15,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 d7\s+\{evex\}\s+rcl\s+r15d,1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 d7\s+\{evex\}\s+rcl\s+r15w,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d0\s+\{evex\}\s+rcl\s+r8b,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 d7\s+\{evex\}\s+rcl\s+r15,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 d7\s+\{evex\}\s+rcl\s+r15d,cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 d7\s+\{evex\}\s+rcl\s+r15w,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 d0\s+\{evex\}\s+rcl\s+r8b,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 df 7b\s+\{evex\}\s+rcr\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 df 7b\s+\{evex\}\s+rcr\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 df 7b\s+\{evex\}\s+rcr\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 d8 7b\s+\{evex\}\s+rcr\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 9c 80 23 01 00 00 7b\s+\{evex\}\s+rcr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 9c 80 23 01 00 00 7b\s+\{evex\}\s+rcr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 9c 80 23 01 00 00 7b\s+\{evex\}\s+rcr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 9c 80 23 01 00 00 7b\s+\{evex\}\s+rcr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 df\s+\{evex\}\s+rcr\s+r15,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 df\s+\{evex\}\s+rcr\s+r15d,1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 df\s+\{evex\}\s+rcr\s+r15w,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d8\s+\{evex\}\s+rcr\s+r8b,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 df\s+\{evex\}\s+rcr\s+r15,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 df\s+\{evex\}\s+rcr\s+r15d,cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 df\s+\{evex\}\s+rcr\s+r15w,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 d8\s+\{evex\}\s+rcr\s+r8b,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 c7 7b\s+\{evex\}\s+rol\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 c7 7b\s+\{evex\}\s+rol\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 c7 7b\s+\{evex\}\s+rol\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 c0 7b\s+\{evex\}\s+rol\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 84 80 23 01 00 00 7b\s+\{evex\}\s+rol\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 84 80 23 01 00 00 7b\s+\{evex\}\s+rol\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 84 80 23 01 00 00 7b\s+\{evex\}\s+rol\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 84 80 23 01 00 00 7b\s+\{evex\}\s+rol\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 c7\s+\{evex\}\s+rol\s+r15,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 c7\s+\{evex\}\s+rol\s+r15d,1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 c7\s+\{evex\}\s+rol\s+r15w,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c0\s+\{evex\}\s+rol\s+r8b,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 84 80 23 01 00 00\s+\{evex\}\s+rol\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 84 80 23 01 00 00\s+\{evex\}\s+rol\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 84 80 23 01 00 00\s+\{evex\}\s+rol\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 84 80 23 01 00 00\s+\{evex\}\s+rol\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 c7\s+\{evex\}\s+rol\s+r15,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 c7\s+\{evex\}\s+rol\s+r15d,cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 c7\s+\{evex\}\s+rol\s+r15w,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 c0\s+\{evex\}\s+rol\s+r8b,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 84 80 23 01 00 00\s+\{evex\}\s+rol\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 84 80 23 01 00 00\s+\{evex\}\s+rol\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 84 80 23 01 00 00\s+\{evex\}\s+rol\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 84 80 23 01 00 00\s+\{evex\}\s+rol\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 cf 7b\s+\{evex\}\s+ror\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 cf 7b\s+\{evex\}\s+ror\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 cf 7b\s+\{evex\}\s+ror\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 c8 7b\s+\{evex\}\s+ror\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 8c 80 23 01 00 00 7b\s+\{evex\}\s+ror\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 8c 80 23 01 00 00 7b\s+\{evex\}\s+ror\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 8c 80 23 01 00 00 7b\s+\{evex\}\s+ror\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 8c 80 23 01 00 00 7b\s+\{evex\}\s+ror\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 cf\s+\{evex\}\s+ror\s+r15,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 cf\s+\{evex\}\s+ror\s+r15d,1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 cf\s+\{evex\}\s+ror\s+r15w,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c8\s+\{evex\}\s+ror\s+r8b,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 cf\s+\{evex\}\s+ror\s+r15,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 cf\s+\{evex\}\s+ror\s+r15d,cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 cf\s+\{evex\}\s+ror\s+r15w,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 c8\s+\{evex\}\s+ror\s+r8b,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 53 ff 08 f0 ff 7b\s+\{evex\}\s+rorx\s+r15,r15,0x7b +\s*[a-f0-9]+:\s*62 d3 7f 08 f0 d7 7b\s+\{evex\}\s+rorx\s+edx,r15d,0x7b +\s*[a-f0-9]+:\s*62 53 ff 08 f0 bc 80 23 01 00 00 7b\s+\{evex\}\s+rorx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 53 7f 08 f0 bc 80 23 01 00 00 7b\s+\{evex\}\s+rorx\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ff 7b\s+\{evex\} sar\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ff 7b\s+\{evex\} sar\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ff 7b\s+\{evex\} sar\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 f8 7b\s+\{evex\} sar\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 bc 80 23 01 00 00 7b\s+\{evex\} sar\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sar\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sar\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sar\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ff\s+\{evex\} sar\s+r15,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ff\s+\{evex\} sar\s+r15d,1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ff\s+\{evex\} sar\s+r15w,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 f8\s+\{evex\} sar\s+r8b,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 bc 80 23 01 00 00\s+\{evex\} sar\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 bc 80 23 01 00 00\s+\{evex\} sar\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 bc 80 23 01 00 00\s+\{evex\} sar\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 bc 80 23 01 00 00\s+\{evex\} sar\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ff\s+\{evex\} sar\s+r15,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ff\s+\{evex\} sar\s+r15d,cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ff\s+\{evex\} sar\s+r15w,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 f8\s+\{evex\} sar\s+r8b,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 bc 80 23 01 00 00\s+\{evex\} sar\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 bc 80 23 01 00 00\s+\{evex\} sar\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 bc 80 23 01 00 00\s+\{evex\} sar\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 bc 80 23 01 00 00\s+\{evex\} sar\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 52 86 08 f7 df\s+\{evex\} sarx\s+r11,r15,r15 +\s*[a-f0-9]+:\s*62 52 86 08 f7 bc 80 23 01 00 00\s+\{evex\} sarx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 72 06 08 f7 d2\s+\{evex\} sarx\s+r10d,edx,r15d +\s*[a-f0-9]+:\s*62 d2 06 08 f7 94 80 23 01 00 00\s+\{evex\} sarx\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 83 df 7b\s+\{evex\} sbb\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 df 7b\s+\{evex\} sbb\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 df 7b\s+\{evex\} sbb\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 d8 7b\s+\{evex\} sbb\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 9c 80 23 01 00 00 7b\s+\{evex\} sbb\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbb\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbb\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbb\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 19 ff\s+\{evex\} sbb\s+r15,r15 +\s*[a-f0-9]+:\s*62 54 fc 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 74 7c 08 19 fa\s+\{evex\} sbb\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 7c 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 74 7d 08 19 f8\s+\{evex\} sbb\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 7d 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w +\s*[a-f0-9]+:\s*62 74 7c 08 18 c2\s+\{evex\} sbb\s+dl,r8b +\s*[a-f0-9]+:\s*62 54 7c 08 18 84 80 23 01 00 00\s+\{evex\} sbb\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b +\s*[a-f0-9]+:\s*62 54 fc 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 1a 84 80 23 01 00 00\s+\{evex\} sbb\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 d9 e5\s+\{evex\} sha1msg1 xmm12,xmm13 +\s*[a-f0-9]+:\s*62 54 7c 08 d9 a4 80 23 01 00 00\s+\{evex\} sha1msg1 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 da e5\s+\{evex\} sha1msg2 xmm12,xmm13 +\s*[a-f0-9]+:\s*62 54 7c 08 da a4 80 23 01 00 00\s+\{evex\} sha1msg2 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 d8 e5\s+\{evex\} sha1nexte xmm12,xmm13 +\s*[a-f0-9]+:\s*62 54 7c 08 d8 a4 80 23 01 00 00\s+\{evex\} sha1nexte xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 d4 e5 7b\s+\{evex\} sha1rnds4 xmm12,xmm13,0x7b +\s*[a-f0-9]+:\s*62 54 7c 08 d4 a4 80 23 01 00 00 7b\s+\{evex\} sha1rnds4 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 54 7c 08 dc e5\s+\{evex\} sha256msg1 xmm12,xmm13 +\s*[a-f0-9]+:\s*62 54 7c 08 dc a4 80 23 01 00 00\s+\{evex\} sha256msg1 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 dd e5\s+\{evex\} sha256msg2 xmm12,xmm13 +\s*[a-f0-9]+:\s*62 54 7c 08 dd a4 80 23 01 00 00\s+\{evex\} sha256msg2 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 db a4 80 23 01 00 00\s+\{evex\} sha256rnds2 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\],xmm0 +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 e7 7b\s+\{evex\} shl\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 e7 7b\s+\{evex\} shl\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 e7 7b\s+\{evex\} shl\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 e0 7b\s+\{evex\} shl\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 a4 80 23 01 00 00 7b\s+\{evex\} shl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 e7\s+\{evex\} shl\s+r15,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 e7\s+\{evex\} shl\s+r15d,1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 e7\s+\{evex\} shl\s+r15w,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e0\s+\{evex\} shl\s+r8b,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 a4 80 23 01 00 00\s+\{evex\} shl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 a4 80 23 01 00 00\s+\{evex\} shl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 a4 80 23 01 00 00\s+\{evex\} shl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 a4 80 23 01 00 00\s+\{evex\} shl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 e7\s+\{evex\} shl\s+r15,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 e7\s+\{evex\} shl\s+r15d,cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 e7\s+\{evex\} shl\s+r15w,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 e0\s+\{evex\} shl\s+r8b,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 a4 80 23 01 00 00\s+\{evex\} shl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 a4 80 23 01 00 00\s+\{evex\} shl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 a4 80 23 01 00 00\s+\{evex\} shl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 a4 80 23 01 00 00\s+\{evex\} shl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 54 fc 08 24 ff 7b\s+\{evex\} shld\s+r15,r15,0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,0x7b +\s*[a-f0-9]+:\s*62 74 7c 08 24 fa 7b\s+\{evex\} shld\s+edx,r15d,0x7b +\s*[a-f0-9]+:\s*62 54 7c 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d,0x7b +\s*[a-f0-9]+:\s*62 74 7d 08 24 f8 7b\s+\{evex\} shld\s+ax,r15w,0x7b +\s*[a-f0-9]+:\s*62 54 7d 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w,0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 a5 ff\s+\{evex\} shld\s+r15,r15,cl +\s*[a-f0-9]+:\s*62 54 fc 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,cl +\s*[a-f0-9]+:\s*62 74 7c 08 a5 fa\s+\{evex\} shld\s+edx,r15d,cl +\s*[a-f0-9]+:\s*62 54 7c 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d,cl +\s*[a-f0-9]+:\s*62 74 7d 08 a5 f8\s+\{evex\} shld\s+ax,r15w,cl +\s*[a-f0-9]+:\s*62 54 7d 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w,cl +\s*[a-f0-9]+:\s*62 52 85 08 f7 df\s+\{evex\} shlx\s+r11,r15,r15 +\s*[a-f0-9]+:\s*62 52 85 08 f7 bc 80 23 01 00 00\s+\{evex\} shlx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 72 05 08 f7 d2\s+\{evex\} shlx\s+r10d,edx,r15d +\s*[a-f0-9]+:\s*62 d2 05 08 f7 94 80 23 01 00 00\s+\{evex\} shlx\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ef 7b\s+\{evex\} shr\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ef 7b\s+\{evex\} shr\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ef 7b\s+\{evex\} shr\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 e8 7b\s+\{evex\} shr\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 ac 80 23 01 00 00 7b\s+\{evex\} shr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ef\s+\{evex\} shr\s+r15,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ef\s+\{evex\} shr\s+r15d,1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ef\s+\{evex\} shr\s+r15w,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e8\s+\{evex\} shr\s+r8b,1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 ac 80 23 01 00 00\s+\{evex\} shr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ac 80 23 01 00 00\s+\{evex\} shr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ac 80 23 01 00 00\s+\{evex\} shr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ac 80 23 01 00 00\s+\{evex\} shr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1 +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ef\s+\{evex\} shr\s+r15,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ef\s+\{evex\} shr\s+r15d,cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ef\s+\{evex\} shr\s+r15w,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 e8\s+\{evex\} shr\s+r8b,cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 ac 80 23 01 00 00\s+\{evex\} shr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ac 80 23 01 00 00\s+\{evex\} shr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ac 80 23 01 00 00\s+\{evex\} shr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ac 80 23 01 00 00\s+\{evex\} shr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl +\s*[a-f0-9]+:\s*62 54 fc 08 2c ff 7b\s+\{evex\} shrd\s+r15,r15,0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,0x7b +\s*[a-f0-9]+:\s*62 74 7c 08 2c fa 7b\s+\{evex\} shrd\s+edx,r15d,0x7b +\s*[a-f0-9]+:\s*62 54 7c 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d,0x7b +\s*[a-f0-9]+:\s*62 74 7d 08 2c f8 7b\s+\{evex\} shrd\s+ax,r15w,0x7b +\s*[a-f0-9]+:\s*62 54 7d 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w,0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 ad ff\s+\{evex\} shrd\s+r15,r15,cl +\s*[a-f0-9]+:\s*62 54 fc 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,cl +\s*[a-f0-9]+:\s*62 74 7c 08 ad fa\s+\{evex\} shrd\s+edx,r15d,cl +\s*[a-f0-9]+:\s*62 54 7c 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d,cl +\s*[a-f0-9]+:\s*62 74 7d 08 ad f8\s+\{evex\} shrd\s+ax,r15w,cl +\s*[a-f0-9]+:\s*62 54 7d 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w,cl +\s*[a-f0-9]+:\s*62 52 87 08 f7 df\s+\{evex\} shrx\s+r11,r15,r15 +\s*[a-f0-9]+:\s*62 52 87 08 f7 bc 80 23 01 00 00\s+\{evex\} shrx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 72 07 08 f7 d2\s+\{evex\} shrx\s+r10d,edx,r15d +\s*[a-f0-9]+:\s*62 d2 07 08 f7 94 80 23 01 00 00\s+\{evex\} shrx\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 83 ef 7b\s+\{evex\} sub\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 ef 7b\s+\{evex\} sub\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 ef 7b\s+\{evex\} sub\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 e8 7b\s+\{evex\} sub\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 ac 80 23 01 00 00 7b\s+\{evex\} sub\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 ac 80 23 01 00 00 7b\s+\{evex\} sub\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 ac 80 23 01 00 00 7b\s+\{evex\} sub\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 83 ac 80 23 01 00 00 7b\s+\{evex\} sub\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 29 ff\s+\{evex\} sub\s+r15,r15 +\s*[a-f0-9]+:\s*62 54 fc 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 74 7c 08 29 fa\s+\{evex\} sub\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 7c 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 74 7d 08 29 f8\s+\{evex\} sub\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 7d 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w +\s*[a-f0-9]+:\s*62 74 7c 08 28 c2\s+\{evex\} sub\s+dl,r8b +\s*[a-f0-9]+:\s*62 54 7c 08 28 84 80 23 01 00 00\s+\{evex\} sub\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b +\s*[a-f0-9]+:\s*62 54 fc 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 2a 84 80 23 01 00 00\s+\{evex\} sub\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 fc 08 f4 ff\s+\{evex\} tzcnt\s+r15,r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f4 d7\s+\{evex\} tzcnt\s+edx,r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f4 c7\s+\{evex\} tzcnt\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 fc 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 66 bc 80 23 01 00 00\s+\{evex\} wrssd\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 54 fc 08 66 bc 80 23 01 00 00\s+\{evex\} wrssq\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 54 7d 08 65 bc 80 23 01 00 00\s+\{evex\} wrussd\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 54 fd 08 65 bc 80 23 01 00 00\s+\{evex\} wrussq\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 d4 fc 08 83 f7 7b\s+\{evex\} xor\s+r15,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 f7 7b\s+\{evex\} xor\s+r15d,0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 f7 7b\s+\{evex\} xor\s+r15w,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 f0 7b\s+\{evex\} xor\s+r8b,0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 b4 80 23 01 00 00 7b\s+\{evex\} xor\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7d 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xor\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 7c 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xor\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 d4 fc 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xor\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b +\s*[a-f0-9]+:\s*62 54 fc 08 31 ff\s+\{evex\} xor\s+r15,r15 +\s*[a-f0-9]+:\s*62 54 fc 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15 +\s*[a-f0-9]+:\s*62 74 7c 08 31 fa\s+\{evex\} xor\s+edx,r15d +\s*[a-f0-9]+:\s*62 54 7c 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d +\s*[a-f0-9]+:\s*62 74 7d 08 31 f8\s+\{evex\} xor\s+ax,r15w +\s*[a-f0-9]+:\s*62 54 7d 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w +\s*[a-f0-9]+:\s*62 74 7c 08 30 c2\s+\{evex\} xor\s+dl,r8b +\s*[a-f0-9]+:\s*62 54 7c 08 30 84 80 23 01 00 00\s+\{evex\} xor\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b +\s*[a-f0-9]+:\s*62 54 fc 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7d 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\] +\s*[a-f0-9]+:\s*62 54 7c 08 32 84 80 23 01 00 00\s+\{evex\} xor\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\] diff --git a/gas/testsuite/gas/i386/x86-64-apx_f-evex.d b/gas/testsuite/gas/i386/x86-64-apx_f-evex.d new file mode 100644 index 00000000000..73f4aea747a --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-apx_f-evex.d @@ -0,0 +1,1184 @@ +#as: +#objdump: -dw +#name: x86_64 APX_F insns with evex pseudo prefix +#source: x86-64-apx_f-evex.s + +.*: +file format .* + +Disassembly of section \.text: + +0+ <_start>: +\s*[a-f0-9]+:\s*62 54 fc 08 fc bc 80 23 01 00 00\s+\{evex\} aadd\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7c 08 fc bc 80 23 01 00 00\s+\{evex\} aadd\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fd 08 fc bc 80 23 01 00 00\s+\{evex\} aand\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7d 08 fc bc 80 23 01 00 00\s+\{evex\} aand\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 d7 7b\s+\{evex\} adc\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 d7 7b\s+\{evex\} adc\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 d7 7b\s+\{evex\} adc\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 d0 7b\s+\{evex\} adc\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 94 80 23 01 00 00 7b\s+\{evex\} adcb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 94 80 23 01 00 00 7b\s+\{evex\} adcw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 94 80 23 01 00 00 7b\s+\{evex\} adcl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 94 80 23 01 00 00 7b\s+\{evex\} adcq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 11 ff\s+\{evex\} adc\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 11 bc 80 23 01 00 00\s+\{evex\} adc\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 11 fa\s+\{evex\} adc\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 11 bc 80 23 01 00 00\s+\{evex\} adc\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 11 f8\s+\{evex\} adc\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 11 bc 80 23 01 00 00\s+\{evex\} adc\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 10 c2\s+\{evex\} adc\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 10 84 80 23 01 00 00\s+\{evex\} adc\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 13 bc 80 23 01 00 00\s+\{evex\} adc\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 13 bc 80 23 01 00 00\s+\{evex\} adc\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 13 bc 80 23 01 00 00\s+\{evex\} adc\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 12 84 80 23 01 00 00\s+\{evex\} adc\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 54 fd 08 66 ff\s+\{evex\} adcx\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d4 7d 08 66 d7\s+\{evex\} adcx\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 fd 08 66 bc 80 23 01 00 00\s+\{evex\} adcx\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7d 08 66 bc 80 23 01 00 00\s+\{evex\} adcx\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 83 c7 7b\s+\{evex\} add\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 c7 7b\s+\{evex\} add\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 c7 7b\s+\{evex\} add\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 c0 7b\s+\{evex\} add\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 84 80 23 01 00 00 7b\s+\{evex\} addb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 84 80 23 01 00 00 7b\s+\{evex\} addw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 84 80 23 01 00 00 7b\s+\{evex\} addl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 84 80 23 01 00 00 7b\s+\{evex\} addq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 01 ff\s+\{evex\} add\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 01 bc 80 23 01 00 00\s+\{evex\} add\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 01 fa\s+\{evex\} add\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 01 bc 80 23 01 00 00\s+\{evex\} add\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 01 f8\s+\{evex\} add\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 01 bc 80 23 01 00 00\s+\{evex\} add\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 00 c2\s+\{evex\} add\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 00 84 80 23 01 00 00\s+\{evex\} add\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 03 bc 80 23 01 00 00\s+\{evex\} add\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 03 bc 80 23 01 00 00\s+\{evex\} add\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 03 bc 80 23 01 00 00\s+\{evex\} add\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 02 84 80 23 01 00 00\s+\{evex\} add\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 54 fe 08 66 ff\s+\{evex\} adox\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d4 7e 08 66 d7\s+\{evex\} adox\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 fe 08 66 bc 80 23 01 00 00\s+\{evex\} adox\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7e 08 66 bc 80 23 01 00 00\s+\{evex\} adox\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7e 08 dd a4 80 23 01 00 00\s+\{evex\} aesdec128kl\s+0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 54 7e 08 df a4 80 23 01 00 00\s+\{evex\} aesdec256kl\s+0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 d4 7e 08 d8 8c 80 23 01 00 00\s+\{evex\} aesdecwide128kl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7e 08 d8 9c 80 23 01 00 00\s+\{evex\} aesdecwide256kl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7e 08 dc a4 80 23 01 00 00\s+\{evex\} aesenc128kl\s+0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 54 7e 08 de a4 80 23 01 00 00\s+\{evex\} aesenc256kl\s+0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 d4 7e 08 d8 84 80 23 01 00 00\s+\{evex\} aesencwide128kl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7e 08 d8 94 80 23 01 00 00\s+\{evex\} aesencwide256kl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 e7 7b\s+\{evex\} and\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 e7 7b\s+\{evex\} and\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 e7 7b\s+\{evex\} and\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 e0 7b\s+\{evex\} and\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 a4 80 23 01 00 00 7b\s+\{evex\} andb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 a4 80 23 01 00 00 7b\s+\{evex\} andw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 a4 80 23 01 00 00 7b\s+\{evex\} andl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 a4 80 23 01 00 00 7b\s+\{evex\} andq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 21 ff\s+\{evex\} and\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 21 bc 80 23 01 00 00\s+\{evex\} and\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 21 fa\s+\{evex\} and\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 21 bc 80 23 01 00 00\s+\{evex\} and\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 21 f8\s+\{evex\} and\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 21 bc 80 23 01 00 00\s+\{evex\} and\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 20 c2\s+\{evex\} and\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 20 84 80 23 01 00 00\s+\{evex\} and\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 23 bc 80 23 01 00 00\s+\{evex\} and\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 23 bc 80 23 01 00 00\s+\{evex\} and\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 23 bc 80 23 01 00 00\s+\{evex\} and\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 22 84 80 23 01 00 00\s+\{evex\} and\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 52 84 08 f2 df\s+\{evex\} andn\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 6c 08 f2 d7\s+\{evex\} andn\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 52 84 08 f2 bc 80 23 01 00 00\s+\{evex\} andn\s+0x123\(%r8,%rax,4\),%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 04 08 f2 94 80 23 01 00 00\s+\{evex\} andn\s+0x123\(%r8,%rax,4\),%r15d,%edx +\s*[a-f0-9]+:\s*62 54 ff 08 fc bc 80 23 01 00 00\s+\{evex\} aor\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7f 08 fc bc 80 23 01 00 00\s+\{evex\} aor\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fe 08 fc bc 80 23 01 00 00\s+\{evex\} axor\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7e 08 fc bc 80 23 01 00 00\s+\{evex\} axor\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 84 08 f7 df\s+\{evex\} bextr\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 84 08 f7 bc 80 23 01 00 00\s+\{evex\} bextr\s+%r15,0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 72 04 08 f7 d2\s+\{evex\} bextr\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 d2 04 08 f7 94 80 23 01 00 00\s+\{evex\} bextr\s+%r15d,0x123\(%r8,%rax,4\),%edx +\s*[a-f0-9]+:\s*62 d2 84 08 f3 df\s+\{evex\} blsi\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 6c 08 f3 df\s+\{evex\} blsi\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d2 84 08 f3 9c 80 23 01 00 00\s+\{evex\} blsi\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 d2 04 08 f3 9c 80 23 01 00 00\s+\{evex\} blsi\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 d2 84 08 f3 d7\s+\{evex\} blsmsk\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 6c 08 f3 d7\s+\{evex\} blsmsk\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d2 84 08 f3 94 80 23 01 00 00\s+\{evex\} blsmsk\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 d2 04 08 f3 94 80 23 01 00 00\s+\{evex\} blsmsk\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 d2 84 08 f3 cf\s+\{evex\} blsr\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 6c 08 f3 cf\s+\{evex\} blsr\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d2 84 08 f3 8c 80 23 01 00 00\s+\{evex\} blsr\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 d2 04 08 f3 8c 80 23 01 00 00\s+\{evex\} blsr\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 52 84 08 f5 df\s+\{evex\} bzhi\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 84 08 f5 bc 80 23 01 00 00\s+\{evex\} bzhi\s+%r15,0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 72 04 08 f5 d2\s+\{evex\} bzhi\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 d2 04 08 f5 94 80 23 01 00 00\s+\{evex\} bzhi\s+%r15d,0x123\(%r8,%rax,4\),%edx +\s*[a-f0-9]+:\s*62 52 85 08 e6 bc 80 23 01 00 00\s+\{evex\} cmpbexadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e6 94 80 23 01 00 00\s+\{evex\} cmpbexadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e2 bc 80 23 01 00 00\s+\{evex\} cmpbxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e2 94 80 23 01 00 00\s+\{evex\} cmpbxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 ee bc 80 23 01 00 00\s+\{evex\} cmplexadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 ee 94 80 23 01 00 00\s+\{evex\} cmplexadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 ec bc 80 23 01 00 00\s+\{evex\} cmplxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 ec 94 80 23 01 00 00\s+\{evex\} cmplxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e7 bc 80 23 01 00 00\s+\{evex\} cmpnbexadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e7 94 80 23 01 00 00\s+\{evex\} cmpnbexadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e3 bc 80 23 01 00 00\s+\{evex\} cmpnbxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e3 94 80 23 01 00 00\s+\{evex\} cmpnbxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 ef bc 80 23 01 00 00\s+\{evex\} cmpnlexadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 ef 94 80 23 01 00 00\s+\{evex\} cmpnlexadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 ed bc 80 23 01 00 00\s+\{evex\} cmpnlxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 ed 94 80 23 01 00 00\s+\{evex\} cmpnlxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e1 bc 80 23 01 00 00\s+\{evex\} cmpnoxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e1 94 80 23 01 00 00\s+\{evex\} cmpnoxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 eb bc 80 23 01 00 00\s+\{evex\} cmpnpxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 eb 94 80 23 01 00 00\s+\{evex\} cmpnpxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e9 bc 80 23 01 00 00\s+\{evex\} cmpnsxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e9 94 80 23 01 00 00\s+\{evex\} cmpnsxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e5 bc 80 23 01 00 00\s+\{evex\} cmpnzxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e5 94 80 23 01 00 00\s+\{evex\} cmpnzxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e0 bc 80 23 01 00 00\s+\{evex\} cmpoxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e0 94 80 23 01 00 00\s+\{evex\} cmpoxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 ea bc 80 23 01 00 00\s+\{evex\} cmppxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 ea 94 80 23 01 00 00\s+\{evex\} cmppxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e8 bc 80 23 01 00 00\s+\{evex\} cmpsxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e8 94 80 23 01 00 00\s+\{evex\} cmpsxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e4 bc 80 23 01 00 00\s+\{evex\} cmpzxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e4 94 80 23 01 00 00\s+\{evex\} cmpzxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 ff cf\s+\{evex\} dec\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 ff cf\s+\{evex\} dec\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 ff cf\s+\{evex\} dec\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 fe c8\s+\{evex\} dec\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 fe 8c 80 23 01 00 00\s+\{evex\} decb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 ff 8c 80 23 01 00 00\s+\{evex\} decw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 ff 8c 80 23 01 00 00\s+\{evex\} decl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 ff 8c 80 23 01 00 00\s+\{evex\} decq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 f7\s+\{evex\} div\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 f7\s+\{evex\} div\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 f7\s+\{evex\} div\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 f0\s+\{evex\} div\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 b4 80 23 01 00 00\s+\{evex\} divb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 b4 80 23 01 00 00\s+\{evex\} divw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 b4 80 23 01 00 00\s+\{evex\} divl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 b4 80 23 01 00 00\s+\{evex\} divq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7e 08 da d7\s+\{evex\} encodekey128\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d4 7e 08 db d7\s+\{evex\} encodekey256\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7f 08 f8 bc 80 23 01 00 00\s+\{evex\} enqcmd\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*67 62 54 7f 08 f8 bc 80 23 01 00 00\s+\{evex\} enqcmd\s+0x123\(%r8d,%eax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7e 08 f8 bc 80 23 01 00 00\s+\{evex\} enqcmds\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*67 62 54 7e 08 f8 bc 80 23 01 00 00\s+\{evex\} enqcmds\s+0x123\(%r8d,%eax,4\),%r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ff\s+\{evex\} idiv\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ff\s+\{evex\} idiv\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ff\s+\{evex\} idiv\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 f8\s+\{evex\} idiv\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 bc 80 23 01 00 00\s+\{evex\} idivb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 bc 80 23 01 00 00\s+\{evex\} idivw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 bc 80 23 01 00 00\s+\{evex\} idivl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 bc 80 23 01 00 00\s+\{evex\} idivq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ef\s+\{evex\} imul\s+%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 af ff\s+\{evex\} imul\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ef\s+\{evex\} imul\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7c 08 af d7\s+\{evex\} imul\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ef\s+\{evex\} imul\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7d 08 af c7\s+\{evex\} imul\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 e8\s+\{evex\} imul\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 ac 80 23 01 00 00\s+\{evex\} imulb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ac 80 23 01 00 00\s+\{evex\} imulw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ac 80 23 01 00 00\s+\{evex\} imull\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ac 80 23 01 00 00\s+\{evex\} imulq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 ff c7\s+\{evex\} inc\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 ff c7\s+\{evex\} inc\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 ff c7\s+\{evex\} inc\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 fe c0\s+\{evex\} inc\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 fe 84 80 23 01 00 00\s+\{evex\} incb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 ff 84 80 23 01 00 00\s+\{evex\} incw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 ff 84 80 23 01 00 00\s+\{evex\} incl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 ff 84 80 23 01 00 00\s+\{evex\} incq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7e 08 f0 bc 80 23 01 00 00\s+\{evex\} invept\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7e 08 f2 bc 80 23 01 00 00\s+\{evex\} invpcid\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7e 08 f1 bc 80 23 01 00 00\s+\{evex\} invvpid\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 f1 7d 08 90 eb\s+\{evex\} kmovb\s+%k3,%k5 +\s*[a-f0-9]+:\s*62 71 7d 08 93 fd\s+\{evex\} kmovb\s+%k5,%r15d +\s*[a-f0-9]+:\s*62 d1 7d 08 91 ac 80 23 01 00 00\s+\{evex\} kmovb\s+%k5,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d1 7d 08 92 ef\s+\{evex\} kmovb\s+%r15d,%k5 +\s*[a-f0-9]+:\s*62 d1 7d 08 90 ac 80 23 01 00 00\s+\{evex\} kmovb\s+0x123\(%r8,%rax,4\),%k5 +\s*[a-f0-9]+:\s*62 f1 fd 08 90 eb\s+\{evex\} kmovd\s+%k3,%k5 +\s*[a-f0-9]+:\s*62 71 7f 08 93 fd\s+\{evex\} kmovd\s+%k5,%r15d +\s*[a-f0-9]+:\s*62 d1 fd 08 91 ac 80 23 01 00 00\s+\{evex\} kmovd\s+%k5,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d1 7f 08 92 ef\s+\{evex\} kmovd\s+%r15d,%k5 +\s*[a-f0-9]+:\s*62 d1 fd 08 90 ac 80 23 01 00 00\s+\{evex\} kmovd\s+0x123\(%r8,%rax,4\),%k5 +\s*[a-f0-9]+:\s*62 f1 fc 08 90 eb\s+\{evex\} kmovq\s+%k3,%k5 +\s*[a-f0-9]+:\s*62 71 ff 08 93 fd\s+\{evex\} kmovq\s+%k5,%r15 +\s*[a-f0-9]+:\s*62 d1 fc 08 91 ac 80 23 01 00 00\s+\{evex\} kmovq\s+%k5,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d1 ff 08 92 ef\s+\{evex\} kmovq\s+%r15,%k5 +\s*[a-f0-9]+:\s*62 d1 fc 08 90 ac 80 23 01 00 00\s+\{evex\} kmovq\s+0x123\(%r8,%rax,4\),%k5 +\s*[a-f0-9]+:\s*62 f1 7c 08 90 eb\s+\{evex\} kmovw\s+%k3,%k5 +\s*[a-f0-9]+:\s*62 71 7c 08 93 fd\s+\{evex\} kmovw\s+%k5,%r15d +\s*[a-f0-9]+:\s*62 d1 7c 08 91 ac 80 23 01 00 00\s+\{evex\} kmovw\s+%k5,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d1 7c 08 92 ef\s+\{evex\} kmovw\s+%r15d,%k5 +\s*[a-f0-9]+:\s*62 d1 7c 08 90 ac 80 23 01 00 00\s+\{evex\} kmovw\s+0x123\(%r8,%rax,4\),%k5 +\s*[a-f0-9]+:\s*62 54 fc 08 f5 ff\s+\{evex\} lzcnt\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f5 d7\s+\{evex\} lzcnt\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d4 7d 08 f5 c7\s+\{evex\} lzcnt\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 fc 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 fc 08 60 ff\s+\{evex\} movbe\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 60 d7\s+\{evex\} movbe\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 60 c7\s+\{evex\} movbe\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7d 08 f8 bc 80 23 01 00 00\s+\{evex\} movdir64b\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*67 62 54 7d 08 f8 bc 80 23 01 00 00\s+\{evex\} movdir64b\s+0x123\(%r8d,%eax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 fc 08 f9 bc 80 23 01 00 00\s+\{evex\} movdiri\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7c 08 f9 bc 80 23 01 00 00\s+\{evex\} movdiri\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 e7\s+\{evex\} mul\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 e7\s+\{evex\} mul\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 e7\s+\{evex\} mul\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 e0\s+\{evex\} mul\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 a4 80 23 01 00 00\s+\{evex\} mulb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 a4 80 23 01 00 00\s+\{evex\} mulw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 a4 80 23 01 00 00\s+\{evex\} mull\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 a4 80 23 01 00 00\s+\{evex\} mulq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 87 08 f6 df\s+\{evex\} mulx\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 6f 08 f6 d7\s+\{evex\} mulx\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 52 87 08 f6 bc 80 23 01 00 00\s+\{evex\} mulx\s+0x123\(%r8,%rax,4\),%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 07 08 f6 94 80 23 01 00 00\s+\{evex\} mulx\s+0x123\(%r8,%rax,4\),%r15d,%edx +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 df\s+\{evex\} neg\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 df\s+\{evex\} neg\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 df\s+\{evex\} neg\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 d8\s+\{evex\} neg\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 9c 80 23 01 00 00\s+\{evex\} negb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 9c 80 23 01 00 00\s+\{evex\} negw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 9c 80 23 01 00 00\s+\{evex\} negl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 9c 80 23 01 00 00\s+\{evex\} negq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 d7\s+\{evex\} not\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 d7\s+\{evex\} not\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 d7\s+\{evex\} not\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 d0\s+\{evex\} not\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 94 80 23 01 00 00\s+\{evex\} notb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 94 80 23 01 00 00\s+\{evex\} notw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 94 80 23 01 00 00\s+\{evex\} notl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 94 80 23 01 00 00\s+\{evex\} notq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 cf 7b\s+\{evex\} or\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 cf 7b\s+\{evex\} or\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 cf 7b\s+\{evex\} or\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 c8 7b\s+\{evex\} or\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 8c 80 23 01 00 00 7b\s+\{evex\} orb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 8c 80 23 01 00 00 7b\s+\{evex\} orw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 8c 80 23 01 00 00 7b\s+\{evex\} orl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 8c 80 23 01 00 00 7b\s+\{evex\} orq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 09 ff\s+\{evex\} or\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 09 fa\s+\{evex\} or\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 09 f8\s+\{evex\} or\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 08 c2\s+\{evex\} or\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 08 84 80 23 01 00 00\s+\{evex\} or\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 0a 84 80 23 01 00 00\s+\{evex\} or\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 52 87 08 f5 df\s+\{evex\} pdep\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 6f 08 f5 d7\s+\{evex\} pdep\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 52 87 08 f5 bc 80 23 01 00 00\s+\{evex\} pdep\s+0x123\(%r8,%rax,4\),%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 07 08 f5 94 80 23 01 00 00\s+\{evex\} pdep\s+0x123\(%r8,%rax,4\),%r15d,%edx +\s*[a-f0-9]+:\s*62 52 86 08 f5 df\s+\{evex\} pext\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 6e 08 f5 d7\s+\{evex\} pext\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 52 86 08 f5 bc 80 23 01 00 00\s+\{evex\} pext\s+0x123\(%r8,%rax,4\),%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 06 08 f5 94 80 23 01 00 00\s+\{evex\} pext\s+0x123\(%r8,%rax,4\),%r15d,%edx +\s*[a-f0-9]+:\s*62 54 fc 08 88 ff\s+\{evex\} popcnt\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 88 d7\s+\{evex\} popcnt\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d4 7d 08 88 c7\s+\{evex\} popcnt\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 fc 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 d7 7b\s+\{evex\} rcl\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 d7 7b\s+\{evex\} rcl\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 d7 7b\s+\{evex\} rcl\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 d0 7b\s+\{evex\} rcl\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 94 80 23 01 00 00 7b\s+\{evex\} rclb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 94 80 23 01 00 00 7b\s+\{evex\} rclw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 94 80 23 01 00 00 7b\s+\{evex\} rcll\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 94 80 23 01 00 00 7b\s+\{evex\} rclq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 d7\s+\{evex\} rcl\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 d7\s+\{evex\} rcl\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 d7\s+\{evex\} rcl\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d0\s+\{evex\} rcl\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 94 80 23 01 00 00\s+\{evex\} rclb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 94 80 23 01 00 00\s+\{evex\} rclw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 94 80 23 01 00 00\s+\{evex\} rcll\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 94 80 23 01 00 00\s+\{evex\} rclq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 d7\s+\{evex\} rcl\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 d7\s+\{evex\} rcl\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 d7\s+\{evex\} rcl\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 d0\s+\{evex\} rcl\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 94 80 23 01 00 00\s+\{evex\} rclb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 94 80 23 01 00 00\s+\{evex\} rclw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 94 80 23 01 00 00\s+\{evex\} rcll\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 94 80 23 01 00 00\s+\{evex\} rclq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 df 7b\s+\{evex\} rcr\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 df 7b\s+\{evex\} rcr\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 df 7b\s+\{evex\} rcr\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 d8 7b\s+\{evex\} rcr\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 9c 80 23 01 00 00 7b\s+\{evex\} rcrb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 9c 80 23 01 00 00 7b\s+\{evex\} rcrw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 9c 80 23 01 00 00 7b\s+\{evex\} rcrl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 9c 80 23 01 00 00 7b\s+\{evex\} rcrq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 df\s+\{evex\} rcr\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 df\s+\{evex\} rcr\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 df\s+\{evex\} rcr\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d8\s+\{evex\} rcr\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 9c 80 23 01 00 00\s+\{evex\} rcrb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 9c 80 23 01 00 00\s+\{evex\} rcrw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 9c 80 23 01 00 00\s+\{evex\} rcrl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 9c 80 23 01 00 00\s+\{evex\} rcrq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 df\s+\{evex\} rcr\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 df\s+\{evex\} rcr\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 df\s+\{evex\} rcr\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 d8\s+\{evex\} rcr\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 9c 80 23 01 00 00\s+\{evex\} rcrb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 9c 80 23 01 00 00\s+\{evex\} rcrw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 9c 80 23 01 00 00\s+\{evex\} rcrl\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 9c 80 23 01 00 00\s+\{evex\} rcrq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 c7 7b\s+\{evex\} rol\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 c7 7b\s+\{evex\} rol\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 c7 7b\s+\{evex\} rol\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 c0 7b\s+\{evex\} rol\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 84 80 23 01 00 00 7b\s+\{evex\} rolb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 84 80 23 01 00 00 7b\s+\{evex\} rolw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 84 80 23 01 00 00 7b\s+\{evex\} roll\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 84 80 23 01 00 00 7b\s+\{evex\} rolq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 c7\s+\{evex\} rol\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 c7\s+\{evex\} rol\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 c7\s+\{evex\} rol\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c0\s+\{evex\} rol\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 84 80 23 01 00 00\s+\{evex\} rolb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 84 80 23 01 00 00\s+\{evex\} rolw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 84 80 23 01 00 00\s+\{evex\} roll\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 84 80 23 01 00 00\s+\{evex\} rolq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 c7\s+\{evex\} rol\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 c7\s+\{evex\} rol\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 c7\s+\{evex\} rol\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 c0\s+\{evex\} rol\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 84 80 23 01 00 00\s+\{evex\} rolb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 84 80 23 01 00 00\s+\{evex\} rolw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 84 80 23 01 00 00\s+\{evex\} roll\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 84 80 23 01 00 00\s+\{evex\} rolq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 cf 7b\s+\{evex\} ror\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 cf 7b\s+\{evex\} ror\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 cf 7b\s+\{evex\} ror\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 c8 7b\s+\{evex\} ror\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 8c 80 23 01 00 00 7b\s+\{evex\} rorb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 8c 80 23 01 00 00 7b\s+\{evex\} rorw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 8c 80 23 01 00 00 7b\s+\{evex\} rorl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 8c 80 23 01 00 00 7b\s+\{evex\} rorq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 cf\s+\{evex\} ror\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 cf\s+\{evex\} ror\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 cf\s+\{evex\} ror\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c8\s+\{evex\} ror\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 8c 80 23 01 00 00\s+\{evex\} rorb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 8c 80 23 01 00 00\s+\{evex\} rorw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 8c 80 23 01 00 00\s+\{evex\} rorl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 8c 80 23 01 00 00\s+\{evex\} rorq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 cf\s+\{evex\} ror\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 cf\s+\{evex\} ror\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 cf\s+\{evex\} ror\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 c8\s+\{evex\} ror\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 8c 80 23 01 00 00\s+\{evex\} rorb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 8c 80 23 01 00 00\s+\{evex\} rorw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 8c 80 23 01 00 00\s+\{evex\} rorl\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 8c 80 23 01 00 00\s+\{evex\} rorq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 53 ff 08 f0 ff 7b\s+\{evex\} rorx\s+\$0x7b,%r15,%r15 +\s*[a-f0-9]+:\s*62 d3 7f 08 f0 d7 7b\s+\{evex\} rorx\s+\$0x7b,%r15d,%edx +\s*[a-f0-9]+:\s*62 53 ff 08 f0 bc 80 23 01 00 00 7b\s+\{evex\} rorx\s+\$0x7b,0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 53 7f 08 f0 bc 80 23 01 00 00 7b\s+\{evex\} rorx\s+\$0x7b,0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ff 7b\s+\{evex\} sar\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ff 7b\s+\{evex\} sar\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ff 7b\s+\{evex\} sar\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 f8 7b\s+\{evex\} sar\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 bc 80 23 01 00 00 7b\s+\{evex\} sarb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sarw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sarl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sarq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ff\s+\{evex\} sar\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ff\s+\{evex\} sar\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ff\s+\{evex\} sar\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 f8\s+\{evex\} sar\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 bc 80 23 01 00 00\s+\{evex\} sarb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 bc 80 23 01 00 00\s+\{evex\} sarw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 bc 80 23 01 00 00\s+\{evex\} sarl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 bc 80 23 01 00 00\s+\{evex\} sarq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ff\s+\{evex\} sar\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ff\s+\{evex\} sar\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ff\s+\{evex\} sar\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 f8\s+\{evex\} sar\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 bc 80 23 01 00 00\s+\{evex\} sarb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 bc 80 23 01 00 00\s+\{evex\} sarw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 bc 80 23 01 00 00\s+\{evex\} sarl\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 bc 80 23 01 00 00\s+\{evex\} sarq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 86 08 f7 df\s+\{evex\} sarx\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 86 08 f7 bc 80 23 01 00 00\s+\{evex\} sarx\s+%r15,0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 72 06 08 f7 d2\s+\{evex\} sarx\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 d2 06 08 f7 94 80 23 01 00 00\s+\{evex\} sarx\s+%r15d,0x123\(%r8,%rax,4\),%edx +\s*[a-f0-9]+:\s*62 d4 fc 08 83 df 7b\s+\{evex\} sbb\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 df 7b\s+\{evex\} sbb\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 df 7b\s+\{evex\} sbb\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 d8 7b\s+\{evex\} sbb\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 9c 80 23 01 00 00 7b\s+\{evex\} sbbb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbbw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbbl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbbq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 19 ff\s+\{evex\} sbb\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 19 fa\s+\{evex\} sbb\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 19 f8\s+\{evex\} sbb\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 18 c2\s+\{evex\} sbb\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 18 84 80 23 01 00 00\s+\{evex\} sbb\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 1a 84 80 23 01 00 00\s+\{evex\} sbb\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 54 7c 08 d9 e5\s+\{evex\} sha1msg1\s+%xmm13,%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 d9 a4 80 23 01 00 00\s+\{evex\} sha1msg1\s+0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 da e5\s+\{evex\} sha1msg2\s+%xmm13,%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 da a4 80 23 01 00 00\s+\{evex\} sha1msg2\s+0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 d8 e5\s+\{evex\} sha1nexte\s+%xmm13,%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 d8 a4 80 23 01 00 00\s+\{evex\} sha1nexte\s+0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 d4 e5 7b\s+\{evex\} sha1rnds4\s+\$0x7b,%xmm13,%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 d4 a4 80 23 01 00 00 7b\s+\{evex\} sha1rnds4\s+\$0x7b,0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 dc e5\s+\{evex\} sha256msg1\s+%xmm13,%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 dc a4 80 23 01 00 00\s+\{evex\} sha256msg1\s+0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 dd e5\s+\{evex\} sha256msg2\s+%xmm13,%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 dd a4 80 23 01 00 00\s+\{evex\} sha256msg2\s+0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 db a4 80 23 01 00 00\s+\{evex\} sha256rnds2\s+%xmm0,0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 e7 7b\s+\{evex\} shl\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 e7 7b\s+\{evex\} shl\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 e7 7b\s+\{evex\} shl\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 e0 7b\s+\{evex\} shl\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 a4 80 23 01 00 00 7b\s+\{evex\} shlb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shlw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shll\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shlq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 e7\s+\{evex\} shl\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 e7\s+\{evex\} shl\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 e7\s+\{evex\} shl\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e0\s+\{evex\} shl\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 a4 80 23 01 00 00\s+\{evex\} shlb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 a4 80 23 01 00 00\s+\{evex\} shlw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 a4 80 23 01 00 00\s+\{evex\} shll\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 a4 80 23 01 00 00\s+\{evex\} shlq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 e7\s+\{evex\} shl\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 e7\s+\{evex\} shl\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 e7\s+\{evex\} shl\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 e0\s+\{evex\} shl\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 a4 80 23 01 00 00\s+\{evex\} shlb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 a4 80 23 01 00 00\s+\{evex\} shlw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 a4 80 23 01 00 00\s+\{evex\} shll\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 a4 80 23 01 00 00\s+\{evex\} shlq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 24 ff 7b\s+\{evex\} shld\s+\$0x7b,%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+\$0x7b,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 24 fa 7b\s+\{evex\} shld\s+\$0x7b,%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+\$0x7b,%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 24 f8 7b\s+\{evex\} shld\s+\$0x7b,%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+\$0x7b,%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 a5 ff\s+\{evex\} shld\s+%cl,%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+%cl,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 a5 fa\s+\{evex\} shld\s+%cl,%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+%cl,%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 a5 f8\s+\{evex\} shld\s+%cl,%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+%cl,%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 f7 df\s+\{evex\} shlx\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 85 08 f7 bc 80 23 01 00 00\s+\{evex\} shlx\s+%r15,0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 72 05 08 f7 d2\s+\{evex\} shlx\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 d2 05 08 f7 94 80 23 01 00 00\s+\{evex\} shlx\s+%r15d,0x123\(%r8,%rax,4\),%edx +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ef 7b\s+\{evex\} shr\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ef 7b\s+\{evex\} shr\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ef 7b\s+\{evex\} shr\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 e8 7b\s+\{evex\} shr\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 ac 80 23 01 00 00 7b\s+\{evex\} shrb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shrw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shrl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shrq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ef\s+\{evex\} shr\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ef\s+\{evex\} shr\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ef\s+\{evex\} shr\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e8\s+\{evex\} shr\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 ac 80 23 01 00 00\s+\{evex\} shrb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ac 80 23 01 00 00\s+\{evex\} shrw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ac 80 23 01 00 00\s+\{evex\} shrl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ac 80 23 01 00 00\s+\{evex\} shrq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ef\s+\{evex\} shr\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ef\s+\{evex\} shr\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ef\s+\{evex\} shr\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 e8\s+\{evex\} shr\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 ac 80 23 01 00 00\s+\{evex\} shrb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ac 80 23 01 00 00\s+\{evex\} shrw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ac 80 23 01 00 00\s+\{evex\} shrl\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ac 80 23 01 00 00\s+\{evex\} shrq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 2c ff 7b\s+\{evex\} shrd\s+\$0x7b,%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+\$0x7b,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 2c fa 7b\s+\{evex\} shrd\s+\$0x7b,%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+\$0x7b,%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 2c f8 7b\s+\{evex\} shrd\s+\$0x7b,%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+\$0x7b,%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 ad ff\s+\{evex\} shrd\s+%cl,%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+%cl,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 ad fa\s+\{evex\} shrd\s+%cl,%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+%cl,%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 ad f8\s+\{evex\} shrd\s+%cl,%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+%cl,%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 87 08 f7 df\s+\{evex\} shrx\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 87 08 f7 bc 80 23 01 00 00\s+\{evex\} shrx\s+%r15,0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 72 07 08 f7 d2\s+\{evex\} shrx\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 d2 07 08 f7 94 80 23 01 00 00\s+\{evex\} shrx\s+%r15d,0x123\(%r8,%rax,4\),%edx +\s*[a-f0-9]+:\s*62 d4 fc 08 83 ef 7b\s+\{evex\} sub\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 ef 7b\s+\{evex\} sub\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 ef 7b\s+\{evex\} sub\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 e8 7b\s+\{evex\} sub\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 ac 80 23 01 00 00 7b\s+\{evex\} subb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 ac 80 23 01 00 00 7b\s+\{evex\} subw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 ac 80 23 01 00 00 7b\s+\{evex\} subl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 ac 80 23 01 00 00 7b\s+\{evex\} subq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 29 ff\s+\{evex\} sub\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 29 fa\s+\{evex\} sub\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 29 f8\s+\{evex\} sub\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 28 c2\s+\{evex\} sub\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 28 84 80 23 01 00 00\s+\{evex\} sub\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 2a 84 80 23 01 00 00\s+\{evex\} sub\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 54 fc 08 f4 ff\s+\{evex\} tzcnt\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f4 d7\s+\{evex\} tzcnt\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d4 7d 08 f4 c7\s+\{evex\} tzcnt\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 fc 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 66 bc 80 23 01 00 00\s+\{evex\} wrssd\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 66 bc 80 23 01 00 00\s+\{evex\} wrssq\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7d 08 65 bc 80 23 01 00 00\s+\{evex\} wrussd\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fd 08 65 bc 80 23 01 00 00\s+\{evex\} wrussq\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 f7 7b\s+\{evex\} xor\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 f7 7b\s+\{evex\} xor\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 f7 7b\s+\{evex\} xor\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 f0 7b\s+\{evex\} xor\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 b4 80 23 01 00 00 7b\s+\{evex\} xorb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xorw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xorl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xorq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 31 ff\s+\{evex\} xor\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 31 fa\s+\{evex\} xor\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 31 f8\s+\{evex\} xor\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 30 c2\s+\{evex\} xor\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 30 84 80 23 01 00 00\s+\{evex\} xor\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 32 84 80 23 01 00 00\s+\{evex\} xor\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 54 fc 08 fc bc 80 23 01 00 00\s+\{evex\} aadd\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7c 08 fc bc 80 23 01 00 00\s+\{evex\} aadd\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fd 08 fc bc 80 23 01 00 00\s+\{evex\} aand\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7d 08 fc bc 80 23 01 00 00\s+\{evex\} aand\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 d7 7b\s+\{evex\} adc\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 d7 7b\s+\{evex\} adc\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 d7 7b\s+\{evex\} adc\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 d0 7b\s+\{evex\} adc\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 94 80 23 01 00 00 7b\s+\{evex\} adcb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 94 80 23 01 00 00 7b\s+\{evex\} adcw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 94 80 23 01 00 00 7b\s+\{evex\} adcl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 94 80 23 01 00 00 7b\s+\{evex\} adcq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 11 ff\s+\{evex\} adc\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 11 bc 80 23 01 00 00\s+\{evex\} adc\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 11 fa\s+\{evex\} adc\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 11 bc 80 23 01 00 00\s+\{evex\} adc\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 11 f8\s+\{evex\} adc\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 11 bc 80 23 01 00 00\s+\{evex\} adc\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 10 c2\s+\{evex\} adc\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 10 84 80 23 01 00 00\s+\{evex\} adc\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 13 bc 80 23 01 00 00\s+\{evex\} adc\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 13 bc 80 23 01 00 00\s+\{evex\} adc\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 13 bc 80 23 01 00 00\s+\{evex\} adc\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 12 84 80 23 01 00 00\s+\{evex\} adc\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 54 fd 08 66 ff\s+\{evex\} adcx\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d4 7d 08 66 d7\s+\{evex\} adcx\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 fd 08 66 bc 80 23 01 00 00\s+\{evex\} adcx\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7d 08 66 bc 80 23 01 00 00\s+\{evex\} adcx\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 83 c7 7b\s+\{evex\} add\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 c7 7b\s+\{evex\} add\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 c7 7b\s+\{evex\} add\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 c0 7b\s+\{evex\} add\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 84 80 23 01 00 00 7b\s+\{evex\} addb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 84 80 23 01 00 00 7b\s+\{evex\} addw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 84 80 23 01 00 00 7b\s+\{evex\} addl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 84 80 23 01 00 00 7b\s+\{evex\} addq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 01 ff\s+\{evex\} add\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 01 bc 80 23 01 00 00\s+\{evex\} add\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 01 fa\s+\{evex\} add\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 01 bc 80 23 01 00 00\s+\{evex\} add\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 01 f8\s+\{evex\} add\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 01 bc 80 23 01 00 00\s+\{evex\} add\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 00 c2\s+\{evex\} add\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 00 84 80 23 01 00 00\s+\{evex\} add\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 03 bc 80 23 01 00 00\s+\{evex\} add\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 03 bc 80 23 01 00 00\s+\{evex\} add\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 03 bc 80 23 01 00 00\s+\{evex\} add\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 02 84 80 23 01 00 00\s+\{evex\} add\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 54 fe 08 66 ff\s+\{evex\} adox\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d4 7e 08 66 d7\s+\{evex\} adox\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 fe 08 66 bc 80 23 01 00 00\s+\{evex\} adox\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7e 08 66 bc 80 23 01 00 00\s+\{evex\} adox\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7e 08 dd a4 80 23 01 00 00\s+\{evex\} aesdec128kl\s+0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 54 7e 08 df a4 80 23 01 00 00\s+\{evex\} aesdec256kl\s+0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 d4 7e 08 d8 8c 80 23 01 00 00\s+\{evex\} aesdecwide128kl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7e 08 d8 9c 80 23 01 00 00\s+\{evex\} aesdecwide256kl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7e 08 dc a4 80 23 01 00 00\s+\{evex\} aesenc128kl\s+0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 54 7e 08 de a4 80 23 01 00 00\s+\{evex\} aesenc256kl\s+0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 d4 7e 08 d8 84 80 23 01 00 00\s+\{evex\} aesencwide128kl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7e 08 d8 94 80 23 01 00 00\s+\{evex\} aesencwide256kl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 e7 7b\s+\{evex\} and\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 e7 7b\s+\{evex\} and\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 e7 7b\s+\{evex\} and\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 e0 7b\s+\{evex\} and\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 a4 80 23 01 00 00 7b\s+\{evex\} andb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 a4 80 23 01 00 00 7b\s+\{evex\} andw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 a4 80 23 01 00 00 7b\s+\{evex\} andl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 a4 80 23 01 00 00 7b\s+\{evex\} andq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 21 ff\s+\{evex\} and\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 21 bc 80 23 01 00 00\s+\{evex\} and\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 21 fa\s+\{evex\} and\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 21 bc 80 23 01 00 00\s+\{evex\} and\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 21 f8\s+\{evex\} and\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 21 bc 80 23 01 00 00\s+\{evex\} and\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 20 c2\s+\{evex\} and\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 20 84 80 23 01 00 00\s+\{evex\} and\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 23 bc 80 23 01 00 00\s+\{evex\} and\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 23 bc 80 23 01 00 00\s+\{evex\} and\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 23 bc 80 23 01 00 00\s+\{evex\} and\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 22 84 80 23 01 00 00\s+\{evex\} and\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 52 84 08 f2 df\s+\{evex\} andn\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 6c 08 f2 d7\s+\{evex\} andn\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 52 84 08 f2 bc 80 23 01 00 00\s+\{evex\} andn\s+0x123\(%r8,%rax,4\),%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 04 08 f2 94 80 23 01 00 00\s+\{evex\} andn\s+0x123\(%r8,%rax,4\),%r15d,%edx +\s*[a-f0-9]+:\s*62 54 ff 08 fc bc 80 23 01 00 00\s+\{evex\} aor\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7f 08 fc bc 80 23 01 00 00\s+\{evex\} aor\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fe 08 fc bc 80 23 01 00 00\s+\{evex\} axor\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7e 08 fc bc 80 23 01 00 00\s+\{evex\} axor\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 84 08 f7 df\s+\{evex\} bextr\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 84 08 f7 bc 80 23 01 00 00\s+\{evex\} bextr\s+%r15,0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 72 04 08 f7 d2\s+\{evex\} bextr\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 d2 04 08 f7 94 80 23 01 00 00\s+\{evex\} bextr\s+%r15d,0x123\(%r8,%rax,4\),%edx +\s*[a-f0-9]+:\s*62 d2 84 08 f3 df\s+\{evex\} blsi\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 6c 08 f3 df\s+\{evex\} blsi\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d2 84 08 f3 9c 80 23 01 00 00\s+\{evex\} blsi\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 d2 04 08 f3 9c 80 23 01 00 00\s+\{evex\} blsi\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 d2 84 08 f3 d7\s+\{evex\} blsmsk\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 6c 08 f3 d7\s+\{evex\} blsmsk\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d2 84 08 f3 94 80 23 01 00 00\s+\{evex\} blsmsk\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 d2 04 08 f3 94 80 23 01 00 00\s+\{evex\} blsmsk\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 d2 84 08 f3 cf\s+\{evex\} blsr\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 6c 08 f3 cf\s+\{evex\} blsr\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d2 84 08 f3 8c 80 23 01 00 00\s+\{evex\} blsr\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 d2 04 08 f3 8c 80 23 01 00 00\s+\{evex\} blsr\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 52 84 08 f5 df\s+\{evex\} bzhi\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 84 08 f5 bc 80 23 01 00 00\s+\{evex\} bzhi\s+%r15,0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 72 04 08 f5 d2\s+\{evex\} bzhi\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 d2 04 08 f5 94 80 23 01 00 00\s+\{evex\} bzhi\s+%r15d,0x123\(%r8,%rax,4\),%edx +\s*[a-f0-9]+:\s*62 52 85 08 e6 bc 80 23 01 00 00\s+\{evex\} cmpbexadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e6 94 80 23 01 00 00\s+\{evex\} cmpbexadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e2 bc 80 23 01 00 00\s+\{evex\} cmpbxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e2 94 80 23 01 00 00\s+\{evex\} cmpbxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 ee bc 80 23 01 00 00\s+\{evex\} cmplexadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 ee 94 80 23 01 00 00\s+\{evex\} cmplexadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 ec bc 80 23 01 00 00\s+\{evex\} cmplxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 ec 94 80 23 01 00 00\s+\{evex\} cmplxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e7 bc 80 23 01 00 00\s+\{evex\} cmpnbexadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e7 94 80 23 01 00 00\s+\{evex\} cmpnbexadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e3 bc 80 23 01 00 00\s+\{evex\} cmpnbxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e3 94 80 23 01 00 00\s+\{evex\} cmpnbxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 ef bc 80 23 01 00 00\s+\{evex\} cmpnlexadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 ef 94 80 23 01 00 00\s+\{evex\} cmpnlexadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 ed bc 80 23 01 00 00\s+\{evex\} cmpnlxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 ed 94 80 23 01 00 00\s+\{evex\} cmpnlxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e1 bc 80 23 01 00 00\s+\{evex\} cmpnoxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e1 94 80 23 01 00 00\s+\{evex\} cmpnoxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 eb bc 80 23 01 00 00\s+\{evex\} cmpnpxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 eb 94 80 23 01 00 00\s+\{evex\} cmpnpxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e9 bc 80 23 01 00 00\s+\{evex\} cmpnsxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e9 94 80 23 01 00 00\s+\{evex\} cmpnsxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e5 bc 80 23 01 00 00\s+\{evex\} cmpnzxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e5 94 80 23 01 00 00\s+\{evex\} cmpnzxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e0 bc 80 23 01 00 00\s+\{evex\} cmpoxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e0 94 80 23 01 00 00\s+\{evex\} cmpoxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 ea bc 80 23 01 00 00\s+\{evex\} cmppxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 ea 94 80 23 01 00 00\s+\{evex\} cmppxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e8 bc 80 23 01 00 00\s+\{evex\} cmpsxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e8 94 80 23 01 00 00\s+\{evex\} cmpsxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 e4 bc 80 23 01 00 00\s+\{evex\} cmpzxadd\s+%r15,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d2 05 08 e4 94 80 23 01 00 00\s+\{evex\} cmpzxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 ff cf\s+\{evex\} dec\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 ff cf\s+\{evex\} dec\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 ff cf\s+\{evex\} dec\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 fe c8\s+\{evex\} dec\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 fe 8c 80 23 01 00 00\s+\{evex\} decb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 ff 8c 80 23 01 00 00\s+\{evex\} decw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 ff 8c 80 23 01 00 00\s+\{evex\} decl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 ff 8c 80 23 01 00 00\s+\{evex\} decq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 f7\s+\{evex\} div\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 f7\s+\{evex\} div\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 f7\s+\{evex\} div\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 f0\s+\{evex\} div\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 b4 80 23 01 00 00\s+\{evex\} divb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 b4 80 23 01 00 00\s+\{evex\} divw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 b4 80 23 01 00 00\s+\{evex\} divl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 b4 80 23 01 00 00\s+\{evex\} divq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7e 08 da d7\s+\{evex\} encodekey128\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d4 7e 08 db d7\s+\{evex\} encodekey256\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7f 08 f8 bc 80 23 01 00 00\s+\{evex\} enqcmd\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*67 62 54 7f 08 f8 bc 80 23 01 00 00\s+\{evex\} enqcmd\s+0x123\(%r8d,%eax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7e 08 f8 bc 80 23 01 00 00\s+\{evex\} enqcmds\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*67 62 54 7e 08 f8 bc 80 23 01 00 00\s+\{evex\} enqcmds\s+0x123\(%r8d,%eax,4\),%r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ff\s+\{evex\} idiv\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ff\s+\{evex\} idiv\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ff\s+\{evex\} idiv\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 f8\s+\{evex\} idiv\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 bc 80 23 01 00 00\s+\{evex\} idivb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 bc 80 23 01 00 00\s+\{evex\} idivw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 bc 80 23 01 00 00\s+\{evex\} idivl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 bc 80 23 01 00 00\s+\{evex\} idivq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ef\s+\{evex\} imul\s+%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 af ff\s+\{evex\} imul\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ef\s+\{evex\} imul\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7c 08 af d7\s+\{evex\} imul\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ef\s+\{evex\} imul\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7d 08 af c7\s+\{evex\} imul\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 e8\s+\{evex\} imul\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 ac 80 23 01 00 00\s+\{evex\} imulb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ac 80 23 01 00 00\s+\{evex\} imulw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ac 80 23 01 00 00\s+\{evex\} imull\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ac 80 23 01 00 00\s+\{evex\} imulq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 ff c7\s+\{evex\} inc\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 ff c7\s+\{evex\} inc\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 ff c7\s+\{evex\} inc\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 fe c0\s+\{evex\} inc\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 fe 84 80 23 01 00 00\s+\{evex\} incb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 ff 84 80 23 01 00 00\s+\{evex\} incw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 ff 84 80 23 01 00 00\s+\{evex\} incl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 ff 84 80 23 01 00 00\s+\{evex\} incq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7e 08 f0 bc 80 23 01 00 00\s+\{evex\} invept\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7e 08 f2 bc 80 23 01 00 00\s+\{evex\} invpcid\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7e 08 f1 bc 80 23 01 00 00\s+\{evex\} invvpid\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 f1 7d 08 90 eb\s+\{evex\} kmovb\s+%k3,%k5 +\s*[a-f0-9]+:\s*62 71 7d 08 93 fd\s+\{evex\} kmovb\s+%k5,%r15d +\s*[a-f0-9]+:\s*62 d1 7d 08 91 ac 80 23 01 00 00\s+\{evex\} kmovb\s+%k5,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d1 7d 08 92 ef\s+\{evex\} kmovb\s+%r15d,%k5 +\s*[a-f0-9]+:\s*62 d1 7d 08 90 ac 80 23 01 00 00\s+\{evex\} kmovb\s+0x123\(%r8,%rax,4\),%k5 +\s*[a-f0-9]+:\s*62 f1 fd 08 90 eb\s+\{evex\} kmovd\s+%k3,%k5 +\s*[a-f0-9]+:\s*62 71 7f 08 93 fd\s+\{evex\} kmovd\s+%k5,%r15d +\s*[a-f0-9]+:\s*62 d1 fd 08 91 ac 80 23 01 00 00\s+\{evex\} kmovd\s+%k5,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d1 7f 08 92 ef\s+\{evex\} kmovd\s+%r15d,%k5 +\s*[a-f0-9]+:\s*62 d1 fd 08 90 ac 80 23 01 00 00\s+\{evex\} kmovd\s+0x123\(%r8,%rax,4\),%k5 +\s*[a-f0-9]+:\s*62 f1 fc 08 90 eb\s+\{evex\} kmovq\s+%k3,%k5 +\s*[a-f0-9]+:\s*62 71 ff 08 93 fd\s+\{evex\} kmovq\s+%k5,%r15 +\s*[a-f0-9]+:\s*62 d1 fc 08 91 ac 80 23 01 00 00\s+\{evex\} kmovq\s+%k5,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d1 ff 08 92 ef\s+\{evex\} kmovq\s+%r15,%k5 +\s*[a-f0-9]+:\s*62 d1 fc 08 90 ac 80 23 01 00 00\s+\{evex\} kmovq\s+0x123\(%r8,%rax,4\),%k5 +\s*[a-f0-9]+:\s*62 f1 7c 08 90 eb\s+\{evex\} kmovw\s+%k3,%k5 +\s*[a-f0-9]+:\s*62 71 7c 08 93 fd\s+\{evex\} kmovw\s+%k5,%r15d +\s*[a-f0-9]+:\s*62 d1 7c 08 91 ac 80 23 01 00 00\s+\{evex\} kmovw\s+%k5,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d1 7c 08 92 ef\s+\{evex\} kmovw\s+%r15d,%k5 +\s*[a-f0-9]+:\s*62 d1 7c 08 90 ac 80 23 01 00 00\s+\{evex\} kmovw\s+0x123\(%r8,%rax,4\),%k5 +\s*[a-f0-9]+:\s*62 54 fc 08 f5 ff\s+\{evex\} lzcnt\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f5 d7\s+\{evex\} lzcnt\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d4 7d 08 f5 c7\s+\{evex\} lzcnt\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 fc 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 fc 08 60 ff\s+\{evex\} movbe\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 60 d7\s+\{evex\} movbe\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 60 c7\s+\{evex\} movbe\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7d 08 f8 bc 80 23 01 00 00\s+\{evex\} movdir64b\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*67 62 54 7d 08 f8 bc 80 23 01 00 00\s+\{evex\} movdir64b\s+0x123\(%r8d,%eax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 fc 08 f9 bc 80 23 01 00 00\s+\{evex\} movdiri\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7c 08 f9 bc 80 23 01 00 00\s+\{evex\} movdiri\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 e7\s+\{evex\} mul\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 e7\s+\{evex\} mul\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 e7\s+\{evex\} mul\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 e0\s+\{evex\} mul\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 a4 80 23 01 00 00\s+\{evex\} mulb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 a4 80 23 01 00 00\s+\{evex\} mulw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 a4 80 23 01 00 00\s+\{evex\} mull\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 a4 80 23 01 00 00\s+\{evex\} mulq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 87 08 f6 df\s+\{evex\} mulx\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 6f 08 f6 d7\s+\{evex\} mulx\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 52 87 08 f6 bc 80 23 01 00 00\s+\{evex\} mulx\s+0x123\(%r8,%rax,4\),%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 07 08 f6 94 80 23 01 00 00\s+\{evex\} mulx\s+0x123\(%r8,%rax,4\),%r15d,%edx +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 df\s+\{evex\} neg\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 df\s+\{evex\} neg\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 df\s+\{evex\} neg\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 d8\s+\{evex\} neg\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 9c 80 23 01 00 00\s+\{evex\} negb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 9c 80 23 01 00 00\s+\{evex\} negw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 9c 80 23 01 00 00\s+\{evex\} negl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 9c 80 23 01 00 00\s+\{evex\} negq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 d7\s+\{evex\} not\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 d7\s+\{evex\} not\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 d7\s+\{evex\} not\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 d0\s+\{evex\} not\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 f6 94 80 23 01 00 00\s+\{evex\} notb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 f7 94 80 23 01 00 00\s+\{evex\} notw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 f7 94 80 23 01 00 00\s+\{evex\} notl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 f7 94 80 23 01 00 00\s+\{evex\} notq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 cf 7b\s+\{evex\} or\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 cf 7b\s+\{evex\} or\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 cf 7b\s+\{evex\} or\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 c8 7b\s+\{evex\} or\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 8c 80 23 01 00 00 7b\s+\{evex\} orb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 8c 80 23 01 00 00 7b\s+\{evex\} orw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 8c 80 23 01 00 00 7b\s+\{evex\} orl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 8c 80 23 01 00 00 7b\s+\{evex\} orq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 09 ff\s+\{evex\} or\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 09 fa\s+\{evex\} or\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 09 f8\s+\{evex\} or\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 08 c2\s+\{evex\} or\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 08 84 80 23 01 00 00\s+\{evex\} or\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 0a 84 80 23 01 00 00\s+\{evex\} or\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 52 87 08 f5 df\s+\{evex\} pdep\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 6f 08 f5 d7\s+\{evex\} pdep\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 52 87 08 f5 bc 80 23 01 00 00\s+\{evex\} pdep\s+0x123\(%r8,%rax,4\),%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 07 08 f5 94 80 23 01 00 00\s+\{evex\} pdep\s+0x123\(%r8,%rax,4\),%r15d,%edx +\s*[a-f0-9]+:\s*62 52 86 08 f5 df\s+\{evex\} pext\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 6e 08 f5 d7\s+\{evex\} pext\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 52 86 08 f5 bc 80 23 01 00 00\s+\{evex\} pext\s+0x123\(%r8,%rax,4\),%r15,%r15 +\s*[a-f0-9]+:\s*62 d2 06 08 f5 94 80 23 01 00 00\s+\{evex\} pext\s+0x123\(%r8,%rax,4\),%r15d,%edx +\s*[a-f0-9]+:\s*62 54 fc 08 88 ff\s+\{evex\} popcnt\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 88 d7\s+\{evex\} popcnt\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d4 7d 08 88 c7\s+\{evex\} popcnt\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 fc 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 d7 7b\s+\{evex\} rcl\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 d7 7b\s+\{evex\} rcl\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 d7 7b\s+\{evex\} rcl\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 d0 7b\s+\{evex\} rcl\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 94 80 23 01 00 00 7b\s+\{evex\} rclb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 94 80 23 01 00 00 7b\s+\{evex\} rclw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 94 80 23 01 00 00 7b\s+\{evex\} rcll\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 94 80 23 01 00 00 7b\s+\{evex\} rclq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 d7\s+\{evex\} rcl\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 d7\s+\{evex\} rcl\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 d7\s+\{evex\} rcl\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d0\s+\{evex\} rcl\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 94 80 23 01 00 00\s+\{evex\} rclb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 94 80 23 01 00 00\s+\{evex\} rclw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 94 80 23 01 00 00\s+\{evex\} rcll\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 94 80 23 01 00 00\s+\{evex\} rclq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 d7\s+\{evex\} rcl\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 d7\s+\{evex\} rcl\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 d7\s+\{evex\} rcl\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 d0\s+\{evex\} rcl\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 94 80 23 01 00 00\s+\{evex\} rclb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 94 80 23 01 00 00\s+\{evex\} rclw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 94 80 23 01 00 00\s+\{evex\} rcll\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 94 80 23 01 00 00\s+\{evex\} rclq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 df 7b\s+\{evex\} rcr\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 df 7b\s+\{evex\} rcr\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 df 7b\s+\{evex\} rcr\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 d8 7b\s+\{evex\} rcr\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 9c 80 23 01 00 00 7b\s+\{evex\} rcrb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 9c 80 23 01 00 00 7b\s+\{evex\} rcrw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 9c 80 23 01 00 00 7b\s+\{evex\} rcrl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 9c 80 23 01 00 00 7b\s+\{evex\} rcrq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 df\s+\{evex\} rcr\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 df\s+\{evex\} rcr\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 df\s+\{evex\} rcr\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d8\s+\{evex\} rcr\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 9c 80 23 01 00 00\s+\{evex\} rcrb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 9c 80 23 01 00 00\s+\{evex\} rcrw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 9c 80 23 01 00 00\s+\{evex\} rcrl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 9c 80 23 01 00 00\s+\{evex\} rcrq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 df\s+\{evex\} rcr\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 df\s+\{evex\} rcr\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 df\s+\{evex\} rcr\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 d8\s+\{evex\} rcr\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 9c 80 23 01 00 00\s+\{evex\} rcrb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 9c 80 23 01 00 00\s+\{evex\} rcrw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 9c 80 23 01 00 00\s+\{evex\} rcrl\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 9c 80 23 01 00 00\s+\{evex\} rcrq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 c7 7b\s+\{evex\} rol\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 c7 7b\s+\{evex\} rol\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 c7 7b\s+\{evex\} rol\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 c0 7b\s+\{evex\} rol\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 84 80 23 01 00 00 7b\s+\{evex\} rolb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 84 80 23 01 00 00 7b\s+\{evex\} rolw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 84 80 23 01 00 00 7b\s+\{evex\} roll\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 84 80 23 01 00 00 7b\s+\{evex\} rolq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 c7\s+\{evex\} rol\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 c7\s+\{evex\} rol\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 c7\s+\{evex\} rol\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c0\s+\{evex\} rol\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 84 80 23 01 00 00\s+\{evex\} rolb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 84 80 23 01 00 00\s+\{evex\} rolw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 84 80 23 01 00 00\s+\{evex\} roll\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 84 80 23 01 00 00\s+\{evex\} rolq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 c7\s+\{evex\} rol\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 c7\s+\{evex\} rol\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 c7\s+\{evex\} rol\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 c0\s+\{evex\} rol\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 84 80 23 01 00 00\s+\{evex\} rolb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 84 80 23 01 00 00\s+\{evex\} rolw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 84 80 23 01 00 00\s+\{evex\} roll\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 84 80 23 01 00 00\s+\{evex\} rolq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 cf 7b\s+\{evex\} ror\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 cf 7b\s+\{evex\} ror\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 cf 7b\s+\{evex\} ror\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 c8 7b\s+\{evex\} ror\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 8c 80 23 01 00 00 7b\s+\{evex\} rorb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 8c 80 23 01 00 00 7b\s+\{evex\} rorw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 8c 80 23 01 00 00 7b\s+\{evex\} rorl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 8c 80 23 01 00 00 7b\s+\{evex\} rorq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 cf\s+\{evex\} ror\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 cf\s+\{evex\} ror\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 cf\s+\{evex\} ror\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c8\s+\{evex\} ror\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 8c 80 23 01 00 00\s+\{evex\} rorb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 8c 80 23 01 00 00\s+\{evex\} rorw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 8c 80 23 01 00 00\s+\{evex\} rorl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 8c 80 23 01 00 00\s+\{evex\} rorq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 cf\s+\{evex\} ror\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 cf\s+\{evex\} ror\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 cf\s+\{evex\} ror\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 c8\s+\{evex\} ror\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 8c 80 23 01 00 00\s+\{evex\} rorb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 8c 80 23 01 00 00\s+\{evex\} rorw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 8c 80 23 01 00 00\s+\{evex\} rorl\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 8c 80 23 01 00 00\s+\{evex\} rorq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 53 ff 08 f0 ff 7b\s+\{evex\} rorx\s+\$0x7b,%r15,%r15 +\s*[a-f0-9]+:\s*62 d3 7f 08 f0 d7 7b\s+\{evex\} rorx\s+\$0x7b,%r15d,%edx +\s*[a-f0-9]+:\s*62 53 ff 08 f0 bc 80 23 01 00 00 7b\s+\{evex\} rorx\s+\$0x7b,0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 53 7f 08 f0 bc 80 23 01 00 00 7b\s+\{evex\} rorx\s+\$0x7b,0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ff 7b\s+\{evex\} sar\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ff 7b\s+\{evex\} sar\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ff 7b\s+\{evex\} sar\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 f8 7b\s+\{evex\} sar\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 bc 80 23 01 00 00 7b\s+\{evex\} sarb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sarw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sarl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sarq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ff\s+\{evex\} sar\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ff\s+\{evex\} sar\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ff\s+\{evex\} sar\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 f8\s+\{evex\} sar\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 bc 80 23 01 00 00\s+\{evex\} sarb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 bc 80 23 01 00 00\s+\{evex\} sarw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 bc 80 23 01 00 00\s+\{evex\} sarl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 bc 80 23 01 00 00\s+\{evex\} sarq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ff\s+\{evex\} sar\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ff\s+\{evex\} sar\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ff\s+\{evex\} sar\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 f8\s+\{evex\} sar\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 bc 80 23 01 00 00\s+\{evex\} sarb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 bc 80 23 01 00 00\s+\{evex\} sarw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 bc 80 23 01 00 00\s+\{evex\} sarl\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 bc 80 23 01 00 00\s+\{evex\} sarq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 86 08 f7 df\s+\{evex\} sarx\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 86 08 f7 bc 80 23 01 00 00\s+\{evex\} sarx\s+%r15,0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 72 06 08 f7 d2\s+\{evex\} sarx\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 d2 06 08 f7 94 80 23 01 00 00\s+\{evex\} sarx\s+%r15d,0x123\(%r8,%rax,4\),%edx +\s*[a-f0-9]+:\s*62 d4 fc 08 83 df 7b\s+\{evex\} sbb\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 df 7b\s+\{evex\} sbb\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 df 7b\s+\{evex\} sbb\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 d8 7b\s+\{evex\} sbb\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 9c 80 23 01 00 00 7b\s+\{evex\} sbbb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbbw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbbl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbbq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 19 ff\s+\{evex\} sbb\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 19 fa\s+\{evex\} sbb\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 19 f8\s+\{evex\} sbb\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 18 c2\s+\{evex\} sbb\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 18 84 80 23 01 00 00\s+\{evex\} sbb\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 1a 84 80 23 01 00 00\s+\{evex\} sbb\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 54 7c 08 d9 e5\s+\{evex\} sha1msg1\s+%xmm13,%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 d9 a4 80 23 01 00 00\s+\{evex\} sha1msg1\s+0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 da e5\s+\{evex\} sha1msg2\s+%xmm13,%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 da a4 80 23 01 00 00\s+\{evex\} sha1msg2\s+0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 d8 e5\s+\{evex\} sha1nexte\s+%xmm13,%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 d8 a4 80 23 01 00 00\s+\{evex\} sha1nexte\s+0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 d4 e5 7b\s+\{evex\} sha1rnds4\s+\$0x7b,%xmm13,%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 d4 a4 80 23 01 00 00 7b\s+\{evex\} sha1rnds4\s+\$0x7b,0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 dc e5\s+\{evex\} sha256msg1\s+%xmm13,%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 dc a4 80 23 01 00 00\s+\{evex\} sha256msg1\s+0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 dd e5\s+\{evex\} sha256msg2\s+%xmm13,%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 dd a4 80 23 01 00 00\s+\{evex\} sha256msg2\s+0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 54 7c 08 db a4 80 23 01 00 00\s+\{evex\} sha256rnds2\s+%xmm0,0x123\(%r8,%rax,4\),%xmm12 +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 e7 7b\s+\{evex\} shl\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 e7 7b\s+\{evex\} shl\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 e7 7b\s+\{evex\} shl\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 e0 7b\s+\{evex\} shl\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 a4 80 23 01 00 00 7b\s+\{evex\} shlb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shlw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shll\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shlq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 e7\s+\{evex\} shl\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 e7\s+\{evex\} shl\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 e7\s+\{evex\} shl\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e0\s+\{evex\} shl\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 a4 80 23 01 00 00\s+\{evex\} shlb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 a4 80 23 01 00 00\s+\{evex\} shlw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 a4 80 23 01 00 00\s+\{evex\} shll\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 a4 80 23 01 00 00\s+\{evex\} shlq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 e7\s+\{evex\} shl\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 e7\s+\{evex\} shl\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 e7\s+\{evex\} shl\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 e0\s+\{evex\} shl\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 a4 80 23 01 00 00\s+\{evex\} shlb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 a4 80 23 01 00 00\s+\{evex\} shlw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 a4 80 23 01 00 00\s+\{evex\} shll\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 a4 80 23 01 00 00\s+\{evex\} shlq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 24 ff 7b\s+\{evex\} shld\s+\$0x7b,%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+\$0x7b,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 24 fa 7b\s+\{evex\} shld\s+\$0x7b,%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+\$0x7b,%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 24 f8 7b\s+\{evex\} shld\s+\$0x7b,%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+\$0x7b,%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 a5 ff\s+\{evex\} shld\s+%cl,%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+%cl,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 a5 fa\s+\{evex\} shld\s+%cl,%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+%cl,%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 a5 f8\s+\{evex\} shld\s+%cl,%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+%cl,%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 85 08 f7 df\s+\{evex\} shlx\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 85 08 f7 bc 80 23 01 00 00\s+\{evex\} shlx\s+%r15,0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 72 05 08 f7 d2\s+\{evex\} shlx\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 d2 05 08 f7 94 80 23 01 00 00\s+\{evex\} shlx\s+%r15d,0x123\(%r8,%rax,4\),%edx +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ef 7b\s+\{evex\} shr\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ef 7b\s+\{evex\} shr\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ef 7b\s+\{evex\} shr\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 e8 7b\s+\{evex\} shr\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 c0 ac 80 23 01 00 00 7b\s+\{evex\} shrb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shrw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shrl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shrq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ef\s+\{evex\} shr\s+%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ef\s+\{evex\} shr\s+%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ef\s+\{evex\} shr\s+%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e8\s+\{evex\} shr\s+%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d0 ac 80 23 01 00 00\s+\{evex\} shrb\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ac 80 23 01 00 00\s+\{evex\} shrw\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ac 80 23 01 00 00\s+\{evex\} shrl\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ac 80 23 01 00 00\s+\{evex\} shrq\s+0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ef\s+\{evex\} shr\s+%cl,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ef\s+\{evex\} shr\s+%cl,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ef\s+\{evex\} shr\s+%cl,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 e8\s+\{evex\} shr\s+%cl,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 d2 ac 80 23 01 00 00\s+\{evex\} shrb\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ac 80 23 01 00 00\s+\{evex\} shrw\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ac 80 23 01 00 00\s+\{evex\} shrl\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ac 80 23 01 00 00\s+\{evex\} shrq\s+%cl,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 2c ff 7b\s+\{evex\} shrd\s+\$0x7b,%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+\$0x7b,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 2c fa 7b\s+\{evex\} shrd\s+\$0x7b,%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+\$0x7b,%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 2c f8 7b\s+\{evex\} shrd\s+\$0x7b,%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+\$0x7b,%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 ad ff\s+\{evex\} shrd\s+%cl,%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+%cl,%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 ad fa\s+\{evex\} shrd\s+%cl,%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+%cl,%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 ad f8\s+\{evex\} shrd\s+%cl,%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+%cl,%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 52 87 08 f7 df\s+\{evex\} shrx\s+%r15,%r15,%r11 +\s*[a-f0-9]+:\s*62 52 87 08 f7 bc 80 23 01 00 00\s+\{evex\} shrx\s+%r15,0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 72 07 08 f7 d2\s+\{evex\} shrx\s+%r15d,%edx,%r10d +\s*[a-f0-9]+:\s*62 d2 07 08 f7 94 80 23 01 00 00\s+\{evex\} shrx\s+%r15d,0x123\(%r8,%rax,4\),%edx +\s*[a-f0-9]+:\s*62 d4 fc 08 83 ef 7b\s+\{evex\} sub\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 ef 7b\s+\{evex\} sub\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 ef 7b\s+\{evex\} sub\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 e8 7b\s+\{evex\} sub\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 ac 80 23 01 00 00 7b\s+\{evex\} subb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 ac 80 23 01 00 00 7b\s+\{evex\} subw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 ac 80 23 01 00 00 7b\s+\{evex\} subl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 ac 80 23 01 00 00 7b\s+\{evex\} subq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 29 ff\s+\{evex\} sub\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 29 fa\s+\{evex\} sub\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 29 f8\s+\{evex\} sub\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 28 c2\s+\{evex\} sub\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 28 84 80 23 01 00 00\s+\{evex\} sub\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 2a 84 80 23 01 00 00\s+\{evex\} sub\s+0x123\(%r8,%rax,4\),%r8b +\s*[a-f0-9]+:\s*62 54 fc 08 f4 ff\s+\{evex\} tzcnt\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 f4 d7\s+\{evex\} tzcnt\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 d4 7d 08 f4 c7\s+\{evex\} tzcnt\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 fc 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 66 bc 80 23 01 00 00\s+\{evex\} wrssd\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 66 bc 80 23 01 00 00\s+\{evex\} wrssq\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 7d 08 65 bc 80 23 01 00 00\s+\{evex\} wrussd\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fd 08 65 bc 80 23 01 00 00\s+\{evex\} wrussq\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 f7 7b\s+\{evex\} xor\s+\$0x7b,%r15 +\s*[a-f0-9]+:\s*62 d4 7c 08 83 f7 7b\s+\{evex\} xor\s+\$0x7b,%r15d +\s*[a-f0-9]+:\s*62 d4 7d 08 83 f7 7b\s+\{evex\} xor\s+\$0x7b,%r15w +\s*[a-f0-9]+:\s*62 d4 7c 08 80 f0 7b\s+\{evex\} xor\s+\$0x7b,%r8b +\s*[a-f0-9]+:\s*62 d4 7c 08 80 b4 80 23 01 00 00 7b\s+\{evex\} xorb\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7d 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xorw\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 7c 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xorl\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 d4 fc 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xorq\s+\$0x7b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 31 ff\s+\{evex\} xor\s+%r15,%r15 +\s*[a-f0-9]+:\s*62 54 fc 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+%r15,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 31 fa\s+\{evex\} xor\s+%r15d,%edx +\s*[a-f0-9]+:\s*62 54 7c 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+%r15d,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7d 08 31 f8\s+\{evex\} xor\s+%r15w,%ax +\s*[a-f0-9]+:\s*62 54 7d 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+%r15w,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 74 7c 08 30 c2\s+\{evex\} xor\s+%r8b,%dl +\s*[a-f0-9]+:\s*62 54 7c 08 30 84 80 23 01 00 00\s+\{evex\} xor\s+%r8b,0x123\(%r8,%rax,4\) +\s*[a-f0-9]+:\s*62 54 fc 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+0x123\(%r8,%rax,4\),%r15 +\s*[a-f0-9]+:\s*62 54 7c 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+0x123\(%r8,%rax,4\),%r15d +\s*[a-f0-9]+:\s*62 54 7d 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+0x123\(%r8,%rax,4\),%r15w +\s*[a-f0-9]+:\s*62 54 7c 08 32 84 80 23 01 00 00\s+\{evex\} xor\s+0x123\(%r8,%rax,4\),%r8b diff --git a/gas/testsuite/gas/i386/x86-64-apx_f-evex.s b/gas/testsuite/gas/i386/x86-64-apx_f-evex.s new file mode 100644 index 00000000000..b7e43b6aa1c --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-apx_f-evex.s @@ -0,0 +1,1180 @@ +# Check 64bit APX_F instructions with evex pseudo prefix + + .text +_start: + {evex} aadd %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} aadd %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} aand %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} aand %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} adc $0x7b,%r15 #APX_F OPC_EVEX_EVEX + {evex} adc $0x7b,%r15d #APX_F OPC_EVEX_EVEX + {evex} adc $0x7b,%r15w #APX_F OPC_EVEX_EVEX + {evex} adc $0x7b,%r8b #APX_F OPC_EVEX_EVEX + {evex} adcb $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} adcw $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} adcl $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} adcq $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} adc %r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} adc %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} adc %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} adc %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} adc %r15w,%ax #APX_F OPC_EVEX_EVEX + {evex} adc %r15w,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} adc %r8b,%dl #APX_F OPC_EVEX_EVEX + {evex} adc %r8b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} adc 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} adc 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} adc 0x123(%r8,%rax,4),%r15w #APX_F OPC_EVEX_EVEX + {evex} adc 0x123(%r8,%rax,4),%r8b #APX_F OPC_EVEX_EVEX + {evex} adcx %r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} adcx %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} adcx 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} adcx 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} add $0x7b,%r15 #APX_F OPC_EVEX_EVEX + {evex} add $0x7b,%r15d #APX_F OPC_EVEX_EVEX + {evex} add $0x7b,%r15w #APX_F OPC_EVEX_EVEX + {evex} add $0x7b,%r8b #APX_F OPC_EVEX_EVEX + {evex} addb $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} addw $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} addl $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} addq $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} add %r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} add %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} add %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} add %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} add %r15w,%ax #APX_F OPC_EVEX_EVEX + {evex} add %r15w,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} add %r8b,%dl #APX_F OPC_EVEX_EVEX + {evex} add %r8b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} add 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} add 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} add 0x123(%r8,%rax,4),%r15w #APX_F OPC_EVEX_EVEX + {evex} add 0x123(%r8,%rax,4),%r8b #APX_F OPC_EVEX_EVEX + {evex} adox %r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} adox %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} adox 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} adox 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} aesdec128kl 0x123(%r8,%rax,4),%xmm12 #APX_F OPC_EVEX_EVEX + {evex} aesdec256kl 0x123(%r8,%rax,4),%xmm12 #APX_F OPC_EVEX_EVEX + {evex} aesdecwide128kl 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} aesdecwide256kl 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} aesenc128kl 0x123(%r8,%rax,4),%xmm12 #APX_F OPC_EVEX_EVEX + {evex} aesenc256kl 0x123(%r8,%rax,4),%xmm12 #APX_F OPC_EVEX_EVEX + {evex} aesencwide128kl 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} aesencwide256kl 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} and $0x7b,%r15 #APX_F OPC_EVEX_EVEX + {evex} and $0x7b,%r15d #APX_F OPC_EVEX_EVEX + {evex} and $0x7b,%r15w #APX_F OPC_EVEX_EVEX + {evex} and $0x7b,%r8b #APX_F OPC_EVEX_EVEX + {evex} andb $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} andw $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} andl $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} andq $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} and %r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} and %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} and %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} and %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} and %r15w,%ax #APX_F OPC_EVEX_EVEX + {evex} and %r15w,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} and %r8b,%dl #APX_F OPC_EVEX_EVEX + {evex} and %r8b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} and 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} and 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} and 0x123(%r8,%rax,4),%r15w #APX_F OPC_EVEX_EVEX + {evex} and 0x123(%r8,%rax,4),%r8b #APX_F OPC_EVEX_EVEX + {evex} andn %r15,%r15,%r11 #APX_F OPC_EVEX_EVEX + {evex} andn %r15d,%edx,%r10d #APX_F OPC_EVEX_EVEX + {evex} andn 0x123(%r8,%rax,4),%r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} andn 0x123(%r8,%rax,4),%r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} aor %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} aor %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} axor %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} axor %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} bextr %r15,%r15,%r11 #APX_F OPC_EVEX_EVEX + {evex} bextr %r15,0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} bextr %r15d,%edx,%r10d #APX_F OPC_EVEX_EVEX + {evex} bextr %r15d,0x123(%r8,%rax,4),%edx #APX_F OPC_EVEX_EVEX + {evex} blsi %r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} blsi %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} blsi 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} blsi 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} blsmsk %r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} blsmsk %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} blsmsk 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} blsmsk 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} blsr %r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} blsr %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} blsr 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} blsr 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} bzhi %r15,%r15,%r11 #APX_F OPC_EVEX_EVEX + {evex} bzhi %r15,0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} bzhi %r15d,%edx,%r10d #APX_F OPC_EVEX_EVEX + {evex} bzhi %r15d,0x123(%r8,%rax,4),%edx #APX_F OPC_EVEX_EVEX + {evex} cmpbexadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpbexadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpbxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpbxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmplexadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmplexadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmplxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmplxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpnbexadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpnbexadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpnbxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpnbxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpnlexadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpnlexadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpnlxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpnlxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpnoxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpnoxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpnpxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpnpxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpnsxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpnsxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpnzxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpnzxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpoxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpoxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmppxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmppxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpsxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpsxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpzxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} cmpzxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} dec %r15 #APX_F OPC_EVEX_EVEX + {evex} dec %r15d #APX_F OPC_EVEX_EVEX + {evex} dec %r15w #APX_F OPC_EVEX_EVEX + {evex} dec %r8b #APX_F OPC_EVEX_EVEX + {evex} decb 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} decw 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} decl 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} decq 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} div %r15 #APX_F OPC_EVEX_EVEX + {evex} div %r15d #APX_F OPC_EVEX_EVEX + {evex} div %r15w #APX_F OPC_EVEX_EVEX + {evex} div %r8b #APX_F OPC_EVEX_EVEX + {evex} divb 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} divw 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} divl 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} divq 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} encodekey128 %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} encodekey256 %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} enqcmd 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} enqcmd 0x123(%r8d,%eax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} enqcmds 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} enqcmds 0x123(%r8d,%eax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} idiv %r15 #APX_F OPC_EVEX_EVEX + {evex} idiv %r15d #APX_F OPC_EVEX_EVEX + {evex} idiv %r15w #APX_F OPC_EVEX_EVEX + {evex} idiv %r8b #APX_F OPC_EVEX_EVEX + {evex} idivb 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} idivw 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} idivl 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} idivq 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} imul %r15 #APX_F OPC_EVEX_EVEX + {evex} imul %r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} imul %r15d #APX_F OPC_EVEX_EVEX + {evex} imul %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} imul %r15w #APX_F OPC_EVEX_EVEX + {evex} imul %r15w,%ax #APX_F OPC_EVEX_EVEX + {evex} imul %r8b #APX_F OPC_EVEX_EVEX + {evex} imulb 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} imulw 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} imull 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} imul 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} imul 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} imul 0x123(%r8,%rax,4),%r15w #APX_F OPC_EVEX_EVEX + {evex} imulq 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} inc %r15 #APX_F OPC_EVEX_EVEX + {evex} inc %r15d #APX_F OPC_EVEX_EVEX + {evex} inc %r15w #APX_F OPC_EVEX_EVEX + {evex} inc %r8b #APX_F OPC_EVEX_EVEX + {evex} incb 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} incw 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} incl 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} incq 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} invept 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} invpcid 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} invvpid 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} kmovb %k3,%k5 #APX_F OPC_EVEX_EVEX + {evex} kmovb %k5,%r15d #APX_F OPC_EVEX_EVEX + {evex} kmovb %k5,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} kmovb %r15d,%k5 #APX_F OPC_EVEX_EVEX + {evex} kmovb 0x123(%r8,%rax,4),%k5 #APX_F OPC_EVEX_EVEX + {evex} kmovd %k3,%k5 #APX_F OPC_EVEX_EVEX + {evex} kmovd %k5,%r15d #APX_F OPC_EVEX_EVEX + {evex} kmovd %k5,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} kmovd %r15d,%k5 #APX_F OPC_EVEX_EVEX + {evex} kmovd 0x123(%r8,%rax,4),%k5 #APX_F OPC_EVEX_EVEX + {evex} kmovq %k3,%k5 #APX_F OPC_EVEX_EVEX + {evex} kmovq %k5,%r15 #APX_F OPC_EVEX_EVEX + {evex} kmovq %k5,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} kmovq %r15,%k5 #APX_F OPC_EVEX_EVEX + {evex} kmovq 0x123(%r8,%rax,4),%k5 #APX_F OPC_EVEX_EVEX + {evex} kmovw %k3,%k5 #APX_F OPC_EVEX_EVEX + {evex} kmovw %k5,%r15d #APX_F OPC_EVEX_EVEX + {evex} kmovw %k5,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} kmovw %r15d,%k5 #APX_F OPC_EVEX_EVEX + {evex} kmovw 0x123(%r8,%rax,4),%k5 #APX_F OPC_EVEX_EVEX + {evex} lzcnt %r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} lzcnt %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} lzcnt %r15w,%ax #APX_F OPC_EVEX_EVEX + {evex} lzcnt 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} lzcnt 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} lzcnt 0x123(%r8,%rax,4),%r15w #APX_F OPC_EVEX_EVEX + {evex} movbe %r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} movbe %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} movbe %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} movbe %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} movbe %r15w,%ax #APX_F OPC_EVEX_EVEX + {evex} movbe %r15w,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} movbe 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} movbe 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} movbe 0x123(%r8,%rax,4),%r15w #APX_F OPC_EVEX_EVEX + {evex} movdir64b 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} movdir64b 0x123(%r8d,%eax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} movdiri %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} movdiri %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} mul %r15 #APX_F OPC_EVEX_EVEX + {evex} mul %r15d #APX_F OPC_EVEX_EVEX + {evex} mul %r15w #APX_F OPC_EVEX_EVEX + {evex} mul %r8b #APX_F OPC_EVEX_EVEX + {evex} mulb 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} mulw 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} mull 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} mulq 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} mulx %r15,%r15,%r11 #APX_F OPC_EVEX_EVEX + {evex} mulx %r15d,%edx,%r10d #APX_F OPC_EVEX_EVEX + {evex} mulx 0x123(%r8,%rax,4),%r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} mulx 0x123(%r8,%rax,4),%r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} neg %r15 #APX_F OPC_EVEX_EVEX + {evex} neg %r15d #APX_F OPC_EVEX_EVEX + {evex} neg %r15w #APX_F OPC_EVEX_EVEX + {evex} neg %r8b #APX_F OPC_EVEX_EVEX + {evex} negb 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} negw 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} negl 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} negq 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} not %r15 #APX_F OPC_EVEX_EVEX + {evex} not %r15d #APX_F OPC_EVEX_EVEX + {evex} not %r15w #APX_F OPC_EVEX_EVEX + {evex} not %r8b #APX_F OPC_EVEX_EVEX + {evex} notb 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} notw 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} notl 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} notq 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} or $0x7b,%r15 #APX_F OPC_EVEX_EVEX + {evex} or $0x7b,%r15d #APX_F OPC_EVEX_EVEX + {evex} or $0x7b,%r15w #APX_F OPC_EVEX_EVEX + {evex} or $0x7b,%r8b #APX_F OPC_EVEX_EVEX + {evex} orb $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} orw $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} orl $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} orq $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} or %r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} or %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} or %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} or %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} or %r15w,%ax #APX_F OPC_EVEX_EVEX + {evex} or %r15w,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} or %r8b,%dl #APX_F OPC_EVEX_EVEX + {evex} or %r8b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} or 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} or 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} or 0x123(%r8,%rax,4),%r15w #APX_F OPC_EVEX_EVEX + {evex} or 0x123(%r8,%rax,4),%r8b #APX_F OPC_EVEX_EVEX + {evex} pdep %r15,%r15,%r11 #APX_F OPC_EVEX_EVEX + {evex} pdep %r15d,%edx,%r10d #APX_F OPC_EVEX_EVEX + {evex} pdep 0x123(%r8,%rax,4),%r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} pdep 0x123(%r8,%rax,4),%r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} pext %r15,%r15,%r11 #APX_F OPC_EVEX_EVEX + {evex} pext %r15d,%edx,%r10d #APX_F OPC_EVEX_EVEX + {evex} pext 0x123(%r8,%rax,4),%r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} pext 0x123(%r8,%rax,4),%r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} popcnt %r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} popcnt %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} popcnt %r15w,%ax #APX_F OPC_EVEX_EVEX + {evex} popcnt 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} popcnt 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} popcnt 0x123(%r8,%rax,4),%r15w #APX_F OPC_EVEX_EVEX + {evex} rcl $0x7b,%r15 #APX_F OPC_EVEX_EVEX + {evex} rcl $0x7b,%r15d #APX_F OPC_EVEX_EVEX + {evex} rcl $0x7b,%r15w #APX_F OPC_EVEX_EVEX + {evex} rcl $0x7b,%r8b #APX_F OPC_EVEX_EVEX + {evex} rclb $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rclw $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rcll $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rclq $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rcl $1,%r15 #APX_F OPC_EVEX_EVEX + {evex} rcl $1,%r15d #APX_F OPC_EVEX_EVEX + {evex} rcl $1,%r15w #APX_F OPC_EVEX_EVEX + {evex} rcl $1,%r8b #APX_F OPC_EVEX_EVEX + {evex} rclb $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rclw $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rcll $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rclq $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rcl %cl,%r15 #APX_F OPC_EVEX_EVEX + {evex} rcl %cl,%r15d #APX_F OPC_EVEX_EVEX + {evex} rcl %cl,%r15w #APX_F OPC_EVEX_EVEX + {evex} rcl %cl,%r8b #APX_F OPC_EVEX_EVEX + {evex} rclb %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rclw %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rcll %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rclq %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rcr $0x7b,%r15 #APX_F OPC_EVEX_EVEX + {evex} rcr $0x7b,%r15d #APX_F OPC_EVEX_EVEX + {evex} rcr $0x7b,%r15w #APX_F OPC_EVEX_EVEX + {evex} rcr $0x7b,%r8b #APX_F OPC_EVEX_EVEX + {evex} rcrb $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rcrw $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rcrl $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rcrq $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rcr $1,%r15 #APX_F OPC_EVEX_EVEX + {evex} rcr $1,%r15d #APX_F OPC_EVEX_EVEX + {evex} rcr $1,%r15w #APX_F OPC_EVEX_EVEX + {evex} rcr $1,%r8b #APX_F OPC_EVEX_EVEX + {evex} rcrb $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rcrw $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rcrl $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rcrq $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rcr %cl,%r15 #APX_F OPC_EVEX_EVEX + {evex} rcr %cl,%r15d #APX_F OPC_EVEX_EVEX + {evex} rcr %cl,%r15w #APX_F OPC_EVEX_EVEX + {evex} rcr %cl,%r8b #APX_F OPC_EVEX_EVEX + {evex} rcrb %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rcrw %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rcrl %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rcrq %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rol $0x7b,%r15 #APX_F OPC_EVEX_EVEX + {evex} rol $0x7b,%r15d #APX_F OPC_EVEX_EVEX + {evex} rol $0x7b,%r15w #APX_F OPC_EVEX_EVEX + {evex} rol $0x7b,%r8b #APX_F OPC_EVEX_EVEX + {evex} rolb $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rolw $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} roll $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rolq $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rol $1,%r15 #APX_F OPC_EVEX_EVEX + {evex} rol $1,%r15d #APX_F OPC_EVEX_EVEX + {evex} rol $1,%r15w #APX_F OPC_EVEX_EVEX + {evex} rol $1,%r8b #APX_F OPC_EVEX_EVEX + {evex} rolb $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rolw $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} roll $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rolq $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rol %cl,%r15 #APX_F OPC_EVEX_EVEX + {evex} rol %cl,%r15d #APX_F OPC_EVEX_EVEX + {evex} rol %cl,%r15w #APX_F OPC_EVEX_EVEX + {evex} rol %cl,%r8b #APX_F OPC_EVEX_EVEX + {evex} rolb %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rolw %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} roll %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rolq %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} ror $0x7b,%r15 #APX_F OPC_EVEX_EVEX + {evex} ror $0x7b,%r15d #APX_F OPC_EVEX_EVEX + {evex} ror $0x7b,%r15w #APX_F OPC_EVEX_EVEX + {evex} ror $0x7b,%r8b #APX_F OPC_EVEX_EVEX + {evex} rorb $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rorw $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rorl $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rorq $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} ror $1,%r15 #APX_F OPC_EVEX_EVEX + {evex} ror $1,%r15d #APX_F OPC_EVEX_EVEX + {evex} ror $1,%r15w #APX_F OPC_EVEX_EVEX + {evex} ror $1,%r8b #APX_F OPC_EVEX_EVEX + {evex} rorb $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rorw $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rorl $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rorq $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} ror %cl,%r15 #APX_F OPC_EVEX_EVEX + {evex} ror %cl,%r15d #APX_F OPC_EVEX_EVEX + {evex} ror %cl,%r15w #APX_F OPC_EVEX_EVEX + {evex} ror %cl,%r8b #APX_F OPC_EVEX_EVEX + {evex} rorb %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rorw %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rorl %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rorq %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} rorx $0x7b,%r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} rorx $0x7b,%r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} rorx $0x7b,0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} rorx $0x7b,0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} sar $0x7b,%r15 #APX_F OPC_EVEX_EVEX + {evex} sar $0x7b,%r15d #APX_F OPC_EVEX_EVEX + {evex} sar $0x7b,%r15w #APX_F OPC_EVEX_EVEX + {evex} sar $0x7b,%r8b #APX_F OPC_EVEX_EVEX + {evex} sarb $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sarw $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sarl $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sarq $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sar $1,%r15 #APX_F OPC_EVEX_EVEX + {evex} sar $1,%r15d #APX_F OPC_EVEX_EVEX + {evex} sar $1,%r15w #APX_F OPC_EVEX_EVEX + {evex} sar $1,%r8b #APX_F OPC_EVEX_EVEX + {evex} sarb $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sarw $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sarl $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sarq $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sar %cl,%r15 #APX_F OPC_EVEX_EVEX + {evex} sar %cl,%r15d #APX_F OPC_EVEX_EVEX + {evex} sar %cl,%r15w #APX_F OPC_EVEX_EVEX + {evex} sar %cl,%r8b #APX_F OPC_EVEX_EVEX + {evex} sarb %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sarw %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sarl %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sarq %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sarx %r15,%r15,%r11 #APX_F OPC_EVEX_EVEX + {evex} sarx %r15,0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} sarx %r15d,%edx,%r10d #APX_F OPC_EVEX_EVEX + {evex} sarx %r15d,0x123(%r8,%rax,4),%edx #APX_F OPC_EVEX_EVEX + {evex} sbb $0x7b,%r15 #APX_F OPC_EVEX_EVEX + {evex} sbb $0x7b,%r15d #APX_F OPC_EVEX_EVEX + {evex} sbb $0x7b,%r15w #APX_F OPC_EVEX_EVEX + {evex} sbb $0x7b,%r8b #APX_F OPC_EVEX_EVEX + {evex} sbbb $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sbbw $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sbbl $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sbbq $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sbb %r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} sbb %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sbb %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} sbb %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sbb %r15w,%ax #APX_F OPC_EVEX_EVEX + {evex} sbb %r15w,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sbb %r8b,%dl #APX_F OPC_EVEX_EVEX + {evex} sbb %r8b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sbb 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} sbb 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} sbb 0x123(%r8,%rax,4),%r15w #APX_F OPC_EVEX_EVEX + {evex} sbb 0x123(%r8,%rax,4),%r8b #APX_F OPC_EVEX_EVEX + {evex} sha1msg1 %xmm13,%xmm12 #APX_F OPC_EVEX_EVEX + {evex} sha1msg1 0x123(%r8,%rax,4),%xmm12 #APX_F OPC_EVEX_EVEX + {evex} sha1msg2 %xmm13,%xmm12 #APX_F OPC_EVEX_EVEX + {evex} sha1msg2 0x123(%r8,%rax,4),%xmm12 #APX_F OPC_EVEX_EVEX + {evex} sha1nexte %xmm13,%xmm12 #APX_F OPC_EVEX_EVEX + {evex} sha1nexte 0x123(%r8,%rax,4),%xmm12 #APX_F OPC_EVEX_EVEX + {evex} sha1rnds4 $0x7b,%xmm13,%xmm12 #APX_F OPC_EVEX_EVEX + {evex} sha1rnds4 $0x7b,0x123(%r8,%rax,4),%xmm12 #APX_F OPC_EVEX_EVEX + {evex} sha256msg1 %xmm13,%xmm12 #APX_F OPC_EVEX_EVEX + {evex} sha256msg1 0x123(%r8,%rax,4),%xmm12 #APX_F OPC_EVEX_EVEX + {evex} sha256msg2 %xmm13,%xmm12 #APX_F OPC_EVEX_EVEX + {evex} sha256msg2 0x123(%r8,%rax,4),%xmm12 #APX_F OPC_EVEX_EVEX + {evex} sha256rnds2 0x123(%r8,%rax,4),%xmm12 #APX_F OPC_EVEX_EVEX + {evex} shl $0x7b,%r15 #APX_F OPC_EVEX_EVEX + {evex} shl $0x7b,%r15d #APX_F OPC_EVEX_EVEX + {evex} shl $0x7b,%r15w #APX_F OPC_EVEX_EVEX + {evex} shl $0x7b,%r8b #APX_F OPC_EVEX_EVEX + {evex} shlb $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shlw $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shll $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shlq $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shl $1,%r15 #APX_F OPC_EVEX_EVEX + {evex} shl $1,%r15d #APX_F OPC_EVEX_EVEX + {evex} shl $1,%r15w #APX_F OPC_EVEX_EVEX + {evex} shl $1,%r8b #APX_F OPC_EVEX_EVEX + {evex} shlb $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shlw $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shll $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shlq $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shl %cl,%r15 #APX_F OPC_EVEX_EVEX + {evex} shl %cl,%r15d #APX_F OPC_EVEX_EVEX + {evex} shl %cl,%r15w #APX_F OPC_EVEX_EVEX + {evex} shl %cl,%r8b #APX_F OPC_EVEX_EVEX + {evex} shlb %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shlw %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shll %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shlq %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shld $0x7b,%r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} shld $0x7b,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shld $0x7b,%r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} shld $0x7b,%r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shld $0x7b,%r15w,%ax #APX_F OPC_EVEX_EVEX + {evex} shld $0x7b,%r15w,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shld %cl,%r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} shld %cl,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shld %cl,%r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} shld %cl,%r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shld %cl,%r15w,%ax #APX_F OPC_EVEX_EVEX + {evex} shld %cl,%r15w,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shlx %r15,%r15,%r11 #APX_F OPC_EVEX_EVEX + {evex} shlx %r15,0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} shlx %r15d,%edx,%r10d #APX_F OPC_EVEX_EVEX + {evex} shlx %r15d,0x123(%r8,%rax,4),%edx #APX_F OPC_EVEX_EVEX + {evex} shr $0x7b,%r15 #APX_F OPC_EVEX_EVEX + {evex} shr $0x7b,%r15d #APX_F OPC_EVEX_EVEX + {evex} shr $0x7b,%r15w #APX_F OPC_EVEX_EVEX + {evex} shr $0x7b,%r8b #APX_F OPC_EVEX_EVEX + {evex} shrb $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shrw $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shrl $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shrq $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shr $1,%r15 #APX_F OPC_EVEX_EVEX + {evex} shr $1,%r15d #APX_F OPC_EVEX_EVEX + {evex} shr $1,%r15w #APX_F OPC_EVEX_EVEX + {evex} shr $1,%r8b #APX_F OPC_EVEX_EVEX + {evex} shrb $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shrw $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shrl $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shrq $1,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shr %cl,%r15 #APX_F OPC_EVEX_EVEX + {evex} shr %cl,%r15d #APX_F OPC_EVEX_EVEX + {evex} shr %cl,%r15w #APX_F OPC_EVEX_EVEX + {evex} shr %cl,%r8b #APX_F OPC_EVEX_EVEX + {evex} shrb %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shrw %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shrl %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shrq %cl,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shrd $0x7b,%r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} shrd $0x7b,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shrd $0x7b,%r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} shrd $0x7b,%r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shrd $0x7b,%r15w,%ax #APX_F OPC_EVEX_EVEX + {evex} shrd $0x7b,%r15w,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shrd %cl,%r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} shrd %cl,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shrd %cl,%r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} shrd %cl,%r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shrd %cl,%r15w,%ax #APX_F OPC_EVEX_EVEX + {evex} shrd %cl,%r15w,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} shrx %r15,%r15,%r11 #APX_F OPC_EVEX_EVEX + {evex} shrx %r15,0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} shrx %r15d,%edx,%r10d #APX_F OPC_EVEX_EVEX + {evex} shrx %r15d,0x123(%r8,%rax,4),%edx #APX_F OPC_EVEX_EVEX + {evex} sub $0x7b,%r15 #APX_F OPC_EVEX_EVEX + {evex} sub $0x7b,%r15d #APX_F OPC_EVEX_EVEX + {evex} sub $0x7b,%r15w #APX_F OPC_EVEX_EVEX + {evex} sub $0x7b,%r8b #APX_F OPC_EVEX_EVEX + {evex} subb $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} subw $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} subl $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} subq $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sub %r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} sub %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sub %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} sub %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sub %r15w,%ax #APX_F OPC_EVEX_EVEX + {evex} sub %r15w,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sub %r8b,%dl #APX_F OPC_EVEX_EVEX + {evex} sub %r8b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} sub 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} sub 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} sub 0x123(%r8,%rax,4),%r15w #APX_F OPC_EVEX_EVEX + {evex} sub 0x123(%r8,%rax,4),%r8b #APX_F OPC_EVEX_EVEX + {evex} tzcnt %r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} tzcnt %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} tzcnt %r15w,%ax #APX_F OPC_EVEX_EVEX + {evex} tzcnt 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} tzcnt 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} tzcnt 0x123(%r8,%rax,4),%r15w #APX_F OPC_EVEX_EVEX + {evex} wrssd %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} wrssq %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} wrussd %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} wrussq %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} xor $0x7b,%r15 #APX_F OPC_EVEX_EVEX + {evex} xor $0x7b,%r15d #APX_F OPC_EVEX_EVEX + {evex} xor $0x7b,%r15w #APX_F OPC_EVEX_EVEX + {evex} xor $0x7b,%r8b #APX_F OPC_EVEX_EVEX + {evex} xorb $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} xorw $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} xorl $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} xorq $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} xor %r15,%r15 #APX_F OPC_EVEX_EVEX + {evex} xor %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} xor %r15d,%edx #APX_F OPC_EVEX_EVEX + {evex} xor %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} xor %r15w,%ax #APX_F OPC_EVEX_EVEX + {evex} xor %r15w,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} xor %r8b,%dl #APX_F OPC_EVEX_EVEX + {evex} xor %r8b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX + {evex} xor 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX + {evex} xor 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX + {evex} xor 0x123(%r8,%rax,4),%r15w #APX_F OPC_EVEX_EVEX + {evex} xor 0x123(%r8,%rax,4),%r8b #APX_F OPC_EVEX_EVEX + +.intel_syntax noprefix + {evex} aadd QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} aadd DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} aand QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} aand DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} adc r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} adc r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} adc r15w,0x7b #APX_F OPC_EVEX_EVEX + {evex} adc r8b,0x7b #APX_F OPC_EVEX_EVEX + {evex} adc BYTE PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} adc WORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} adc DWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} adc QWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} adc r15,r15 #APX_F OPC_EVEX_EVEX + {evex} adc QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} adc edx,r15d #APX_F OPC_EVEX_EVEX + {evex} adc DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} adc ax,r15w #APX_F OPC_EVEX_EVEX + {evex} adc WORD PTR [r8+rax*4+0x123],r15w #APX_F OPC_EVEX_EVEX + {evex} adc dl,r8b #APX_F OPC_EVEX_EVEX + {evex} adc BYTE PTR [r8+rax*4+0x123],r8b #APX_F OPC_EVEX_EVEX + {evex} adc r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} adc r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} adc r15w,WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} adc r8b,BYTE PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} adcx r15,r15 #APX_F OPC_EVEX_EVEX + {evex} adcx edx,r15d #APX_F OPC_EVEX_EVEX + {evex} adcx r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} adcx r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} add r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} add r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} add r15w,0x7b #APX_F OPC_EVEX_EVEX + {evex} add r8b,0x7b #APX_F OPC_EVEX_EVEX + {evex} add BYTE PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} add WORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} add DWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} add QWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} add r15,r15 #APX_F OPC_EVEX_EVEX + {evex} add QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} add edx,r15d #APX_F OPC_EVEX_EVEX + {evex} add DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} add ax,r15w #APX_F OPC_EVEX_EVEX + {evex} add WORD PTR [r8+rax*4+0x123],r15w #APX_F OPC_EVEX_EVEX + {evex} add dl,r8b #APX_F OPC_EVEX_EVEX + {evex} add BYTE PTR [r8+rax*4+0x123],r8b #APX_F OPC_EVEX_EVEX + {evex} add r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} add r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} add r15w,WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} add r8b,BYTE PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} adox r15,r15 #APX_F OPC_EVEX_EVEX + {evex} adox edx,r15d #APX_F OPC_EVEX_EVEX + {evex} adox r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} adox r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} aesdec128kl xmm12,[r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} aesdec256kl xmm12,[r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} aesdecwide128kl [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} aesdecwide256kl [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} aesenc128kl xmm12,[r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} aesenc256kl xmm12,[r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} aesencwide128kl [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} aesencwide256kl [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} and r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} and r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} and r15w,0x7b #APX_F OPC_EVEX_EVEX + {evex} and r8b,0x7b #APX_F OPC_EVEX_EVEX + {evex} and BYTE PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} and WORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} and DWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} and QWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} and r15,r15 #APX_F OPC_EVEX_EVEX + {evex} and QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} and edx,r15d #APX_F OPC_EVEX_EVEX + {evex} and DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} and ax,r15w #APX_F OPC_EVEX_EVEX + {evex} and WORD PTR [r8+rax*4+0x123],r15w #APX_F OPC_EVEX_EVEX + {evex} and dl,r8b #APX_F OPC_EVEX_EVEX + {evex} and BYTE PTR [r8+rax*4+0x123],r8b #APX_F OPC_EVEX_EVEX + {evex} and r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} and r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} and r15w,WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} and r8b,BYTE PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} andn r11,r15,r15 #APX_F OPC_EVEX_EVEX + {evex} andn r10d,edx,r15d #APX_F OPC_EVEX_EVEX + {evex} andn r15,r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} andn edx,r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} aor QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} aor DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} axor QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} axor DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} bextr r11,r15,r15 #APX_F OPC_EVEX_EVEX + {evex} bextr r15,QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} bextr r10d,edx,r15d #APX_F OPC_EVEX_EVEX + {evex} bextr edx,DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} blsi r15,r15 #APX_F OPC_EVEX_EVEX + {evex} blsi edx,r15d #APX_F OPC_EVEX_EVEX + {evex} blsi r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} blsi r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} blsmsk r15,r15 #APX_F OPC_EVEX_EVEX + {evex} blsmsk edx,r15d #APX_F OPC_EVEX_EVEX + {evex} blsmsk r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} blsmsk r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} blsr r15,r15 #APX_F OPC_EVEX_EVEX + {evex} blsr edx,r15d #APX_F OPC_EVEX_EVEX + {evex} blsr r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} blsr r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} bzhi r11,r15,r15 #APX_F OPC_EVEX_EVEX + {evex} bzhi r15,QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} bzhi r10d,edx,r15d #APX_F OPC_EVEX_EVEX + {evex} bzhi edx,DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} cmpbexadd QWORD PTR [r8+rax*4+0x123],r15,r15 #APX_F OPC_EVEX_EVEX + {evex} cmpbexadd DWORD PTR [r8+rax*4+0x123],edx,r15d #APX_F OPC_EVEX_EVEX + {evex} cmpbxadd QWORD PTR [r8+rax*4+0x123],r15,r15 #APX_F OPC_EVEX_EVEX + {evex} cmpbxadd DWORD PTR [r8+rax*4+0x123],edx,r15d #APX_F OPC_EVEX_EVEX + {evex} cmplexadd QWORD PTR [r8+rax*4+0x123],r15,r15 #APX_F OPC_EVEX_EVEX + {evex} cmplexadd DWORD PTR [r8+rax*4+0x123],edx,r15d #APX_F OPC_EVEX_EVEX + {evex} cmplxadd QWORD PTR [r8+rax*4+0x123],r15,r15 #APX_F OPC_EVEX_EVEX + {evex} cmplxadd DWORD PTR [r8+rax*4+0x123],edx,r15d #APX_F OPC_EVEX_EVEX + {evex} cmpnbexadd QWORD PTR [r8+rax*4+0x123],r15,r15 #APX_F OPC_EVEX_EVEX + {evex} cmpnbexadd DWORD PTR [r8+rax*4+0x123],edx,r15d #APX_F OPC_EVEX_EVEX + {evex} cmpnbxadd QWORD PTR [r8+rax*4+0x123],r15,r15 #APX_F OPC_EVEX_EVEX + {evex} cmpnbxadd DWORD PTR [r8+rax*4+0x123],edx,r15d #APX_F OPC_EVEX_EVEX + {evex} cmpnlexadd QWORD PTR [r8+rax*4+0x123],r15,r15 #APX_F OPC_EVEX_EVEX + {evex} cmpnlexadd DWORD PTR [r8+rax*4+0x123],edx,r15d #APX_F OPC_EVEX_EVEX + {evex} cmpnlxadd QWORD PTR [r8+rax*4+0x123],r15,r15 #APX_F OPC_EVEX_EVEX + {evex} cmpnlxadd DWORD PTR [r8+rax*4+0x123],edx,r15d #APX_F OPC_EVEX_EVEX + {evex} cmpnoxadd QWORD PTR [r8+rax*4+0x123],r15,r15 #APX_F OPC_EVEX_EVEX + {evex} cmpnoxadd DWORD PTR [r8+rax*4+0x123],edx,r15d #APX_F OPC_EVEX_EVEX + {evex} cmpnpxadd QWORD PTR [r8+rax*4+0x123],r15,r15 #APX_F OPC_EVEX_EVEX + {evex} cmpnpxadd DWORD PTR [r8+rax*4+0x123],edx,r15d #APX_F OPC_EVEX_EVEX + {evex} cmpnsxadd QWORD PTR [r8+rax*4+0x123],r15,r15 #APX_F OPC_EVEX_EVEX + {evex} cmpnsxadd DWORD PTR [r8+rax*4+0x123],edx,r15d #APX_F OPC_EVEX_EVEX + {evex} cmpnzxadd QWORD PTR [r8+rax*4+0x123],r15,r15 #APX_F OPC_EVEX_EVEX + {evex} cmpnzxadd DWORD PTR [r8+rax*4+0x123],edx,r15d #APX_F OPC_EVEX_EVEX + {evex} cmpoxadd QWORD PTR [r8+rax*4+0x123],r15,r15 #APX_F OPC_EVEX_EVEX + {evex} cmpoxadd DWORD PTR [r8+rax*4+0x123],edx,r15d #APX_F OPC_EVEX_EVEX + {evex} cmppxadd QWORD PTR [r8+rax*4+0x123],r15,r15 #APX_F OPC_EVEX_EVEX + {evex} cmppxadd DWORD PTR [r8+rax*4+0x123],edx,r15d #APX_F OPC_EVEX_EVEX + {evex} cmpsxadd QWORD PTR [r8+rax*4+0x123],r15,r15 #APX_F OPC_EVEX_EVEX + {evex} cmpsxadd DWORD PTR [r8+rax*4+0x123],edx,r15d #APX_F OPC_EVEX_EVEX + {evex} cmpzxadd QWORD PTR [r8+rax*4+0x123],r15,r15 #APX_F OPC_EVEX_EVEX + {evex} cmpzxadd DWORD PTR [r8+rax*4+0x123],edx,r15d #APX_F OPC_EVEX_EVEX + {evex} dec r15 #APX_F OPC_EVEX_EVEX + {evex} dec r15d #APX_F OPC_EVEX_EVEX + {evex} dec r15w #APX_F OPC_EVEX_EVEX + {evex} dec r8b #APX_F OPC_EVEX_EVEX + {evex} dec BYTE PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} dec WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} dec DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} dec QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} div r15 #APX_F OPC_EVEX_EVEX + {evex} div r15d #APX_F OPC_EVEX_EVEX + {evex} div r15w #APX_F OPC_EVEX_EVEX + {evex} div r8b #APX_F OPC_EVEX_EVEX + {evex} div BYTE PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} div WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} div DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} div QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} encodekey128 edx,r15d #APX_F OPC_EVEX_EVEX + {evex} encodekey256 edx,r15d #APX_F OPC_EVEX_EVEX + {evex} enqcmd r15,[r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} enqcmd r15d,[r8d+eax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} enqcmds r15,[r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} enqcmds r15d,[r8d+eax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} idiv r15 #APX_F OPC_EVEX_EVEX + {evex} idiv r15d #APX_F OPC_EVEX_EVEX + {evex} idiv r15w #APX_F OPC_EVEX_EVEX + {evex} idiv r8b #APX_F OPC_EVEX_EVEX + {evex} idiv BYTE PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} idiv WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} idiv DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} idiv QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} imul r15 #APX_F OPC_EVEX_EVEX + {evex} imul r15,r15 #APX_F OPC_EVEX_EVEX + {evex} imul r15d #APX_F OPC_EVEX_EVEX + {evex} imul edx,r15d #APX_F OPC_EVEX_EVEX + {evex} imul r15w #APX_F OPC_EVEX_EVEX + {evex} imul ax,r15w #APX_F OPC_EVEX_EVEX + {evex} imul r8b #APX_F OPC_EVEX_EVEX + {evex} imul BYTE PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} imul WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} imul DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} imul r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} imul r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} imul r15w,WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} imul QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} inc r15 #APX_F OPC_EVEX_EVEX + {evex} inc r15d #APX_F OPC_EVEX_EVEX + {evex} inc r15w #APX_F OPC_EVEX_EVEX + {evex} inc r8b #APX_F OPC_EVEX_EVEX + {evex} inc BYTE PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} inc WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} inc DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} inc QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} invept r15,XMMWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} invpcid r15,XMMWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} invvpid r15,XMMWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} kmovb k5,k3 #APX_F OPC_EVEX_EVEX + {evex} kmovb r15d,k5 #APX_F OPC_EVEX_EVEX + {evex} kmovb BYTE PTR [r8+rax*4+0x123],k5 #APX_F OPC_EVEX_EVEX + {evex} kmovb k5,r15d #APX_F OPC_EVEX_EVEX + {evex} kmovb k5,BYTE PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} kmovd k5,k3 #APX_F OPC_EVEX_EVEX + {evex} kmovd r15d,k5 #APX_F OPC_EVEX_EVEX + {evex} kmovd DWORD PTR [r8+rax*4+0x123],k5 #APX_F OPC_EVEX_EVEX + {evex} kmovd k5,r15d #APX_F OPC_EVEX_EVEX + {evex} kmovd k5,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} kmovq k5,k3 #APX_F OPC_EVEX_EVEX + {evex} kmovq r15,k5 #APX_F OPC_EVEX_EVEX + {evex} kmovq QWORD PTR [r8+rax*4+0x123],k5 #APX_F OPC_EVEX_EVEX + {evex} kmovq k5,r15 #APX_F OPC_EVEX_EVEX + {evex} kmovq k5,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} kmovw k5,k3 #APX_F OPC_EVEX_EVEX + {evex} kmovw r15d,k5 #APX_F OPC_EVEX_EVEX + {evex} kmovw WORD PTR [r8+rax*4+0x123],k5 #APX_F OPC_EVEX_EVEX + {evex} kmovw k5,r15d #APX_F OPC_EVEX_EVEX + {evex} kmovw k5,WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} lzcnt r15,r15 #APX_F OPC_EVEX_EVEX + {evex} lzcnt edx,r15d #APX_F OPC_EVEX_EVEX + {evex} lzcnt ax,r15w #APX_F OPC_EVEX_EVEX + {evex} lzcnt r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} lzcnt r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} lzcnt r15w,WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} movbe r15,r15 #APX_F OPC_EVEX_EVEX + {evex} movbe QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} movbe edx,r15d #APX_F OPC_EVEX_EVEX + {evex} movbe DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} movbe ax,r15w #APX_F OPC_EVEX_EVEX + {evex} movbe WORD PTR [r8+rax*4+0x123],r15w #APX_F OPC_EVEX_EVEX + {evex} movbe r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} movbe r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} movbe r15w,WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} movdir64b r15,[r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} movdir64b r15d,[r8d+eax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} movdiri QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} movdiri DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} mul r15 #APX_F OPC_EVEX_EVEX + {evex} mul r15d #APX_F OPC_EVEX_EVEX + {evex} mul r15w #APX_F OPC_EVEX_EVEX + {evex} mul r8b #APX_F OPC_EVEX_EVEX + {evex} mul BYTE PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} mul WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} mul DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} mul QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} mulx r11,r15,r15 #APX_F OPC_EVEX_EVEX + {evex} mulx r10d,edx,r15d #APX_F OPC_EVEX_EVEX + {evex} mulx r15,r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} mulx edx,r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} neg r15 #APX_F OPC_EVEX_EVEX + {evex} neg r15d #APX_F OPC_EVEX_EVEX + {evex} neg r15w #APX_F OPC_EVEX_EVEX + {evex} neg r8b #APX_F OPC_EVEX_EVEX + {evex} neg BYTE PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} neg WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} neg DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} neg QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} not r15 #APX_F OPC_EVEX_EVEX + {evex} not r15d #APX_F OPC_EVEX_EVEX + {evex} not r15w #APX_F OPC_EVEX_EVEX + {evex} not r8b #APX_F OPC_EVEX_EVEX + {evex} not BYTE PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} not WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} not DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} not QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} or r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} or r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} or r15w,0x7b #APX_F OPC_EVEX_EVEX + {evex} or r8b,0x7b #APX_F OPC_EVEX_EVEX + {evex} or BYTE PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} or WORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} or DWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} or QWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} or r15,r15 #APX_F OPC_EVEX_EVEX + {evex} or QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} or edx,r15d #APX_F OPC_EVEX_EVEX + {evex} or DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} or ax,r15w #APX_F OPC_EVEX_EVEX + {evex} or WORD PTR [r8+rax*4+0x123],r15w #APX_F OPC_EVEX_EVEX + {evex} or dl,r8b #APX_F OPC_EVEX_EVEX + {evex} or BYTE PTR [r8+rax*4+0x123],r8b #APX_F OPC_EVEX_EVEX + {evex} or r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} or r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} or r15w,WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} or r8b,BYTE PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} pdep r11,r15,r15 #APX_F OPC_EVEX_EVEX + {evex} pdep r10d,edx,r15d #APX_F OPC_EVEX_EVEX + {evex} pdep r15,r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} pdep edx,r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} pext r11,r15,r15 #APX_F OPC_EVEX_EVEX + {evex} pext r10d,edx,r15d #APX_F OPC_EVEX_EVEX + {evex} pext r15,r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} pext edx,r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} popcnt r15,r15 #APX_F OPC_EVEX_EVEX + {evex} popcnt edx,r15d #APX_F OPC_EVEX_EVEX + {evex} popcnt ax,r15w #APX_F OPC_EVEX_EVEX + {evex} popcnt r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} popcnt r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} popcnt r15w,WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} rcl r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} rcl r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} rcl r15w,0x7b #APX_F OPC_EVEX_EVEX + {evex} rcl r8b,0x7b #APX_F OPC_EVEX_EVEX + {evex} rcl BYTE PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} rcl WORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} rcl DWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} rcl QWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} rcl r15,1 #APX_F OPC_EVEX_EVEX + {evex} rcl r15d,1 #APX_F OPC_EVEX_EVEX + {evex} rcl r15w,1 #APX_F OPC_EVEX_EVEX + {evex} rcl r8b,1 #APX_F OPC_EVEX_EVEX + {evex} rcl BYTE PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} rcl WORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} rcl DWORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} rcl QWORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} rcl r15,cl #APX_F OPC_EVEX_EVEX + {evex} rcl r15d,cl #APX_F OPC_EVEX_EVEX + {evex} rcl r15w,cl #APX_F OPC_EVEX_EVEX + {evex} rcl r8b,cl #APX_F OPC_EVEX_EVEX + {evex} rcl BYTE PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} rcl WORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} rcl DWORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} rcl QWORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} rcr r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} rcr r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} rcr r15w,0x7b #APX_F OPC_EVEX_EVEX + {evex} rcr r8b,0x7b #APX_F OPC_EVEX_EVEX + {evex} rcr BYTE PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} rcr WORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} rcr DWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} rcr QWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} rcr r15,1 #APX_F OPC_EVEX_EVEX + {evex} rcr r15d,1 #APX_F OPC_EVEX_EVEX + {evex} rcr r15w,1 #APX_F OPC_EVEX_EVEX + {evex} rcr r8b,1 #APX_F OPC_EVEX_EVEX + {evex} rcr BYTE PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} rcr WORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} rcr DWORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} rcr QWORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} rcr r15,cl #APX_F OPC_EVEX_EVEX + {evex} rcr r15d,cl #APX_F OPC_EVEX_EVEX + {evex} rcr r15w,cl #APX_F OPC_EVEX_EVEX + {evex} rcr r8b,cl #APX_F OPC_EVEX_EVEX + {evex} rcr BYTE PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} rcr WORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} rcr DWORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} rcr QWORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} rol r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} rol r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} rol r15w,0x7b #APX_F OPC_EVEX_EVEX + {evex} rol r8b,0x7b #APX_F OPC_EVEX_EVEX + {evex} rol BYTE PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} rol WORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} rol DWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} rol QWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} rol r15,1 #APX_F OPC_EVEX_EVEX + {evex} rol r15d,1 #APX_F OPC_EVEX_EVEX + {evex} rol r15w,1 #APX_F OPC_EVEX_EVEX + {evex} rol r8b,1 #APX_F OPC_EVEX_EVEX + {evex} rol BYTE PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} rol WORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} rol DWORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} rol QWORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} rol r15,cl #APX_F OPC_EVEX_EVEX + {evex} rol r15d,cl #APX_F OPC_EVEX_EVEX + {evex} rol r15w,cl #APX_F OPC_EVEX_EVEX + {evex} rol r8b,cl #APX_F OPC_EVEX_EVEX + {evex} rol BYTE PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} rol WORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} rol DWORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} rol QWORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} ror r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} ror r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} ror r15w,0x7b #APX_F OPC_EVEX_EVEX + {evex} ror r8b,0x7b #APX_F OPC_EVEX_EVEX + {evex} ror BYTE PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} ror WORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} ror DWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} ror QWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} ror r15,1 #APX_F OPC_EVEX_EVEX + {evex} ror r15d,1 #APX_F OPC_EVEX_EVEX + {evex} ror r15w,1 #APX_F OPC_EVEX_EVEX + {evex} ror r8b,1 #APX_F OPC_EVEX_EVEX + {evex} ror BYTE PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} ror WORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} ror DWORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} ror QWORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} ror r15,cl #APX_F OPC_EVEX_EVEX + {evex} ror r15d,cl #APX_F OPC_EVEX_EVEX + {evex} ror r15w,cl #APX_F OPC_EVEX_EVEX + {evex} ror r8b,cl #APX_F OPC_EVEX_EVEX + {evex} ror BYTE PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} ror WORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} ror DWORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} ror QWORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} rorx r15,r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} rorx edx,r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} rorx r15,QWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} rorx r15d,DWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} sar r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} sar r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} sar r15w,0x7b #APX_F OPC_EVEX_EVEX + {evex} sar r8b,0x7b #APX_F OPC_EVEX_EVEX + {evex} sar BYTE PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} sar WORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} sar DWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} sar QWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} sar r15,1 #APX_F OPC_EVEX_EVEX + {evex} sar r15d,1 #APX_F OPC_EVEX_EVEX + {evex} sar r15w,1 #APX_F OPC_EVEX_EVEX + {evex} sar r8b,1 #APX_F OPC_EVEX_EVEX + {evex} sar BYTE PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} sar WORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} sar DWORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} sar QWORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} sar r15,cl #APX_F OPC_EVEX_EVEX + {evex} sar r15d,cl #APX_F OPC_EVEX_EVEX + {evex} sar r15w,cl #APX_F OPC_EVEX_EVEX + {evex} sar r8b,cl #APX_F OPC_EVEX_EVEX + {evex} sar BYTE PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} sar WORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} sar DWORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} sar QWORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} sarx r11,r15,r15 #APX_F OPC_EVEX_EVEX + {evex} sarx r15,QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} sarx r10d,edx,r15d #APX_F OPC_EVEX_EVEX + {evex} sarx edx,DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} sbb r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} sbb r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} sbb r15w,0x7b #APX_F OPC_EVEX_EVEX + {evex} sbb r8b,0x7b #APX_F OPC_EVEX_EVEX + {evex} sbb BYTE PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} sbb WORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} sbb DWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} sbb QWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} sbb r15,r15 #APX_F OPC_EVEX_EVEX + {evex} sbb QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} sbb edx,r15d #APX_F OPC_EVEX_EVEX + {evex} sbb DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} sbb ax,r15w #APX_F OPC_EVEX_EVEX + {evex} sbb WORD PTR [r8+rax*4+0x123],r15w #APX_F OPC_EVEX_EVEX + {evex} sbb dl,r8b #APX_F OPC_EVEX_EVEX + {evex} sbb BYTE PTR [r8+rax*4+0x123],r8b #APX_F OPC_EVEX_EVEX + {evex} sbb r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} sbb r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} sbb r15w,WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} sbb r8b,BYTE PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} sha1msg1 xmm12,xmm13 #APX_F OPC_EVEX_EVEX + {evex} sha1msg1 xmm12,XMMWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} sha1msg2 xmm12,xmm13 #APX_F OPC_EVEX_EVEX + {evex} sha1msg2 xmm12,XMMWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} sha1nexte xmm12,xmm13 #APX_F OPC_EVEX_EVEX + {evex} sha1nexte xmm12,XMMWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} sha1rnds4 xmm12,xmm13,0x7b #APX_F OPC_EVEX_EVEX + {evex} sha1rnds4 xmm12,XMMWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} sha256msg1 xmm12,xmm13 #APX_F OPC_EVEX_EVEX + {evex} sha256msg1 xmm12,XMMWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} sha256msg2 xmm12,xmm13 #APX_F OPC_EVEX_EVEX + {evex} sha256msg2 xmm12,XMMWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} sha256rnds2 xmm12,XMMWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} shl r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} shl r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} shl r15w,0x7b #APX_F OPC_EVEX_EVEX + {evex} shl r8b,0x7b #APX_F OPC_EVEX_EVEX + {evex} shl BYTE PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} shl WORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} shl DWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} shl QWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} shl r15,1 #APX_F OPC_EVEX_EVEX + {evex} shl r15d,1 #APX_F OPC_EVEX_EVEX + {evex} shl r15w,1 #APX_F OPC_EVEX_EVEX + {evex} shl r8b,1 #APX_F OPC_EVEX_EVEX + {evex} shl BYTE PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} shl WORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} shl DWORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} shl QWORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} shl r15,cl #APX_F OPC_EVEX_EVEX + {evex} shl r15d,cl #APX_F OPC_EVEX_EVEX + {evex} shl r15w,cl #APX_F OPC_EVEX_EVEX + {evex} shl r8b,cl #APX_F OPC_EVEX_EVEX + {evex} shl BYTE PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} shl WORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} shl DWORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} shl QWORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} shld r15,r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} shld QWORD PTR [r8+rax*4+0x123],r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} shld edx,r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} shld DWORD PTR [r8+rax*4+0x123],r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} shld ax,r15w,0x7b #APX_F OPC_EVEX_EVEX + {evex} shld WORD PTR [r8+rax*4+0x123],r15w,0x7b #APX_F OPC_EVEX_EVEX + {evex} shld r15,r15,cl #APX_F OPC_EVEX_EVEX + {evex} shld QWORD PTR [r8+rax*4+0x123],r15,cl #APX_F OPC_EVEX_EVEX + {evex} shld edx,r15d,cl #APX_F OPC_EVEX_EVEX + {evex} shld DWORD PTR [r8+rax*4+0x123],r15d,cl #APX_F OPC_EVEX_EVEX + {evex} shld ax,r15w,cl #APX_F OPC_EVEX_EVEX + {evex} shld WORD PTR [r8+rax*4+0x123],r15w,cl #APX_F OPC_EVEX_EVEX + {evex} shlx r11,r15,r15 #APX_F OPC_EVEX_EVEX + {evex} shlx r15,QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} shlx r10d,edx,r15d #APX_F OPC_EVEX_EVEX + {evex} shlx edx,DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} shr r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} shr r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} shr r15w,0x7b #APX_F OPC_EVEX_EVEX + {evex} shr r8b,0x7b #APX_F OPC_EVEX_EVEX + {evex} shr BYTE PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} shr WORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} shr DWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} shr QWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} shr r15,1 #APX_F OPC_EVEX_EVEX + {evex} shr r15d,1 #APX_F OPC_EVEX_EVEX + {evex} shr r15w,1 #APX_F OPC_EVEX_EVEX + {evex} shr r8b,1 #APX_F OPC_EVEX_EVEX + {evex} shr BYTE PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} shr WORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} shr DWORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} shr QWORD PTR [r8+rax*4+0x123],1 #APX_F OPC_EVEX_EVEX + {evex} shr r15,cl #APX_F OPC_EVEX_EVEX + {evex} shr r15d,cl #APX_F OPC_EVEX_EVEX + {evex} shr r15w,cl #APX_F OPC_EVEX_EVEX + {evex} shr r8b,cl #APX_F OPC_EVEX_EVEX + {evex} shr BYTE PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} shr WORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} shr DWORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} shr QWORD PTR [r8+rax*4+0x123],cl #APX_F OPC_EVEX_EVEX + {evex} shrd r15,r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} shrd QWORD PTR [r8+rax*4+0x123],r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} shrd edx,r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} shrd DWORD PTR [r8+rax*4+0x123],r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} shrd ax,r15w,0x7b #APX_F OPC_EVEX_EVEX + {evex} shrd WORD PTR [r8+rax*4+0x123],r15w,0x7b #APX_F OPC_EVEX_EVEX + {evex} shrd r15,r15,cl #APX_F OPC_EVEX_EVEX + {evex} shrd QWORD PTR [r8+rax*4+0x123],r15,cl #APX_F OPC_EVEX_EVEX + {evex} shrd edx,r15d,cl #APX_F OPC_EVEX_EVEX + {evex} shrd DWORD PTR [r8+rax*4+0x123],r15d,cl #APX_F OPC_EVEX_EVEX + {evex} shrd ax,r15w,cl #APX_F OPC_EVEX_EVEX + {evex} shrd WORD PTR [r8+rax*4+0x123],r15w,cl #APX_F OPC_EVEX_EVEX + {evex} shrx r11,r15,r15 #APX_F OPC_EVEX_EVEX + {evex} shrx r15,QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} shrx r10d,edx,r15d #APX_F OPC_EVEX_EVEX + {evex} shrx edx,DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} sub r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} sub r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} sub r15w,0x7b #APX_F OPC_EVEX_EVEX + {evex} sub r8b,0x7b #APX_F OPC_EVEX_EVEX + {evex} sub BYTE PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} sub WORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} sub DWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} sub QWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} sub r15,r15 #APX_F OPC_EVEX_EVEX + {evex} sub QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} sub edx,r15d #APX_F OPC_EVEX_EVEX + {evex} sub DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} sub ax,r15w #APX_F OPC_EVEX_EVEX + {evex} sub WORD PTR [r8+rax*4+0x123],r15w #APX_F OPC_EVEX_EVEX + {evex} sub dl,r8b #APX_F OPC_EVEX_EVEX + {evex} sub BYTE PTR [r8+rax*4+0x123],r8b #APX_F OPC_EVEX_EVEX + {evex} sub r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} sub r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} sub r15w,WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} sub r8b,BYTE PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} tzcnt r15,r15 #APX_F OPC_EVEX_EVEX + {evex} tzcnt edx,r15d #APX_F OPC_EVEX_EVEX + {evex} tzcnt ax,r15w #APX_F OPC_EVEX_EVEX + {evex} tzcnt r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} tzcnt r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} tzcnt r15w,WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} wrssd DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} wrssq QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} wrussd DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} wrussq QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} xor r15,0x7b #APX_F OPC_EVEX_EVEX + {evex} xor r15d,0x7b #APX_F OPC_EVEX_EVEX + {evex} xor r15w,0x7b #APX_F OPC_EVEX_EVEX + {evex} xor r8b,0x7b #APX_F OPC_EVEX_EVEX + {evex} xor BYTE PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} xor WORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} xor DWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} xor QWORD PTR [r8+rax*4+0x123],0x7b #APX_F OPC_EVEX_EVEX + {evex} xor r15,r15 #APX_F OPC_EVEX_EVEX + {evex} xor QWORD PTR [r8+rax*4+0x123],r15 #APX_F OPC_EVEX_EVEX + {evex} xor edx,r15d #APX_F OPC_EVEX_EVEX + {evex} xor DWORD PTR [r8+rax*4+0x123],r15d #APX_F OPC_EVEX_EVEX + {evex} xor ax,r15w #APX_F OPC_EVEX_EVEX + {evex} xor WORD PTR [r8+rax*4+0x123],r15w #APX_F OPC_EVEX_EVEX + {evex} xor dl,r8b #APX_F OPC_EVEX_EVEX + {evex} xor BYTE PTR [r8+rax*4+0x123],r8b #APX_F OPC_EVEX_EVEX + {evex} xor r15,QWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} xor r15d,DWORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} xor r15w,WORD PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX + {evex} xor r8b,BYTE PTR [r8+rax*4+0x123] #APX_F OPC_EVEX_EVEX diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp index cf64b1f0000..086dc47b5ba 100644 --- a/gas/testsuite/gas/i386/x86-64.exp +++ b/gas/testsuite/gas/i386/x86-64.exp @@ -378,6 +378,8 @@ 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-apx_f-evex" +run_dump_test "x86-64-apx_f-evex-intel" 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-len.h b/opcodes/i386-dis-evex-len.h index 060ba3afb6c..a7bd77c5753 100644 --- a/opcodes/i386-dis-evex-len.h +++ b/opcodes/i386-dis-evex-len.h @@ -64,7 +64,7 @@ static const struct dis386 evex_len_table[][3] = { /* EVEX_LEN_0F38F2 */ { - { "%XNandnS", { Gdq, VexGdq, Edq }, 0 }, + { "%XE%XNandnS", { Gdq, VexGdq, Edq }, 0 }, }, /* EVEX_LEN_0F38F3 */ diff --git a/opcodes/i386-dis-evex-mod.h b/opcodes/i386-dis-evex-mod.h index ad7b0514720..950f674f4f7 100644 --- a/opcodes/i386-dis-evex-mod.h +++ b/opcodes/i386-dis-evex-mod.h @@ -1,11 +1,11 @@ /* Nothing at present. */ /* MOD_EVEX_MAP4_65 */ { - { "wrussK", { M, Gdq }, PREFIX_DATA }, + { "%XEwrussK", { M, Gdq }, PREFIX_DATA }, }, /* MOD_EVEX_MAP4_66_PREFIX_0 */ { - { "wrssK", { M, Gdq }, 0 }, + { "%XEwrssK", { M, Gdq }, 0 }, }, /* MOD_EVEX_MAP4_8F_X86_64_L_0 */ { @@ -15,44 +15,44 @@ /* MOD_EVEX_MAP4_DA_PREFIX_1 */ { { Bad_Opcode }, - { "encodekey128", { Gd, Ed }, 0 }, + { "%XEencodekey128", { Gd, Ed }, 0 }, }, /* MOD_EVEX_MAP4_DB_PREFIX_1 */ { { Bad_Opcode }, - { "encodekey256", { Gd, Ed }, 0 }, + { "%XEencodekey256", { Gd, Ed }, 0 }, }, /* MOD_EVEX_MAP4_DC_PREFIX_1 */ { - { "aesenc128kl", { XM, M }, 0 }, + { "%XEaesenc128kl", { XM, M }, 0 }, }, /* MOD_EVEX_MAP4_DD_PREFIX_1 */ { - { "aesdec128kl", { XM, M }, 0 }, + { "%XEaesdec128kl", { XM, M }, 0 }, }, /* MOD_EVEX_MAP4_DE_PREFIX_1 */ { - { "aesenc256kl", { XM, M }, 0 }, + { "%XEaesenc256kl", { XM, M }, 0 }, }, /* MOD_EVEX_MAP4_DF_PREFIX_1 */ { - { "aesdec256kl", { XM, M }, 0 }, + { "%XEaesdec256kl", { XM, M }, 0 }, }, /* MOD_EVEX_MAP4_F8_PREFIX_1 */ { - { "enqcmds", { Gva, M }, 0 }, + { "%XEenqcmds", { Gva, M }, 0 }, }, /* MOD_EVEX_MAP4_F8_PREFIX_2 */ { - { "movdir64b", { Gva, M }, 0 }, + { "%XEmovdir64b", { Gva, M }, 0 }, }, /* MOD_EVEX_MAP4_F8_PREFIX_3 */ { - { "enqcmd", { Gva, M }, 0 }, + { "%XEenqcmd", { Gva, M }, 0 }, }, /* MOD_EVEX_MAP4_F9 */ { - { "movdiri", { Edq, Gdq }, 0 }, + { "%XEmovdiri", { Edq, Gdq }, 0 }, }, /* MOD_EVEX_MAP4_FF_R_6_X86_64_L_0 */ { diff --git a/opcodes/i386-dis-evex-prefix.h b/opcodes/i386-dis-evex-prefix.h index 5b2dff379bd..f6ce9e053f5 100644 --- a/opcodes/i386-dis-evex-prefix.h +++ b/opcodes/i386-dis-evex-prefix.h @@ -340,21 +340,21 @@ }, /* PREFIX_EVEX_MAP4_60 */ { - { "movbeS", { Gv, Ev }, 0 }, + { "%XEmovbeS", { Gv, Ev }, 0 }, { Bad_Opcode }, - { "movbeS", { Gv, Ev }, 0 }, + { "%XEmovbeS", { Gv, Ev }, 0 }, }, /* PREFIX_EVEX_MAP4_61 */ { - { "movbeS", { Ev, Gv }, 0 }, + { "%XEmovbeS", { Ev, Gv }, 0 }, { Bad_Opcode }, - { "movbeS", { Ev, Gv }, 0 }, + { "%XEmovbeS", { Ev, Gv }, 0 }, }, /* PREFIX_EVEX_MAP4_66 */ { { MOD_TABLE (MOD_EVEX_MAP4_66_PREFIX_0) }, - { "adoxS", { VexGdq, Gdq, Edq }, 0 }, - { "adcxS", { VexGdq, Gdq, Edq }, 0 }, + { "%XEadoxS", { VexGdq, Gdq, Edq }, 0 }, + { "%XEadcxS", { VexGdq, Gdq, Edq }, 0 }, }, /* PREFIX_EVEX_MAP4_8F_X86_64_L_0_M_1_R_0 */ { @@ -362,27 +362,27 @@ }, /* PREFIX_EVEX_MAP4_D8 */ { - { "sha1nexte", { XM, EXxmm }, 0 }, + { "%XEsha1nexte", { XM, EXxmm }, 0 }, { REG_TABLE (REG_EVEX_MAP4_D8_PREFIX_1) }, }, /* PREFIX_EVEX_MAP4_DA */ { - { "sha1msg2", { XM, EXxmm }, 0 }, + { "%XEsha1msg2", { XM, EXxmm }, 0 }, { MOD_TABLE (MOD_EVEX_MAP4_DA_PREFIX_1) }, }, /* PREFIX_EVEX_MAP4_DB */ { - { "sha256rnds2", { XM, EXxmm, XMM0 }, 0 }, + { "%XEsha256rnds2", { XM, EXxmm, XMM0 }, 0 }, { MOD_TABLE (MOD_EVEX_MAP4_DB_PREFIX_1) }, }, /* PREFIX_EVEX_MAP4_DC */ { - { "sha256msg1", { XM, EXxmm }, 0 }, + { "%XEsha256msg1", { XM, EXxmm }, 0 }, { MOD_TABLE (MOD_EVEX_MAP4_DC_PREFIX_1) }, }, /* PREFIX_EVEX_MAP4_DD */ { - { "sha256msg2", { XM, EXxmm }, 0 }, + { "%XEsha256msg2", { XM, EXxmm }, 0 }, { MOD_TABLE (MOD_EVEX_MAP4_DD_PREFIX_1) }, }, /* PREFIX_EVEX_MAP4_DE */ @@ -398,18 +398,18 @@ /* PREFIX_EVEX_MAP4_F0 */ { { "crc32A", { Gdq, Eb }, 0 }, - { "invept", { Gm, Mo }, 0 }, + { "%XEinvept", { Gm, Mo }, 0 }, }, /* PREFIX_EVEX_MAP4_F1 */ { { "crc32Q", { Gdq, Ev }, 0 }, - { "invvpid", { Gm, Mo }, 0 }, + { "%XEinvvpid", { Gm, Mo }, 0 }, { "crc32Q", { Gdq, Ev }, 0 }, }, /* PREFIX_EVEX_MAP4_F2 */ { { Bad_Opcode }, - { "invpcid", { Gm, M }, 0 }, + { "%XEinvpcid", { Gm, M }, 0 }, }, /* PREFIX_EVEX_MAP4_F8 */ { @@ -420,10 +420,10 @@ }, /* PREFIX_EVEX_MAP4_FC */ { - { "aadd", { Mdq, Gdq }, 0 }, - { "axor", { Mdq, Gdq }, 0 }, - { "aand", { Mdq, Gdq }, 0 }, - { "aor", { Mdq, Gdq }, 0 }, + { "%XEaadd", { Mdq, Gdq }, 0 }, + { "%XEaxor", { Mdq, Gdq }, 0 }, + { "%XEaand", { Mdq, Gdq }, 0 }, + { "%XEaor", { Mdq, Gdq }, 0 }, }, /* PREFIX_EVEX_MAP4_FF_R_6_X86_64_L_0_M_1 */ { diff --git a/opcodes/i386-dis-evex-reg.h b/opcodes/i386-dis-evex-reg.h index 109b43334ad..9ac175d946b 100644 --- a/opcodes/i386-dis-evex-reg.h +++ b/opcodes/i386-dis-evex-reg.h @@ -52,16 +52,16 @@ /* REG_EVEX_0F38F3_L_0 */ { { Bad_Opcode }, - { "%XNblsrS", { VexGdq, Edq }, 0 }, - { "%XNblsmskS", { VexGdq, Edq }, 0 }, - { "%XNblsiS", { VexGdq, Edq }, 0 }, + { "%XE%XNblsrS", { VexGdq, Edq }, 0 }, + { "%XE%XNblsmskS", { VexGdq, Edq }, 0 }, + { "%XE%XNblsiS", { VexGdq, Edq }, 0 }, }, /* REG_EVEX_MAP4_80 */ { { "%XNaddA", { VexGb, Eb, Ib }, 0 }, { "%XNorA", { VexGb, Eb, Ib }, 0 }, - { "adcA", { VexGb, Eb, Ib }, 0 }, - { "sbbA", { VexGb, Eb, Ib }, 0 }, + { "%XEadcA", { VexGb, Eb, Ib }, 0 }, + { "%XEsbbA", { VexGb, Eb, Ib }, 0 }, { "%XNandA", { VexGb, Eb, Ib }, 0 }, { "%XNsubA", { VexGb, Eb, Ib }, 0 }, { "%XNxorA", {VexGb, Eb, Ib }, 0 }, @@ -71,8 +71,8 @@ { { "%XNaddQ", { VexGv, Ev, Iv }, 0 }, { "%XNorQ", { VexGv, Ev, Iv }, 0 }, - { "adcQ", { VexGv, Ev, Iv }, 0 }, - { "sbbQ", { VexGv, Ev, Iv }, 0 }, + { "%XEadcQ", { VexGv, Ev, Iv }, 0 }, + { "%XEsbbQ", { VexGv, Ev, Iv }, 0 }, { "%XNandQ", { VexGv, Ev, Iv }, 0 }, { "%XNsubQ", { VexGv, Ev, Iv }, 0 }, { "%XNxorQ", { VexGv, Ev, Iv }, 0 }, @@ -82,8 +82,8 @@ { { "%XNaddQ", { VexGv, Ev, sIb }, 0 }, { "%XNorQ", { VexGv, Ev, sIb }, 0 }, - { "adcQ", { VexGv, Ev, sIb }, 0 }, - { "sbbQ", { VexGv, Ev, sIb }, 0 }, + { "%XEadcQ", { VexGv, Ev, sIb }, 0 }, + { "%XEsbbQ", { VexGv, Ev, sIb }, 0 }, { "%XNandQ", { VexGv, Ev, sIb }, 0 }, { "%XNsubQ", { VexGv, Ev, sIb }, 0 }, { "%XNxorQ", { VexGv, Ev, sIb }, 0 }, @@ -97,8 +97,8 @@ { { "%XNrolA", { VexGb, Eb, Ib }, 0 }, { "%XNrorA", { VexGb, Eb, Ib }, 0 }, - { "rclA", { VexGb, Eb, Ib }, 0 }, - { "rcrA", { VexGb, Eb, Ib }, 0 }, + { "%XErclA", { VexGb, Eb, Ib }, 0 }, + { "%XErcrA", { VexGb, Eb, Ib }, 0 }, { "%XNshlA", { VexGb, Eb, Ib }, 0 }, { "%XNshrA", { VexGb, Eb, Ib }, 0 }, { "%XNshlA", { VexGb, Eb, Ib }, 0 }, @@ -108,8 +108,8 @@ { { "%XNrolQ", { VexGv, Ev, Ib }, 0 }, { "%XNrorQ", { VexGv, Ev, Ib }, 0 }, - { "rclQ", { VexGv, Ev, Ib }, 0 }, - { "rcrQ", { VexGv, Ev, Ib }, 0 }, + { "%XErclQ", { VexGv, Ev, Ib }, 0 }, + { "%XErcrQ", { VexGv, Ev, Ib }, 0 }, { "%XNshlQ", { VexGv, Ev, Ib }, 0 }, { "%XNshrQ", { VexGv, Ev, Ib }, 0 }, { "%XNshlQ", { VexGv, Ev, Ib }, 0 }, @@ -119,8 +119,8 @@ { { "%XNrolA", { VexGb, Eb, I1 }, 0 }, { "%XNrorA", { VexGb, Eb, I1 }, 0 }, - { "rclA", { VexGb, Eb, I1 }, 0 }, - { "rcrA", { VexGb, Eb, I1 }, 0 }, + { "%XErclA", { VexGb, Eb, I1 }, 0 }, + { "%XErcrA", { VexGb, Eb, I1 }, 0 }, { "%XNshlA", { VexGb, Eb, I1 }, 0 }, { "%XNshrA", { VexGb, Eb, I1 }, 0 }, { "%XNshlA", { VexGb, Eb, I1 }, 0 }, @@ -130,8 +130,8 @@ { { "%XNrolQ", { VexGv, Ev, I1 }, 0 }, { "%XNrorQ", { VexGv, Ev, I1 }, 0 }, - { "rclQ", { VexGv, Ev, I1 }, 0 }, - { "rcrQ", { VexGv, Ev, I1 }, 0 }, + { "%XErclQ", { VexGv, Ev, I1 }, 0 }, + { "%XErcrQ", { VexGv, Ev, I1 }, 0 }, { "%XNshlQ", { VexGv, Ev, I1 }, 0 }, { "%XNshrQ", { VexGv, Ev, I1 }, 0 }, { "%XNshlQ", { VexGv, Ev, I1 }, 0 }, @@ -141,8 +141,8 @@ { { "%XNrolA", { VexGb, Eb, CL }, 0 }, { "%XNrorA", { VexGb, Eb, CL }, 0 }, - { "rclA", { VexGb, Eb, CL }, 0 }, - { "rcrA", { VexGb, Eb, CL }, 0 }, + { "%XErclA", { VexGb, Eb, CL }, 0 }, + { "%XErcrA", { VexGb, Eb, CL }, 0 }, { "%XNshlA", { VexGb, Eb, CL }, 0 }, { "%XNshrA", { VexGb, Eb, CL }, 0 }, { "%XNshlA", { VexGb, Eb, CL }, 0 }, @@ -152,8 +152,8 @@ { { "%XNrolQ", { VexGv, Ev, CL }, 0 }, { "%XNrorQ", { VexGv, Ev, CL }, 0 }, - { "rclQ", { VexGv, Ev, CL }, 0 }, - { "rcrQ", { VexGv, Ev, CL }, 0 }, + { "%XErclQ", { VexGv, Ev, CL }, 0 }, + { "%XErcrQ", { VexGv, Ev, CL }, 0 }, { "%XNshlQ", { VexGv, Ev, CL }, 0 }, { "%XNshrQ", { VexGv, Ev, CL }, 0 }, { "%XNshlQ", { VexGv, Ev, CL }, 0 }, @@ -161,10 +161,10 @@ }, /* REG_EVEX_MAP4_D8_PREFIX_1 */ { - { "aesencwide128kl", { M }, 0 }, - { "aesdecwide128kl", { M }, 0 }, - { "aesencwide256kl", { M }, 0 }, - { "aesdecwide256kl", { M }, 0 }, + { "%XEaesencwide128kl", { M }, 0 }, + { "%XEaesdecwide128kl", { M }, 0 }, + { "%XEaesencwide256kl", { M }, 0 }, + { "%XEaesdecwide256kl", { M }, 0 }, }, /* REG_EVEX_MAP4_F6 */ { diff --git a/opcodes/i386-dis-evex-x86.h b/opcodes/i386-dis-evex-x86.h index b603f1af882..255ff7bb89c 100644 --- a/opcodes/i386-dis-evex-x86.h +++ b/opcodes/i386-dis-evex-x86.h @@ -31,82 +31,82 @@ /* X86_64_EVEX_0F38E0 */ { { Bad_Opcode }, - { "cmpoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_EVEX_0F38E1 */ { { Bad_Opcode }, - { "cmpnoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpnoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_EVEX_0F38E2 */ { { Bad_Opcode }, - { "cmpbxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpbxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_EVEX_0F38E3 */ { { Bad_Opcode }, - { "cmpnbxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpnbxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_EVEX_0F38E4 */ { { Bad_Opcode }, - { "cmpzxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpzxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_EVEX_0F38E5 */ { { Bad_Opcode }, - { "cmpnzxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpnzxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_EVEX_0F38E6 */ { { Bad_Opcode }, - { "cmpbexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpbexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_EVEX_0F38E7 */ { { Bad_Opcode }, - { "cmpnbexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpnbexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_EVEX_0F38E8 */ { { Bad_Opcode }, - { "cmpsxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpsxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_EVEX_0F38E9 */ { { Bad_Opcode }, - { "cmpnsxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpnsxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_EVEX_0F38EA */ { { Bad_Opcode }, - { "cmppxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmppxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_EVEX_0F38EB */ { { Bad_Opcode }, - { "cmpnpxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpnpxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_EVEX_0F38EC */ { { Bad_Opcode }, - { "cmplxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmplxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_EVEX_0F38ED */ { { Bad_Opcode }, - { "cmpnlxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpnlxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_EVEX_0F38EE */ { { Bad_Opcode }, - { "cmplexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmplexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_EVEX_0F38EF */ { { Bad_Opcode }, - { "cmpnlexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, + { "%XEcmpnlexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA }, }, /* X86_64_EVEX_0F38F2 */ { diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h index 0f196155054..4d6adc7585d 100644 --- a/opcodes/i386-dis-evex.h +++ b/opcodes/i386-dis-evex.h @@ -893,19 +893,19 @@ static const struct dis386 evex_table[][256] = { { Bad_Opcode }, { Bad_Opcode }, /* 10 */ - { "adcB", { VexGb, Eb, Gb }, 0 }, - { "adcS", { VexGv, Ev, Gv }, 0 }, - { "adcB", { VexGb, Gb, EbS }, 0 }, - { "adcS", { VexGv, Gv, EvS }, 0 }, + { "%XEadcB", { VexGb, Eb, Gb }, 0 }, + { "%XEadcS", { VexGv, Ev, Gv }, 0 }, + { "%XEadcB", { VexGb, Gb, EbS }, 0 }, + { "%XEadcS", { VexGv, Gv, EvS }, 0 }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, /* 18 */ - { "sbbB", { VexGb, Eb, Gb }, 0 }, - { "sbbS", { VexGv, Ev, Gv }, 0 }, - { "sbbB", { VexGb, Gb, EbS }, 0 }, - { "sbbS", { VexGv, Gv, EvS }, 0 }, + { "%XEsbbB", { VexGb, Eb, Gb }, 0 }, + { "%XEsbbS", { VexGv, Ev, Gv }, 0 }, + { "%XEsbbB", { VexGb, Gb, EbS }, 0 }, + { "%XEsbbS", { VexGv, Gv, EvS }, 0 }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -1113,13 +1113,13 @@ static const struct dis386 evex_table[][256] = { { REG_TABLE (REG_EVEX_MAP4_D1) }, { REG_TABLE (REG_EVEX_MAP4_D2) }, { REG_TABLE (REG_EVEX_MAP4_D3) }, - { "sha1rnds4", { XM, EXxmm, Ib }, 0 }, + { "%XEsha1rnds4", { XM, EXxmm, Ib }, 0 }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, /* D8 */ { PREFIX_TABLE (PREFIX_EVEX_MAP4_D8) }, - { "sha1msg1", { XM, EXxmm }, 0 }, + { "%XEsha1msg1", { XM, EXxmm }, 0 }, { PREFIX_TABLE (PREFIX_EVEX_MAP4_DA) }, { PREFIX_TABLE (PREFIX_EVEX_MAP4_DB) }, { PREFIX_TABLE (PREFIX_EVEX_MAP4_DC) }, diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index e2e903afde4..9d2c00cca1d 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -3910,38 +3910,38 @@ static const struct dis386 prefix_table[][4] = { /* PREFIX_VEX_0F90_L_0_W_0 */ { - { "kmovw", { MaskG, MaskE }, 0 }, + { "%XEkmovw", { MaskG, MaskE }, 0 }, { Bad_Opcode }, - { "kmovb", { MaskG, MaskBDE }, 0 }, + { "%XEkmovb", { MaskG, MaskBDE }, 0 }, }, /* PREFIX_VEX_0F90_L_0_W_1 */ { - { "kmovq", { MaskG, MaskE }, 0 }, + { "%XEkmovq", { MaskG, MaskE }, 0 }, { Bad_Opcode }, - { "kmovd", { MaskG, MaskBDE }, 0 }, + { "%XEkmovd", { MaskG, MaskBDE }, 0 }, }, /* PREFIX_VEX_0F91_L_0_W_0 */ { - { "kmovw", { Mw, MaskG }, 0 }, + { "%XEkmovw", { Mw, MaskG }, 0 }, { Bad_Opcode }, - { "kmovb", { Mb, MaskG }, 0 }, + { "%XEkmovb", { Mb, MaskG }, 0 }, }, /* PREFIX_VEX_0F91_L_0_W_1 */ { - { "kmovq", { Mq, MaskG }, 0 }, + { "%XEkmovq", { Mq, MaskG }, 0 }, { Bad_Opcode }, - { "kmovd", { Md, MaskG }, 0 }, + { "%XEkmovd", { Md, MaskG }, 0 }, }, /* PREFIX_VEX_0F92_L_0_W_0 */ { - { "kmovw", { MaskG, Rdq }, 0 }, + { "%XEkmovw", { MaskG, Rdq }, 0 }, { Bad_Opcode }, - { "kmovb", { MaskG, Rdq }, 0 }, - { "kmovd", { MaskG, Rdq }, 0 }, + { "%XEkmovb", { MaskG, Rdq }, 0 }, + { "%XEkmovd", { MaskG, Rdq }, 0 }, }, /* PREFIX_VEX_0F92_L_0_W_1 */ @@ -3949,15 +3949,15 @@ static const struct dis386 prefix_table[][4] = { { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { "kmovK", { MaskG, Rdq }, 0 }, + { "%XEkmovK", { MaskG, Rdq }, 0 }, }, /* PREFIX_VEX_0F93_L_0_W_0 */ { - { "kmovw", { Gdq, MaskR }, 0 }, + { "%XEkmovw", { Gdq, MaskR }, 0 }, { Bad_Opcode }, - { "kmovb", { Gdq, MaskR }, 0 }, - { "kmovd", { Gdq, MaskR }, 0 }, + { "%XEkmovb", { Gdq, MaskR }, 0 }, + { "%XEkmovd", { Gdq, MaskR }, 0 }, }, /* PREFIX_VEX_0F93_L_0_W_1 */ @@ -3965,7 +3965,7 @@ static const struct dis386 prefix_table[][4] = { { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { "kmovK", { Gdq, MaskR }, 0 }, + { "%XEkmovK", { Gdq, MaskR }, 0 }, }, /* PREFIX_VEX_0F98_L_0_W_0 */ @@ -4126,10 +4126,10 @@ static const struct dis386 prefix_table[][4] = { /* PREFIX_VEX_0F38F5_L_0 */ { - { "%XNbzhiS", { Gdq, Edq, VexGdq }, 0 }, - { "pextS", { Gdq, VexGdq, Edq }, 0 }, + { "%XE%XNbzhiS", { Gdq, Edq, VexGdq }, 0 }, + { "%XEpextS", { Gdq, VexGdq, Edq }, 0 }, { Bad_Opcode }, - { "pdepS", { Gdq, VexGdq, Edq }, 0 }, + { "%XEpdepS", { Gdq, VexGdq, Edq }, 0 }, }, /* PREFIX_VEX_0F38F6_L_0 */ @@ -4137,15 +4137,15 @@ static const struct dis386 prefix_table[][4] = { { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { "mulxS", { Gdq, VexGdq, Edq }, 0 }, + { "%XEmulxS", { Gdq, VexGdq, Edq }, 0 }, }, /* PREFIX_VEX_0F38F7_L_0 */ { - { "%XNbextrS", { Gdq, Edq, VexGdq }, 0 }, - { "sarxS", { Gdq, Edq, VexGdq }, 0 }, - { "shlxS", { Gdq, Edq, VexGdq }, 0 }, - { "shrxS", { Gdq, Edq, VexGdq }, 0 }, + { "%XE%XNbextrS", { Gdq, Edq, VexGdq }, 0 }, + { "%XEsarxS", { Gdq, Edq, VexGdq }, 0 }, + { "%XEshlxS", { Gdq, Edq, VexGdq }, 0 }, + { "%XEshrxS", { Gdq, Edq, VexGdq }, 0 }, }, /* PREFIX_VEX_0F3AF0_L_0 */ @@ -4153,7 +4153,7 @@ static const struct dis386 prefix_table[][4] = { { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { "rorxS", { Gdq, Edq, Ib }, 0 }, + { "%XErorxS", { Gdq, Edq, Ib }, 0 }, }, #include "i386-dis-evex-prefix.h" @@ -10465,7 +10465,10 @@ putop (instr_info *ins, const char *in_template, int sizeflag) { case 'X': if (!ins->vex.evex || ins->vex.b || ins->vex.ll >= 2 + || ins->vex.nf || (ins->rex2 & REX_R) + || (ins->rex2 & REX_B) + || (ins->rex2 & REX_X) || (ins->modrm.mod == 3 && (ins->rex & REX_X)) || !ins->vex.v || ins->vex.mask_register_specifier) break; From patchwork Thu Sep 21 10:11:37 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: 76515 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 063BA3856241 for ; Thu, 21 Sep 2023 10:13:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 063BA3856241 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1695291218; bh=sy8KgJVxc0nvorNrG/jXUX/9SREwlD5FxGOtv5MYmUE=; 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=WYNNO5yttAHD/dbx/kI5Ni7UJlNUudO25f3TvVIc7OB2ONUUIbFKXXGF5ckUaUwZA GxBB3uvKeEgKTCrmQah3pmAjejIQUBoKvzNX9PcLBOZ03/PsrFcLPchgG9B2xu3R4E vi/rbL7KiLQHm6R6OYz/8D4eZJAH8the0eoybVlg= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.126]) by sourceware.org (Postfix) with ESMTPS id D70B6385B522 for ; Thu, 21 Sep 2023 10:12:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D70B6385B522 X-IronPort-AV: E=McAfee;i="6600,9927,10839"; a="365533221" X-IronPort-AV: E=Sophos;i="6.03,165,1694761200"; d="scan'208";a="365533221" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Sep 2023 03:12:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10839"; a="812585773" X-IronPort-AV: E=Sophos;i="6.03,165,1694761200"; d="scan'208";a="812585773" Received: from scymds04.sc.intel.com ([10.82.73.238]) by fmsmga008.fm.intel.com with ESMTP; 21 Sep 2023 03:11:49 -0700 Received: from shgcc101.sh.intel.com (shgcc101.sh.intel.com [10.239.85.97]) by scymds04.sc.intel.com (Postfix) with ESMTP id 6144B181F52C; Thu, 21 Sep 2023 03:11:48 -0700 (PDT) To: binutils@sourceware.org Cc: jbeulich@suse.com, hongjiu.lu@intel.com, ccoutant@gmail.com Subject: [PATCH 2/6] Disable pseudo prefix {rex2} for illegal instructions. Date: Thu, 21 Sep 2023 10:11:37 +0000 Message-Id: <20230921101141.2518818-3-lili.cui@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230921101141.2518818-1-lili.cui@intel.com> References: <20230921101141.2518818-1-lili.cui@intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 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" All opcodes listed map0 0x4*/0x7*/0xa* and map0 0x3*/0x8* are reserved under REX2 and triggers #UD when prefixed with REX2 gas/ChangeLog: * config/tc-i386.c (match_template): Handle check_EgprOperands when instruction has no operand. * testsuite/gas/i386/x86-64-pseudos-bad.l: Add rex2 illegal test cases. * testsuite/gas/i386/x86-64-pseudos-bad.s: Ditto. * testsuite/gas/i386/x86-64-pseudos.d: Delete illegal test case. * testsuite/gas/i386/x86-64-pseudos.s: Ditto. opcodes/ChangeLog: * i386-opc.tbl: Add No_egpr to rex2 illegal instructions. * i386-tbl.h: Regenerated. --- gas/config/tc-i386.c | 2 +- gas/testsuite/gas/i386/x86-64-pseudos-bad.l | 36 +++++++++++ gas/testsuite/gas/i386/x86-64-pseudos-bad.s | 42 +++++++++++++ gas/testsuite/gas/i386/x86-64-pseudos.d | 1 - gas/testsuite/gas/i386/x86-64-pseudos.s | 1 - opcodes/i386-opc.tbl | 70 ++++++++++----------- 6 files changed, 114 insertions(+), 38 deletions(-) diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 8bdd386ed47..ad427ff54c3 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -7316,7 +7316,7 @@ match_template (char mnem_suffix) /* Do not verify operands when there are none. */ if (!t->operands) { - if (VEX_check_encoding (t)) + if (VEX_check_encoding (t) || check_EgprOperands (t)) { specific_error = progress (i.error); continue; diff --git a/gas/testsuite/gas/i386/x86-64-pseudos-bad.l b/gas/testsuite/gas/i386/x86-64-pseudos-bad.l index 3f9f67fcf4b..7b45a326e65 100644 --- a/gas/testsuite/gas/i386/x86-64-pseudos-bad.l +++ b/gas/testsuite/gas/i386/x86-64-pseudos-bad.l @@ -4,3 +4,39 @@ .*:5: Error: .*`vmovaps'.* .*:6: Error: .*`vmovaps'.* .*:7: Error: .*`rorx'.* +.*:10: Error: .*`mov'.* +.*:11: Error: .*`movabs'.* +.*:12: Error: .*`cmps'.* +.*:13: Error: .*`lods'.* +.*:14: Error: .*`lods'.* +.*:15: Error: .*`lods'.* +.*:16: Error: .*`movsb'.* +.*:17: Error: .*`movsb'.* +.*:18: Error: .*`scas'.* +.*:19: Error: .*`scas'.* +.*:20: Error: .*`scas'.* +.*:21: Error: .*`stos'.* +.*:22: Error: .*`stos'.* +.*:23: Error: .*`stos'.* +.*:26: Error: .*`jo'.* +.*:27: Error: .*`jno'.* +.*:28: Error: .*`jb'.* +.*:29: Error: .*`jae'.* +.*:30: Error: .*`je'.* +.*:31: Error: .*`jne'.* +.*:32: Error: .*`jbe'.* +.*:33: Error: .*`ja'.* +.*:34: Error: .*`js'.* +.*:35: Error: .*`jns'.* +.*:36: Error: .*`jp'.* +.*:37: Error: .*`jnp'.* +.*:38: Error: .*`jl'.* +.*:39: Error: .*`jge'.* +.*:40: Error: .*`jle'.* +.*:41: Error: .*`jg'.* +.*:44: Error: .*`wrmsr'.* +.*:45: Error: .*`rdtsc'.* +.*:46: Error: .*`rdmsr'.* +.*:47: Error: .*`sysenter'.* +.*:48: Error: .*`sysexit'.* +.*:49: Error: .*`rdpmc'.* diff --git a/gas/testsuite/gas/i386/x86-64-pseudos-bad.s b/gas/testsuite/gas/i386/x86-64-pseudos-bad.s index 3b923593a6a..2f9ea8315e8 100644 --- a/gas/testsuite/gas/i386/x86-64-pseudos-bad.s +++ b/gas/testsuite/gas/i386/x86-64-pseudos-bad.s @@ -5,3 +5,45 @@ pseudos: {rex} vmovaps %xmm7,%xmm2 {rex} vmovaps %xmm17,%xmm2 {rex} rorx $7,%eax,%ebx + + #All opcodes in the row 0xa* prefixed REX2 are illegal. + {rex2} mov 0x90909090,%al + {rex2} movabs 0x1,%al + {rex2} cmpsb %es:(%edi),%ds:(%esi) + {rex2} lodsb + {rex2} lods %ds:(%esi),%al + {rex2} lodsb (%esi) + {rex2} movsb + {rex2} movsb (%esi), (%edi) + {rex2} scasl + {rex2} scas %es:(%edi),%eax + {rex2} scasb (%edi) + {rex2} stosb + {rex2} stosb (%edi) + {rex2} stos %eax,%es:(%edi) + + #All opcodes in the row 0x7* prefixed REX2 are illegal. + {rex2} jo .+2-0x70 + {rex2} jno .+2-0x70 + {rex2} jb .+2-0x70 + {rex2} jae .+2-0x70 + {rex2} je .+2-0x70 + {rex2} jne .+2-0x70 + {rex2} jbe .+2-0x70 + {rex2} ja .+2-0x70 + {rex2} js .+2-0x70 + {rex2} jns .+2-0x70 + {rex2} jp .+2-0x70 + {rex2} jnp .+2-0x70 + {rex2} jl .+2-0x70 + {rex2} jge .+2-0x70 + {rex2} jle .+2-0x70 + {rex2} jg .+2-0x70 + + #All opcodes in the row 0xf3* prefixed REX2 are illegal. + {rex2} wrmsr + {rex2} rdtsc + {rex2} rdmsr + {rex2} sysenter + {rex2} sysexitl + {rex2} rdpmc diff --git a/gas/testsuite/gas/i386/x86-64-pseudos.d b/gas/testsuite/gas/i386/x86-64-pseudos.d index f6257c01792..3764a71a43f 100644 --- a/gas/testsuite/gas/i386/x86-64-pseudos.d +++ b/gas/testsuite/gas/i386/x86-64-pseudos.d @@ -448,7 +448,6 @@ Disassembly of section .text: +[a-f0-9]+: 41 0f 38 01 00 phaddw \(%r8\),%mm0 +[a-f0-9]+: 88 c4 mov %al,%ah +[a-f0-9]+: d5 00 d3 e0 {rex2} shl %cl,%eax - +[a-f0-9]+: d5 00 a0 01 00 00 00 00 00 00 00 {rex2} movabs 0x1,%al +[a-f0-9]+: d5 00 38 ca {rex2} cmp %cl,%dl +[a-f0-9]+: d5 00 b3 01 {rex2} mov \$(0x)?1,%bl +[a-f0-9]+: d5 00 89 c3 {rex2} mov %eax,%ebx diff --git a/gas/testsuite/gas/i386/x86-64-pseudos.s b/gas/testsuite/gas/i386/x86-64-pseudos.s index 9f756e5ba04..e3b39834e05 100644 --- a/gas/testsuite/gas/i386/x86-64-pseudos.s +++ b/gas/testsuite/gas/i386/x86-64-pseudos.s @@ -405,7 +405,6 @@ _start: {rex} phaddw (%r8),%mm0 {rex2} mov %al,%ah {rex2} shl %cl, %eax - {rex2} movabs 1, %al {rex2} cmp %cl, %dl {rex2} mov $1, %bl {rex2} movl %eax,%ebx diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl index 4d1b6742060..b6452ef7f53 100644 --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -162,7 +162,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|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 } +movabs, 0xa0, x64, D|W|CheckOperandSize|No_sSuf|No_egpr, { 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 // 64bit value. @@ -339,7 +339,7 @@ cmp, 0x3c, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword } cmp, 0x80/7, 0, W|Modrm|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } test, 0x84, 0, D|W|C|CheckOperandSize|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex } -test, 0xa8, 0, W|No_sSuf|Optimize, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword } +test, 0xa8, 0, W|No_sSuf|Optimize|No_egpr, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword } test, 0xf6/0, 0, W|Modrm|No_sSuf|Optimize, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } and, 0x20, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } @@ -646,7 +646,7 @@ leave, 0xc9, x64, DefaultSize|No_bSuf|No_lSuf|No_sSuf|NoRex64, {} s:8, ns:9, p:a, pe:a, np:b, po:b, l:c, nge:c, nl:d, ge:d, le:e, ng:e, nle:f, g:f> // Conditional jumps. -j, 0x7, 0, Jump|NoSuf|BNDPrefixOk, { Disp8|Disp16|Disp32 } +j, 0x7, 0, Jump|NoSuf|BNDPrefixOk|No_egpr, { Disp8|Disp16|Disp32 } // jcxz vs. jecxz is chosen on the basis of the address size prefix. jcxz, 0xe3, No64, JumpByte|Size16|NoSuf, { Disp8 } @@ -672,36 +672,36 @@ loopne, 0xe0, x64, JumpByte|No_bSuf|No_wSuf|No_sSuf|NoRex64, { Disp8 } set, 0xf9/0, i386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf, { Reg8|Byte|Unspecified|BaseIndex } // String manipulation. -cmps, 0xa6, 0, W|No_sSuf|RepPrefixOk, {} -cmps, 0xa6, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex } -scmp, 0xa6, 0, W|No_sSuf|RepPrefixOk, {} -scmp, 0xa6, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex } +cmps, 0xa6, 0, W|No_sSuf|RepPrefixOk|No_egpr, {} +cmps, 0xa6, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex } +scmp, 0xa6, 0, W|No_sSuf|RepPrefixOk|No_egpr, {} +scmp, 0xa6, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex } ins, 0x6c, i186, W|No_sSuf|No_qSuf|RepPrefixOk, {} ins, 0x6c, i186, W|No_sSuf|No_qSuf|IsStringEsOp1|RepPrefixOk, { InOutPortReg, Byte|Word|Dword|Unspecified|BaseIndex } outs, 0x6e, i186, W|No_sSuf|No_qSuf|RepPrefixOk, {} outs, 0x6e, i186, W|No_sSuf|No_qSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Unspecified|BaseIndex, InOutPortReg } -lods, 0xac, 0, W|No_sSuf|RepPrefixOk, {} -lods, 0xac, 0, W|No_sSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex } -lods, 0xac, 0, W|No_sSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword } -slod, 0xac, 0, W|No_sSuf|RepPrefixOk, {} -slod, 0xac, 0, W|No_sSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex } -slod, 0xac, 0, W|No_sSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword } -movs, 0xa4, 0, W|No_sSuf|RepPrefixOk, {} -movs, 0xa4, 0, W|No_sSuf|IsStringEsOp1|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex } -smov, 0xa4, 0, W|No_sSuf|RepPrefixOk, {} -smov, 0xa4, 0, W|No_sSuf|IsStringEsOp1|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex } -scas, 0xae, 0, W|No_sSuf|RepPrefixOk, {} -scas, 0xae, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex } -scas, 0xae, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword } -ssca, 0xae, 0, W|No_sSuf|RepPrefixOk, {} -ssca, 0xae, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex } -ssca, 0xae, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword } -stos, 0xaa, 0, W|No_sSuf|RepPrefixOk, {} -stos, 0xaa, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex } -stos, 0xaa, 0, W|No_sSuf|IsStringEsOp1|RepPrefixOk, { Acc|Byte|Word|Dword|Qword, Byte|Word|Dword|Qword|Unspecified|BaseIndex } -ssto, 0xaa, 0, W|No_sSuf|RepPrefixOk, {} -ssto, 0xaa, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex } -ssto, 0xaa, 0, W|No_sSuf|IsStringEsOp1|RepPrefixOk, { Acc|Byte|Word|Dword|Qword, Byte|Word|Dword|Qword|Unspecified|BaseIndex } +lods, 0xac, 0, W|No_sSuf|RepPrefixOk|No_egpr, {} +lods, 0xac, 0, W|No_sSuf|IsString|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex } +lods, 0xac, 0, W|No_sSuf|IsString|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword } +slod, 0xac, 0, W|No_sSuf|RepPrefixOk|No_egpr, {} +slod, 0xac, 0, W|No_sSuf|IsString|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex } +slod, 0xac, 0, W|No_sSuf|IsString|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword } +movs, 0xa4, 0, W|No_sSuf|RepPrefixOk|No_egpr, {} +movs, 0xa4, 0, W|No_sSuf|IsStringEsOp1|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex } +smov, 0xa4, 0, W|No_sSuf|RepPrefixOk|No_egpr, {} +smov, 0xa4, 0, W|No_sSuf|IsStringEsOp1|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex } +scas, 0xae, 0, W|No_sSuf|RepPrefixOk|No_egpr, {} +scas, 0xae, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex } +scas, 0xae, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword } +ssca, 0xae, 0, W|No_sSuf|RepPrefixOk|No_egpr, {} +ssca, 0xae, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex } +ssca, 0xae, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword } +stos, 0xaa, 0, W|No_sSuf|RepPrefixOk|No_egpr, {} +stos, 0xaa, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex } +stos, 0xaa, 0, W|No_sSuf|IsStringEsOp1|RepPrefixOk|No_egpr, { Acc|Byte|Word|Dword|Qword, Byte|Word|Dword|Qword|Unspecified|BaseIndex } +ssto, 0xaa, 0, W|No_sSuf|RepPrefixOk|No_egpr, {} +ssto, 0xaa, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex } +ssto, 0xaa, 0, W|No_sSuf|IsStringEsOp1|RepPrefixOk|No_egpr, { Acc|Byte|Word|Dword|Qword, Byte|Word|Dword|Qword|Unspecified|BaseIndex } xlat, 0xd7, 0, No_wSuf|No_lSuf|No_sSuf|No_qSuf, {} xlat, 0xd7, 0, No_wSuf|No_lSuf|No_sSuf|No_qSuf|IsString, { Byte|Unspecified|BaseIndex } @@ -1075,21 +1075,21 @@ invlpg, 0xf01/7, i486, Modrm|Anysize|IgnoreSize|NoSuf, { BaseIndex } cpuid, 0xfa2, i486, NoSuf, {} // Pentium extensions. -wrmsr, 0xf30, i586, NoSuf, {} -rdtsc, 0xf31, i586, NoSuf, {} -rdmsr, 0xf32, i586, NoSuf, {} +wrmsr, 0xf30, i586, NoSuf|No_egpr, {} +rdtsc, 0xf31, i586, NoSuf|No_egpr, {} +rdmsr, 0xf32, i586, NoSuf|No_egpr, {} cmpxchg8b, 0xfc7/1, i586, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|NoRex64|HLEPrefixLock, { Qword|Unspecified|BaseIndex } // Pentium II/Pentium Pro extensions. -sysenter, 0xf34, x64, Intel64Only|NoSuf, {} +sysenter, 0xf34, x64, Intel64Only|NoSuf|No_egpr, {} sysenter, 0xf34, i686|No64, NoSuf, {} -sysexit, 0xf35, x64, Intel64Only|No_bSuf|No_wSuf|No_sSuf, {} +sysexit, 0xf35, x64, Intel64Only|No_bSuf|No_wSuf|No_sSuf|No_egpr, {} sysexit, 0xf35, i686|No64, NoSuf, {} fxsave, 0xfae/0, FXSR, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Unspecified|BaseIndex } fxsave64, 0xfae/0, FXSR|x64, Modrm|NoSuf|Size64, { Unspecified|BaseIndex } fxrstor, 0xfae/1, FXSR, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Unspecified|BaseIndex } fxrstor64, 0xfae/1, FXSR|x64, Modrm|NoSuf|Size64, { Unspecified|BaseIndex } -rdpmc, 0xf33, i686, NoSuf, {} +rdpmc, 0xf33, i686, NoSuf|No_egpr, {} // official undefined instr. ud2, 0xf0b, i186, NoSuf, {} // alias for ud2 From patchwork Thu Sep 21 10:11:38 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: 76516 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 8A2E8385CC95 for ; Thu, 21 Sep 2023 10:13:47 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8A2E8385CC95 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1695291227; bh=Ss0KQNxJO8GjT9Wo9QbtLz2pZT8CyOX/XzHwxmQDq5Y=; 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=hHkw3Aht7c9ni8Rz+6vUk1L5IWvvheX0LzLLJYNw/dgFqBiQ8PFCybC0Sdl7I3qbQ CKQ2URiqt78rDpgkXCpqvh6G6q4JHfzWGdKuqcD/FSYQNqZgFXjhl9L7/Qzve+CzTd m+HjrEC5VRudNTGFM+XzZiu5//Pk8UIfiFlXptPA= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.126]) by sourceware.org (Postfix) with ESMTPS id C080F3856972 for ; Thu, 21 Sep 2023 10:12:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C080F3856972 X-IronPort-AV: E=McAfee;i="6600,9927,10839"; a="365533233" X-IronPort-AV: E=Sophos;i="6.03,165,1694761200"; d="scan'208";a="365533233" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Sep 2023 03:12:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10839"; a="812585777" X-IronPort-AV: E=Sophos;i="6.03,165,1694761200"; d="scan'208";a="812585777" Received: from scymds04.sc.intel.com ([10.82.73.238]) by fmsmga008.fm.intel.com with ESMTP; 21 Sep 2023 03:11:51 -0700 Received: from shgcc101.sh.intel.com (shgcc101.sh.intel.com [10.239.85.97]) by scymds04.sc.intel.com (Postfix) with ESMTP id 1340D181F52C; Thu, 21 Sep 2023 03:11:49 -0700 (PDT) To: binutils@sourceware.org Cc: jbeulich@suse.com, hongjiu.lu@intel.com, ccoutant@gmail.com, "H.J. Lu" Subject: [PATCH 3/6] x86-64: Add R_X86_64_CODE_4_GOTPCRELX Date: Thu, 21 Sep 2023 10:11:38 +0000 Message-Id: <20230921101141.2518818-4-lili.cui@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230921101141.2518818-1-lili.cui@intel.com> References: <20230921101141.2518818-1-lili.cui@intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 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: "H.J. Lu" For mov name@GOTPCREL(%rip), %reg test %reg, name@GOTPCREL(%rip) binop name@GOTPCREL(%rip), %reg where binop is one of adc, add, add, cmp, or, sbb, sub, xor instructions, add # define R_X86_64_CODE_4_GOTPCRELX 43 if the instruction starts at 4 bytes before the relocation offset. It similar to R_X86_64_GOTPCRELX. Linker can treat R_X86_64_CODE_4_GOTPCRELX as R_X86_64_GOTPCREL or convert the above instructions to lea name(%rip), %reg mov $name, %reg test $name, %reg binop $name, %reg if the instruction is encoded with the REX2 prefix when possible. bfd/ * elf64-x86-64.c (x86_64_elf_howto_table): Add R_X86_64_CODE_4_GOTPCRELX. (R_X86_64_standard): Updated. (x86_64_reloc_map): Add BFD_RELOC_X86_64_CODE_4_GOTPCRELX. (elf_x86_64_convert_load_reloc): Handle R_X86_64_CODE_4_GOTPCRELX. (elf_x86_64_scan_relocs): Likewise. (elf_x86_64_relocate_section): Likewise. * reloc.c (bfd_reloc_code_real): Add BFD_RELOC_X86_64_CODE_4_GOTPCRELX. * bfd-in2.h: Regenerated. * libbfd.h: Likewise. gas/ * write.h (fix): Add fx_tcbit3. Change fx_unused to 1 bit. * config/tc-i386.c (tc_i386_fix_adjustable): Handle BFD_RELOC_X86_64_CODE_4_GOTPCRELX. (tc_gen_reloc): Likewise. (output_disp): Set fixP->fx_tcbit3 for REX2 prefix. (i386_validate_fix): Generate BFD_RELOC_X86_64_CODE_4_GOTPCRELX if fixp->fx_tcbit3 is set. * config/tc-i386.h (TC_FORCE_RELOCATION_LOCAL): Add BFD_RELOC_X86_64_CODE_4_GOTPCRELX. (TC_FORCE_RELOCATION_ABS): Likewise. * testsuite/gas/i386/x86-64-gotpcrel.s: Add tests for R_X86_64_CODE_4_GOTPCRELX. * testsuite/gas/i386/x86-64-localpic.s: Likewise. * testsuite/gas/i386/x86-64-gotpcrel.d: Updated. * testsuite/gas/i386/x86-64-localpic.d: Likewise. * testsuite/gas/i386/ilp32/x86-64-localpic.d: Likewise. include/ * elf/x86-64.h (elf_x86_64_reloc_type): Add R_X86_64_CODE_4_GOTPCRELX. ld/ * testsuite/ld-x86-64/apx-load1.s: New file. * testsuite/ld-x86-64/apx-load1a.d: Likewise. * testsuite/ld-x86-64/apx-load1b.d: Likewise. * testsuite/ld-x86-64/apx-load1c.d: Likewise. * testsuite/ld-x86-64/apx-load1d.d: Likewise. * testsuite/ld-x86-64/x86-64.exp: Run apx-load1a, apx-load1b, apx-load1c and apx-load1d. --- bfd/bfd-in2.h | 1 + bfd/elf64-x86-64.c | 73 ++++++++++++++----- bfd/libbfd.h | 1 + bfd/reloc.c | 2 + gas/config/tc-i386.c | 18 ++++- gas/config/tc-i386.h | 6 +- .../gas/i386/ilp32/x86-64-localpic.d | 4 +- gas/testsuite/gas/i386/x86-64-gotpcrel.d | 12 +++ gas/testsuite/gas/i386/x86-64-gotpcrel.s | 19 +++++ gas/testsuite/gas/i386/x86-64-localpic.d | 4 +- gas/testsuite/gas/i386/x86-64-localpic.s | 2 + gas/write.h | 3 +- include/elf/x86-64.h | 6 +- ld/testsuite/ld-x86-64/apx-load1.s | 51 +++++++++++++ ld/testsuite/ld-x86-64/apx-load1a.d | 54 ++++++++++++++ ld/testsuite/ld-x86-64/apx-load1b.d | 55 ++++++++++++++ ld/testsuite/ld-x86-64/apx-load1c.d | 47 ++++++++++++ ld/testsuite/ld-x86-64/apx-load1d.d | 47 ++++++++++++ ld/testsuite/ld-x86-64/x86-64.exp | 4 + 19 files changed, 382 insertions(+), 27 deletions(-) create mode 100644 ld/testsuite/ld-x86-64/apx-load1.s create mode 100644 ld/testsuite/ld-x86-64/apx-load1a.d create mode 100644 ld/testsuite/ld-x86-64/apx-load1b.d create mode 100644 ld/testsuite/ld-x86-64/apx-load1c.d create mode 100644 ld/testsuite/ld-x86-64/apx-load1d.d diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 1c4f75ae244..39fc92888d6 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -3881,6 +3881,7 @@ instruction. */ BFD_RELOC_X86_64_PLT32_BND, BFD_RELOC_X86_64_GOTPCRELX, BFD_RELOC_X86_64_REX_GOTPCRELX, + BFD_RELOC_X86_64_CODE_4_GOTPCRELX, /* ns32k relocations */ BFD_RELOC_NS32K_IMM_8, diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index e7a0a9166f5..02d3cda79fd 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -170,12 +170,15 @@ static reloc_howto_type x86_64_elf_howto_table[] = HOWTO(R_X86_64_REX_GOTPCRELX, 0, 4, 32, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_X86_64_REX_GOTPCRELX", false, 0, 0xffffffff, true), + HOWTO(R_X86_64_CODE_4_GOTPCRELX, 0, 4, 32, true, 0, complain_overflow_signed, + bfd_elf_generic_reloc, "R_X86_64_CODE_4_GOTPCRELX", false, 0, 0xffffffff, + true), /* We have a gap in the reloc numbers here. R_X86_64_standard counts the number up to this point, and R_X86_64_vt_offset is the value to subtract from a reloc type of R_X86_64_GNU_VT* to form an index into this table. */ -#define R_X86_64_standard (R_X86_64_REX_GOTPCRELX + 1) +#define R_X86_64_standard (R_X86_64_CODE_4_GOTPCRELX + 1) #define R_X86_64_vt_offset (R_X86_64_GNU_VTINHERIT - R_X86_64_standard) /* GNU extension to record C++ vtable hierarchy. */ @@ -244,6 +247,7 @@ static const struct elf_reloc_map x86_64_reloc_map[] = { BFD_RELOC_X86_64_PLT32_BND, R_X86_64_PLT32_BND, }, { BFD_RELOC_X86_64_GOTPCRELX, R_X86_64_GOTPCRELX, }, { BFD_RELOC_X86_64_REX_GOTPCRELX, R_X86_64_REX_GOTPCRELX, }, + { BFD_RELOC_X86_64_CODE_4_GOTPCRELX, R_X86_64_CODE_4_GOTPCRELX, }, { BFD_RELOC_VTABLE_INHERIT, R_X86_64_GNU_VTINHERIT, }, { BFD_RELOC_VTABLE_ENTRY, R_X86_64_GNU_VTENTRY, }, }; @@ -1586,7 +1590,8 @@ elf_x86_64_convert_load_reloc (bfd *abfd, bfd_vma roff = irel->r_offset; bfd_vma abs_relocation; - if (roff < (r_type == R_X86_64_REX_GOTPCRELX ? 3 : 2)) + if (roff < (r_type == R_X86_64_CODE_4_GOTPCRELX + ? 4 : (r_type == R_X86_64_REX_GOTPCRELX ? 3 : 2))) return true; raddend = irel->r_addend; @@ -1597,8 +1602,18 @@ elf_x86_64_convert_load_reloc (bfd *abfd, htab = elf_x86_hash_table (link_info, X86_64_ELF_DATA); is_pic = bfd_link_pic (link_info); - relocx = (r_type == R_X86_64_GOTPCRELX - || r_type == R_X86_64_REX_GOTPCRELX); + if (r_type == R_X86_64_CODE_4_GOTPCRELX) + { + /* Skip if this isn't a REX2 instruction. */ + opcode = bfd_get_8 (abfd, contents + roff - 4); + if (opcode != 0xd5) + return true; + + relocx = true; + } + else + relocx = (r_type == R_X86_64_GOTPCRELX + || r_type == R_X86_64_REX_GOTPCRELX); /* TRUE if --no-relax is used. */ no_overflow = link_info->disable_target_specific_optimizations > 1; @@ -1610,9 +1625,9 @@ elf_x86_64_convert_load_reloc (bfd *abfd, /* Convert mov to lea since it has been done for a while. */ if (opcode != 0x8b) { - /* Only convert R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX - for call, jmp or one of adc, add, and, cmp, or, sbb, sub, - test, xor instructions. */ + /* Only convert R_X86_64_GOTPCRELX, R_X86_64_REX_GOTPCRELX + and R_X86_64_CODE_4_GOTPCRELX for call, jmp or one of adc, + add, and, cmp, or, sbb, sub, test, xor instructions. */ if (!relocx) return true; } @@ -1797,13 +1812,22 @@ elf_x86_64_convert_load_reloc (bfd *abfd, } else { - unsigned int rex; + unsigned int rex = 0; unsigned int rex_mask = REX_R; + unsigned int rex2 = 0; + unsigned int rex2_mask = REX_R | REX_R << 4; + bool rex_w = false; - if (r_type == R_X86_64_REX_GOTPCRELX) - rex = bfd_get_8 (abfd, contents + roff - 3); - else - rex = 0; + if (r_type == R_X86_64_CODE_4_GOTPCRELX) + { + rex2 = bfd_get_8 (abfd, contents + roff - 3); + rex_w = (rex2 & REX_W) != 0; + } + else if (r_type == R_X86_64_REX_GOTPCRELX) + { + rex = bfd_get_8 (abfd, contents + roff - 3); + rex_w = (rex & REX_W) != 0; + } if (opcode == 0x8b) { @@ -1824,8 +1848,7 @@ elf_x86_64_convert_load_reloc (bfd *abfd, opcode = 0xc7; modrm = bfd_get_8 (abfd, contents + roff - 1); modrm = 0xc0 | (modrm & 0x38) >> 3; - if ((rex & REX_W) != 0 - && ABI_64_P (link_info->output_bfd)) + if (rex_w && ABI_64_P (link_info->output_bfd)) { /* Keep the REX_W bit in REX byte for LP64. */ r_type = R_X86_64_32S; @@ -1837,8 +1860,9 @@ elf_x86_64_convert_load_reloc (bfd *abfd, use R_X86_64_32 and clear the W bit to avoid sign-extend imm32 to imm64. */ r_type = R_X86_64_32; - /* Clear the W bit in REX byte. */ + /* Clear the W bit in REX byte and REX2 payload. */ rex_mask |= REX_W; + rex2_mask |= REX_W; goto rewrite_modrm_rex; } } @@ -1867,7 +1891,7 @@ elf_x86_64_convert_load_reloc (bfd *abfd, /* Use R_X86_64_32 with 32-bit operand to avoid relocation overflow when sign-extending imm32 to imm64. */ - r_type = (rex & REX_W) != 0 ? R_X86_64_32S : R_X86_64_32; + r_type = rex_w ? R_X86_64_32S : R_X86_64_32; rewrite_modrm_rex: if (abs_relocation) @@ -1893,6 +1917,13 @@ elf_x86_64_convert_load_reloc (bfd *abfd, rex = (rex & ~rex_mask) | (rex & REX_R) >> 2; bfd_put_8 (abfd, rex, contents + roff - 3); } + else if (rex2) + { + /* Move the R bits to the B bits in REX2 payload byte. */ + rex2 = ((rex2 & ~rex2_mask) + | (rex2 & (REX_R | REX_R << 4)) >> 2); + bfd_put_8 (abfd, rex2, contents + roff - 3); + } /* No addend for R_X86_64_32/R_X86_64_32S relocations. */ irel->r_addend = 0; @@ -2058,7 +2089,8 @@ elf_x86_64_scan_relocs (bfd *abfd, struct bfd_link_info *info, converted_reloc = false; if ((r_type == R_X86_64_GOTPCREL || r_type == R_X86_64_GOTPCRELX - || r_type == R_X86_64_REX_GOTPCRELX) + || r_type == R_X86_64_REX_GOTPCRELX + || r_type == R_X86_64_CODE_4_GOTPCRELX) && (h == NULL || h->type != STT_GNU_IFUNC)) { Elf_Internal_Rela *irel = (Elf_Internal_Rela *) rel; @@ -2108,6 +2140,7 @@ elf_x86_64_scan_relocs (bfd *abfd, struct bfd_link_info *info, case R_X86_64_GOTPCREL: case R_X86_64_GOTPCRELX: case R_X86_64_REX_GOTPCRELX: + case R_X86_64_CODE_4_GOTPCRELX: case R_X86_64_TLSGD: case R_X86_64_GOT64: case R_X86_64_GOTPCREL64: @@ -2710,6 +2743,7 @@ elf_x86_64_relocate_section (bfd *output_bfd, case R_X86_64_GOTPCREL: case R_X86_64_GOTPCRELX: case R_X86_64_REX_GOTPCRELX: + case R_X86_64_CODE_4_GOTPCRELX: case R_X86_64_GOTPCREL64: base_got = htab->elf.sgot; off = h->got.offset; @@ -2935,6 +2969,7 @@ elf_x86_64_relocate_section (bfd *output_bfd, case R_X86_64_GOTPCREL: case R_X86_64_GOTPCRELX: case R_X86_64_REX_GOTPCRELX: + case R_X86_64_CODE_4_GOTPCRELX: case R_X86_64_GOTPCREL64: /* Use global offset table entry as symbol value. */ case R_X86_64_GOTPLT64: @@ -3025,7 +3060,8 @@ elf_x86_64_relocate_section (bfd *output_bfd, && !(sym->st_shndx == SHN_ABS && (r_type == R_X86_64_GOTPCREL || r_type == R_X86_64_GOTPCRELX - || r_type == R_X86_64_REX_GOTPCRELX))) + || r_type == R_X86_64_REX_GOTPCRELX + || r_type == R_X86_64_CODE_4_GOTPCRELX))) relative_reloc = true; } } @@ -3063,6 +3099,7 @@ elf_x86_64_relocate_section (bfd *output_bfd, if (r_type != R_X86_64_GOTPCREL && r_type != R_X86_64_GOTPCRELX && r_type != R_X86_64_REX_GOTPCRELX + && r_type != R_X86_64_CODE_4_GOTPCRELX && r_type != R_X86_64_GOTPCREL64) relocation -= htab->elf.sgotplt->output_section->vma - htab->elf.sgotplt->output_offset; diff --git a/bfd/libbfd.h b/bfd/libbfd.h index d5f42f22c08..9a1ce1a4d65 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -1463,6 +1463,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_X86_64_PLT32_BND", "BFD_RELOC_X86_64_GOTPCRELX", "BFD_RELOC_X86_64_REX_GOTPCRELX", + "BFD_RELOC_X86_64_CODE_4_GOTPCRELX", "BFD_RELOC_NS32K_IMM_8", "BFD_RELOC_NS32K_IMM_16", "BFD_RELOC_NS32K_IMM_32", diff --git a/bfd/reloc.c b/bfd/reloc.c index 2ac883d0eac..bf291fa52e9 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -2481,6 +2481,8 @@ ENUMX BFD_RELOC_X86_64_GOTPCRELX ENUMX BFD_RELOC_X86_64_REX_GOTPCRELX +ENUMX + BFD_RELOC_X86_64_CODE_4_GOTPCRELX ENUMDOC x86-64/elf relocations diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index ad427ff54c3..2f78e9a5a38 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -3599,6 +3599,7 @@ tc_i386_fix_adjustable (fixS *fixP ATTRIBUTE_UNUSED) || fixP->fx_r_type == BFD_RELOC_X86_64_GOTPCREL || fixP->fx_r_type == BFD_RELOC_X86_64_GOTPCRELX || fixP->fx_r_type == BFD_RELOC_X86_64_REX_GOTPCRELX + || fixP->fx_r_type == BFD_RELOC_X86_64_CODE_4_GOTPCRELX || fixP->fx_r_type == BFD_RELOC_X86_64_TLSGD || fixP->fx_r_type == BFD_RELOC_X86_64_TLSLD || fixP->fx_r_type == BFD_RELOC_X86_64_DTPOFF32 @@ -10707,6 +10708,10 @@ output_disp (fragS *insn_start_frag, offsetT insn_start_off) && !i.prefix[ADDR_PREFIX]) fixP->fx_signed = 1; + /* Set fx_tcbit3 for REX2 prefix. */ + if (is_any_apx_rex2_encoding ()) + fixP->fx_tcbit3 = 1; + /* Check for "call/jmp *mem", "mov mem, %reg", "test %reg, mem" and "binop mem, %reg" where binop is one of adc, add, and, cmp, or, sbb, sub, xor @@ -15789,9 +15794,14 @@ i386_validate_fix (fixS *fixp) abort (); #if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF) if (fixp->fx_tcbit2) - fixp->fx_r_type = (fixp->fx_tcbit - ? BFD_RELOC_X86_64_REX_GOTPCRELX - : BFD_RELOC_X86_64_GOTPCRELX); + { + if (fixp->fx_tcbit3) + fixp->fx_r_type = BFD_RELOC_X86_64_CODE_4_GOTPCRELX; + else + fixp->fx_r_type = (fixp->fx_tcbit + ? BFD_RELOC_X86_64_REX_GOTPCRELX + : BFD_RELOC_X86_64_GOTPCRELX); + } else #endif fixp->fx_r_type = BFD_RELOC_X86_64_GOTPCREL; @@ -15895,6 +15905,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) case BFD_RELOC_X86_64_GOTPCREL: case BFD_RELOC_X86_64_GOTPCRELX: case BFD_RELOC_X86_64_REX_GOTPCRELX: + case BFD_RELOC_X86_64_CODE_4_GOTPCRELX: case BFD_RELOC_386_PLT32: case BFD_RELOC_386_GOT32: case BFD_RELOC_386_GOT32X: @@ -16053,6 +16064,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) case BFD_RELOC_X86_64_GOTPCREL: case BFD_RELOC_X86_64_GOTPCRELX: case BFD_RELOC_X86_64_REX_GOTPCRELX: + case BFD_RELOC_X86_64_CODE_4_GOTPCRELX: case BFD_RELOC_X86_64_TLSGD: case BFD_RELOC_X86_64_TLSLD: case BFD_RELOC_X86_64_GOTTPOFF: diff --git a/gas/config/tc-i386.h b/gas/config/tc-i386.h index 80d66c1ce15..f49a1a77598 100644 --- a/gas/config/tc-i386.h +++ b/gas/config/tc-i386.h @@ -169,7 +169,8 @@ extern int tc_i386_fix_adjustable (struct fix *); || (FIX)->fx_r_type == BFD_RELOC_386_GOTPC \ || (FIX)->fx_r_type == BFD_RELOC_X86_64_GOTPCREL \ || (FIX)->fx_r_type == BFD_RELOC_X86_64_GOTPCRELX \ - || (FIX)->fx_r_type == BFD_RELOC_X86_64_REX_GOTPCRELX) + || (FIX)->fx_r_type == BFD_RELOC_X86_64_REX_GOTPCRELX \ + || (FIX)->fx_r_type == BFD_RELOC_X86_64_CODE_4_GOTPCRELX) #define TC_FORCE_RELOCATION_ABS(FIX) \ (TC_FORCE_RELOCATION (FIX) \ @@ -177,7 +178,8 @@ extern int tc_i386_fix_adjustable (struct fix *); || (FIX)->fx_r_type == BFD_RELOC_386_GOT32X \ || (FIX)->fx_r_type == BFD_RELOC_X86_64_GOTPCREL \ || (FIX)->fx_r_type == BFD_RELOC_X86_64_GOTPCRELX \ - || (FIX)->fx_r_type == BFD_RELOC_X86_64_REX_GOTPCRELX) + || (FIX)->fx_r_type == BFD_RELOC_X86_64_REX_GOTPCRELX \ + || (FIX)->fx_r_type == BFD_RELOC_X86_64_CODE_4_GOTPCRELX) extern int i386_parse_name (char *, expressionS *, char *); #define md_parse_name(s, e, m, c) i386_parse_name (s, e, c) diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-localpic.d b/gas/testsuite/gas/i386/ilp32/x86-64-localpic.d index d0cc4e8efc9..57d4843a5b5 100644 --- a/gas/testsuite/gas/i386/ilp32/x86-64-localpic.d +++ b/gas/testsuite/gas/i386/ilp32/x86-64-localpic.d @@ -3,10 +3,12 @@ #readelf: -rsW #name: x86-64 (ILP32) local PIC -Relocation section '.rela.text' at offset 0x[0-9a-f]+ contains 2 entries: +Relocation section '.rela.text' at offset 0x[0-9a-f]+ contains 4 entries: +Offset +Info +Type +Sym. Value +Symbol's Name \+ Addend [0-9a-f]+ +[0-9a-f]+ R_X86_64_REX_GOTPCRELX +[0-9a-f]+ +foo - 4 [0-9a-f]+ +[0-9a-f]+ R_X86_64_REX_GOTPCRELX +[0-9a-f]+ +bar - 4 +[0-9a-f]+ +[0-9a-f]+ R_X86_64_CODE_4_GOTPCRELX +[0-9a-f]+ +foo - 4 +[0-9a-f]+ +[0-9a-f]+ R_X86_64_CODE_4_GOTPCRELX +[0-9a-f]+ +bar - 4 #... +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +foo +[0-9]+: +fffffff0 +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +ABS +bar diff --git a/gas/testsuite/gas/i386/x86-64-gotpcrel.d b/gas/testsuite/gas/i386/x86-64-gotpcrel.d index 57792216e9a..12fadfbca4e 100644 --- a/gas/testsuite/gas/i386/x86-64-gotpcrel.d +++ b/gas/testsuite/gas/i386/x86-64-gotpcrel.d @@ -24,4 +24,16 @@ Disassembly of section .text: [ ]*[a-f0-9]+: ff 90 00 00 00 00 call \*0x0\(%rax\) 5a: R_X86_64_GOTPCREL foo [ ]*[a-f0-9]+: ff 25 00 00 00 00 jmp \*0x0\(%rip\) # 64 <_start\+0x64> 60: R_X86_64_GOTPCRELX foo-0x4 [ ]*[a-f0-9]+: ff a1 00 00 00 00 jmp \*0x0\(%rcx\) 66: R_X86_64_GOTPCREL foo +[ ]*[a-f0-9]+: d5 18 c7 c0 00 00 00 00 mov \$0x0,%r16 6e: R_X86_64_GOTPCREL foo +[ ]*[a-f0-9]+: d5 48 8b 24 25 00 00 00 00 mov 0x0,%r20 77: R_X86_64_GOTPCREL foo +[ ]*[a-f0-9]+: d5 48 8b 35 00 00 00 00 mov 0x0\(%rip\),%r22 # 83 <_start\+0x83> 7f: R_X86_64_CODE_4_GOTPCRELX foo-0x4 +[ ]*[a-f0-9]+: d5 59 8b b4 24 00 00 00 00 mov 0x0\(%r28\),%r22 88: R_X86_64_GOTPCREL foo +[ ]*[a-f0-9]+: d5 10 ff 90 00 00 00 00 call \*0x0\(%r16\) 90: R_X86_64_GOTPCREL foo +[ ]*[a-f0-9]+: d5 11 ff a4 24 00 00 00 00 jmp \*0x0\(%r28\) 99: R_X86_64_GOTPCREL foo +[ ]*[a-f0-9]+: d5 18 c7 c0 00 00 00 00 mov \$0x0,%r16 a1: R_X86_64_GOTPCREL foo +[ ]*[a-f0-9]+: d5 48 8b 24 25 00 00 00 00 mov 0x0,%r20 aa: R_X86_64_GOTPCREL foo +[ ]*[a-f0-9]+: d5 48 8b 35 00 00 00 00 mov 0x0\(%rip\),%r22 # b6 <_start\+0xb6> b2: R_X86_64_CODE_4_GOTPCRELX foo-0x4 +[ ]*[a-f0-9]+: d5 59 8b b4 24 00 00 00 00 mov 0x0\(%r28\),%r22 bb: R_X86_64_GOTPCREL foo +[ ]*[a-f0-9]+: d5 10 ff 90 00 00 00 00 call \*0x0\(%r16\) c3: R_X86_64_GOTPCREL foo +[ ]*[a-f0-9]+: d5 11 ff a4 24 00 00 00 00 jmp \*0x0\(%r28\) cc: R_X86_64_GOTPCREL foo #pass diff --git a/gas/testsuite/gas/i386/x86-64-gotpcrel.s b/gas/testsuite/gas/i386/x86-64-gotpcrel.s index 981b14ff4df..91b1ca204c8 100644 --- a/gas/testsuite/gas/i386/x86-64-gotpcrel.s +++ b/gas/testsuite/gas/i386/x86-64-gotpcrel.s @@ -21,3 +21,22 @@ _start: call QWORD PTR [rax + foo@GOTPCREL] jmp QWORD PTR [rip + foo@GOTPCREL] jmp QWORD PTR [rcx + foo@GOTPCREL] + + .att_syntax prefix + movq $foo@GOTPCREL, %r16 + movq foo@GOTPCREL, %r20 + movq foo@GOTPCREL(%rip), %r22 + movq foo@GOTPCREL(%r28), %r22 + + call *foo@GOTPCREL(%r16) + jmp *foo@GOTPCREL(%r28) + + .intel_syntax noprefix + + mov r16, offset foo@gotpcrel + mov r20, QWORD PTR [foo@GOTPCREL] + mov r22, QWORD PTR [rip + foo@GOTPCREL] + mov r22, QWORD PTR [r28 + foo@GOTPCREL] + + call QWORD PTR [r16 + foo@GOTPCREL] + jmp QWORD PTR [r28 + foo@GOTPCREL] diff --git a/gas/testsuite/gas/i386/x86-64-localpic.d b/gas/testsuite/gas/i386/x86-64-localpic.d index 62030d410ad..11eb57b30b7 100644 --- a/gas/testsuite/gas/i386/x86-64-localpic.d +++ b/gas/testsuite/gas/i386/x86-64-localpic.d @@ -2,10 +2,12 @@ #readelf: -rsW #name: x86-64 local PIC -Relocation section '.rela.text' at offset 0x[0-9a-f]+ contains 2 entries: +Relocation section '.rela.text' at offset 0x[0-9a-f]+ contains 4 entries: +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend [0-9a-f]+ +[0-9a-f]+ R_X86_64_REX_GOTPCRELX +[0-9a-f]+ +foo - 4 [0-9a-f]+ +[0-9a-f]+ R_X86_64_REX_GOTPCRELX +[0-9a-f]+ +bar - 4 +[0-9a-f]+ +[0-9a-f]+ R_X86_64_CODE_4_GOTPCRELX +[0-9a-f]+ +foo - 4 +[0-9a-f]+ +[0-9a-f]+ R_X86_64_CODE_4_GOTPCRELX +[0-9a-f]+ +bar - 4 #... +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +foo +[0-9]+: +0+fffffff0 +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +ABS +bar diff --git a/gas/testsuite/gas/i386/x86-64-localpic.s b/gas/testsuite/gas/i386/x86-64-localpic.s index beda94dc2f3..183dfb6293b 100644 --- a/gas/testsuite/gas/i386/x86-64-localpic.s +++ b/gas/testsuite/gas/i386/x86-64-localpic.s @@ -3,4 +3,6 @@ foo: .quad 0 movq foo@GOTPCREL(%rip), %rax movq bar@GOTPCREL(%rip), %rax + movq foo@GOTPCREL(%rip), %r26 + movq bar@GOTPCREL(%rip), %r26 bar = 0xfffffff0 diff --git a/gas/write.h b/gas/write.h index eb30a76bf85..fd0ab553b23 100644 --- a/gas/write.h +++ b/gas/write.h @@ -81,9 +81,10 @@ struct fix /* Some bits for the CPU specific code. */ unsigned fx_tcbit : 1; unsigned fx_tcbit2 : 1; + unsigned fx_tcbit3 : 1; /* Spare bits. */ - unsigned fx_unused : 2; + unsigned fx_unused : 1; bfd_reloc_code_real_type fx_r_type; diff --git a/include/elf/x86-64.h b/include/elf/x86-64.h index 60b3c2ad10e..2d610416bf4 100644 --- a/include/elf/x86-64.h +++ b/include/elf/x86-64.h @@ -77,11 +77,15 @@ START_RELOC_NUMBERS (elf_x86_64_reloc_type) RELOC_NUMBER (R_X86_64_PLT32_BND, 40) /* 32 bit PLT address with BND prefix */ /* Load from 32 bit signed pc relative offset to GOT entry without - REX prefix, relaxable. */ + REX nor REX2 prefixes, relaxable. */ RELOC_NUMBER (R_X86_64_GOTPCRELX, 41) /* Load from 32 bit signed pc relative offset to GOT entry with REX prefix, relaxable. */ RELOC_NUMBER (R_X86_64_REX_GOTPCRELX, 42) + /* Load from 32 bit signed pc relative offset to GOT entry if the + instruction starts at 4 bytes before the relocation offset, + relaxable. */ + RELOC_NUMBER (R_X86_64_CODE_4_GOTPCRELX, 43) RELOC_NUMBER (R_X86_64_GNU_VTINHERIT, 250) /* GNU C++ hack */ RELOC_NUMBER (R_X86_64_GNU_VTENTRY, 251) /* GNU C++ hack */ END_RELOC_NUMBERS (R_X86_64_max) diff --git a/ld/testsuite/ld-x86-64/apx-load1.s b/ld/testsuite/ld-x86-64/apx-load1.s new file mode 100644 index 00000000000..f5eac57d82e --- /dev/null +++ b/ld/testsuite/ld-x86-64/apx-load1.s @@ -0,0 +1,51 @@ + .data + .type bar, @object +bar: + .byte 1 + .size bar, .-bar + .globl foo + .type foo, @object +foo: + .byte 1 + .size foo, .-foo + .text + .globl _start + .type _start, @function +_start: + adcl bar@GOTPCREL(%rip), %r16d + addl bar@GOTPCREL(%rip), %r17d + andl bar@GOTPCREL(%rip), %r18d + cmpl bar@GOTPCREL(%rip), %r19d + orl bar@GOTPCREL(%rip), %r20d + sbbl bar@GOTPCREL(%rip), %r21d + subl bar@GOTPCREL(%rip), %r22d + xorl bar@GOTPCREL(%rip), %r23d + testl %r24d, bar@GOTPCREL(%rip) + adcq bar@GOTPCREL(%rip), %r16 + addq bar@GOTPCREL(%rip), %r17 + andq bar@GOTPCREL(%rip), %r18 + cmpq bar@GOTPCREL(%rip), %r19 + orq bar@GOTPCREL(%rip), %r20 + sbbq bar@GOTPCREL(%rip), %r21 + subq bar@GOTPCREL(%rip), %r22 + xorq bar@GOTPCREL(%rip), %r23 + testq %r24, bar@GOTPCREL(%rip) + adcl foo@GOTPCREL(%rip), %r16d + addl foo@GOTPCREL(%rip), %r17d + andl foo@GOTPCREL(%rip), %r18d + cmpl foo@GOTPCREL(%rip), %r19d + orl foo@GOTPCREL(%rip), %r20d + sbbl foo@GOTPCREL(%rip), %r21d + subl foo@GOTPCREL(%rip), %r22d + xorl foo@GOTPCREL(%rip), %r23d + testl %r24d, foo@GOTPCREL(%rip) + adcq foo@GOTPCREL(%rip), %r16 + addq foo@GOTPCREL(%rip), %r17 + andq foo@GOTPCREL(%rip), %r18 + cmpq foo@GOTPCREL(%rip), %r19 + orq foo@GOTPCREL(%rip), %r20 + sbbq foo@GOTPCREL(%rip), %r21 + subq foo@GOTPCREL(%rip), %r22 + xorq foo@GOTPCREL(%rip), %r23 + testq %r24, foo@GOTPCREL(%rip) + .size _start, .-_start diff --git a/ld/testsuite/ld-x86-64/apx-load1a.d b/ld/testsuite/ld-x86-64/apx-load1a.d new file mode 100644 index 00000000000..162a2343ebe --- /dev/null +++ b/ld/testsuite/ld-x86-64/apx-load1a.d @@ -0,0 +1,54 @@ +#source: apx-load1.s +#as: --64 -mrelax-relocations=yes +#ld: -melf_x86_64 -z max-page-size=0x200000 -z noseparate-code +#objdump: -dw --sym + +.*: +file format .* + +SYMBOL TABLE: +#... +0+6001d0 l O .data 0+1 bar +#... +0+6001d1 g O .data 0+1 foo +#... + +Disassembly of section .text: + +0+4000b0 <_start>: + +[a-f0-9]+: d5 10 81 d0 d0 01 60 00 adc \$0x6001d0,%r16d + +[a-f0-9]+: d5 10 81 c1 d0 01 60 00 add \$0x6001d0,%r17d + +[a-f0-9]+: d5 10 81 e2 d0 01 60 00 and \$0x6001d0,%r18d + +[a-f0-9]+: d5 10 81 fb d0 01 60 00 cmp \$0x6001d0,%r19d + +[a-f0-9]+: d5 10 81 cc d0 01 60 00 or \$0x6001d0,%r20d + +[a-f0-9]+: d5 10 81 dd d0 01 60 00 sbb \$0x6001d0,%r21d + +[a-f0-9]+: d5 10 81 ee d0 01 60 00 sub \$0x6001d0,%r22d + +[a-f0-9]+: d5 10 81 f7 d0 01 60 00 xor \$0x6001d0,%r23d + +[a-f0-9]+: d5 11 f7 c0 d0 01 60 00 test \$0x6001d0,%r24d + +[a-f0-9]+: d5 18 81 d0 d0 01 60 00 adc \$0x6001d0,%r16 + +[a-f0-9]+: d5 18 81 c1 d0 01 60 00 add \$0x6001d0,%r17 + +[a-f0-9]+: d5 18 81 e2 d0 01 60 00 and \$0x6001d0,%r18 + +[a-f0-9]+: d5 18 81 fb d0 01 60 00 cmp \$0x6001d0,%r19 + +[a-f0-9]+: d5 18 81 cc d0 01 60 00 or \$0x6001d0,%r20 + +[a-f0-9]+: d5 18 81 dd d0 01 60 00 sbb \$0x6001d0,%r21 + +[a-f0-9]+: d5 18 81 ee d0 01 60 00 sub \$0x6001d0,%r22 + +[a-f0-9]+: d5 18 81 f7 d0 01 60 00 xor \$0x6001d0,%r23 + +[a-f0-9]+: d5 19 f7 c0 d0 01 60 00 test \$0x6001d0,%r24 + +[a-f0-9]+: d5 10 81 d0 d1 01 60 00 adc \$0x6001d1,%r16d + +[a-f0-9]+: d5 10 81 c1 d1 01 60 00 add \$0x6001d1,%r17d + +[a-f0-9]+: d5 10 81 e2 d1 01 60 00 and \$0x6001d1,%r18d + +[a-f0-9]+: d5 10 81 fb d1 01 60 00 cmp \$0x6001d1,%r19d + +[a-f0-9]+: d5 10 81 cc d1 01 60 00 or \$0x6001d1,%r20d + +[a-f0-9]+: d5 10 81 dd d1 01 60 00 sbb \$0x6001d1,%r21d + +[a-f0-9]+: d5 10 81 ee d1 01 60 00 sub \$0x6001d1,%r22d + +[a-f0-9]+: d5 10 81 f7 d1 01 60 00 xor \$0x6001d1,%r23d + +[a-f0-9]+: d5 11 f7 c0 d1 01 60 00 test \$0x6001d1,%r24d + +[a-f0-9]+: d5 18 81 d0 d1 01 60 00 adc \$0x6001d1,%r16 + +[a-f0-9]+: d5 18 81 c1 d1 01 60 00 add \$0x6001d1,%r17 + +[a-f0-9]+: d5 18 81 e2 d1 01 60 00 and \$0x6001d1,%r18 + +[a-f0-9]+: d5 18 81 fb d1 01 60 00 cmp \$0x6001d1,%r19 + +[a-f0-9]+: d5 18 81 cc d1 01 60 00 or \$0x6001d1,%r20 + +[a-f0-9]+: d5 18 81 dd d1 01 60 00 sbb \$0x6001d1,%r21 + +[a-f0-9]+: d5 18 81 ee d1 01 60 00 sub \$0x6001d1,%r22 + +[a-f0-9]+: d5 18 81 f7 d1 01 60 00 xor \$0x6001d1,%r23 + +[a-f0-9]+: d5 19 f7 c0 d1 01 60 00 test \$0x6001d1,%r24 +#pass diff --git a/ld/testsuite/ld-x86-64/apx-load1b.d b/ld/testsuite/ld-x86-64/apx-load1b.d new file mode 100644 index 00000000000..8c8962cad2d --- /dev/null +++ b/ld/testsuite/ld-x86-64/apx-load1b.d @@ -0,0 +1,55 @@ +#source: apx-load1.s +#as: --x32 -mrelax-relocations=yes +#ld: -melf32_x86_64 -z max-page-size=0x200000 -z noseparate-code +#objdump: -dw --sym + +.*: +file format .* + +SYMBOL TABLE: +#... +0+600194 l O .data 0+1 bar +#... +0+600195 g O .data 0+1 foo +#... + + +Disassembly of section .text: + +0+400074 <_start>: + +[a-f0-9]+: d5 10 81 d0 94 01 60 00 adc \$0x600194,%r16d + +[a-f0-9]+: d5 10 81 c1 94 01 60 00 add \$0x600194,%r17d + +[a-f0-9]+: d5 10 81 e2 94 01 60 00 and \$0x600194,%r18d + +[a-f0-9]+: d5 10 81 fb 94 01 60 00 cmp \$0x600194,%r19d + +[a-f0-9]+: d5 10 81 cc 94 01 60 00 or \$0x600194,%r20d + +[a-f0-9]+: d5 10 81 dd 94 01 60 00 sbb \$0x600194,%r21d + +[a-f0-9]+: d5 10 81 ee 94 01 60 00 sub \$0x600194,%r22d + +[a-f0-9]+: d5 10 81 f7 94 01 60 00 xor \$0x600194,%r23d + +[a-f0-9]+: d5 11 f7 c0 94 01 60 00 test \$0x600194,%r24d + +[a-f0-9]+: d5 18 81 d0 94 01 60 00 adc \$0x600194,%r16 + +[a-f0-9]+: d5 18 81 c1 94 01 60 00 add \$0x600194,%r17 + +[a-f0-9]+: d5 18 81 e2 94 01 60 00 and \$0x600194,%r18 + +[a-f0-9]+: d5 18 81 fb 94 01 60 00 cmp \$0x600194,%r19 + +[a-f0-9]+: d5 18 81 cc 94 01 60 00 or \$0x600194,%r20 + +[a-f0-9]+: d5 18 81 dd 94 01 60 00 sbb \$0x600194,%r21 + +[a-f0-9]+: d5 18 81 ee 94 01 60 00 sub \$0x600194,%r22 + +[a-f0-9]+: d5 18 81 f7 94 01 60 00 xor \$0x600194,%r23 + +[a-f0-9]+: d5 19 f7 c0 94 01 60 00 test \$0x600194,%r24 + +[a-f0-9]+: d5 10 81 d0 95 01 60 00 adc \$0x600195,%r16d + +[a-f0-9]+: d5 10 81 c1 95 01 60 00 add \$0x600195,%r17d + +[a-f0-9]+: d5 10 81 e2 95 01 60 00 and \$0x600195,%r18d + +[a-f0-9]+: d5 10 81 fb 95 01 60 00 cmp \$0x600195,%r19d + +[a-f0-9]+: d5 10 81 cc 95 01 60 00 or \$0x600195,%r20d + +[a-f0-9]+: d5 10 81 dd 95 01 60 00 sbb \$0x600195,%r21d + +[a-f0-9]+: d5 10 81 ee 95 01 60 00 sub \$0x600195,%r22d + +[a-f0-9]+: d5 10 81 f7 95 01 60 00 xor \$0x600195,%r23d + +[a-f0-9]+: d5 11 f7 c0 95 01 60 00 test \$0x600195,%r24d + +[a-f0-9]+: d5 18 81 d0 95 01 60 00 adc \$0x600195,%r16 + +[a-f0-9]+: d5 18 81 c1 95 01 60 00 add \$0x600195,%r17 + +[a-f0-9]+: d5 18 81 e2 95 01 60 00 and \$0x600195,%r18 + +[a-f0-9]+: d5 18 81 fb 95 01 60 00 cmp \$0x600195,%r19 + +[a-f0-9]+: d5 18 81 cc 95 01 60 00 or \$0x600195,%r20 + +[a-f0-9]+: d5 18 81 dd 95 01 60 00 sbb \$0x600195,%r21 + +[a-f0-9]+: d5 18 81 ee 95 01 60 00 sub \$0x600195,%r22 + +[a-f0-9]+: d5 18 81 f7 95 01 60 00 xor \$0x600195,%r23 + +[a-f0-9]+: d5 19 f7 c0 95 01 60 00 test \$0x600195,%r24 +#pass diff --git a/ld/testsuite/ld-x86-64/apx-load1c.d b/ld/testsuite/ld-x86-64/apx-load1c.d new file mode 100644 index 00000000000..fdfe00cc61c --- /dev/null +++ b/ld/testsuite/ld-x86-64/apx-load1c.d @@ -0,0 +1,47 @@ +#source: apx-load1.s +#as: --64 +#ld: -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS +#objdump: -dw + +.*: +file format .* + +Disassembly of section .text: + +0+188 <_start>: + +[a-f0-9]+: d5 40 13 05 f8 01 20 00 adc 0x2001f8\(%rip\),%r16d # 200388 <.*> + +[a-f0-9]+: d5 40 03 0d f0 01 20 00 add 0x2001f0\(%rip\),%r17d # 200388 <.*> + +[a-f0-9]+: d5 40 23 15 e8 01 20 00 and 0x2001e8\(%rip\),%r18d # 200388 <.*> + +[a-f0-9]+: d5 40 3b 1d e0 01 20 00 cmp 0x2001e0\(%rip\),%r19d # 200388 <.*> + +[a-f0-9]+: d5 40 0b 25 d8 01 20 00 or 0x2001d8\(%rip\),%r20d # 200388 <.*> + +[a-f0-9]+: d5 40 1b 2d d0 01 20 00 sbb 0x2001d0\(%rip\),%r21d # 200388 <.*> + +[a-f0-9]+: d5 40 2b 35 c8 01 20 00 sub 0x2001c8\(%rip\),%r22d # 200388 <.*> + +[a-f0-9]+: d5 40 33 3d c0 01 20 00 xor 0x2001c0\(%rip\),%r23d # 200388 <.*> + +[a-f0-9]+: d5 44 85 05 b8 01 20 00 test %r24d,0x2001b8\(%rip\) # 200388 <.*> + +[a-f0-9]+: d5 48 13 05 b0 01 20 00 adc 0x2001b0\(%rip\),%r16 # 200388 <.*> + +[a-f0-9]+: d5 48 03 0d a8 01 20 00 add 0x2001a8\(%rip\),%r17 # 200388 <.*> + +[a-f0-9]+: d5 48 23 15 a0 01 20 00 and 0x2001a0\(%rip\),%r18 # 200388 <.*> + +[a-f0-9]+: d5 48 3b 1d 98 01 20 00 cmp 0x200198\(%rip\),%r19 # 200388 <.*> + +[a-f0-9]+: d5 48 0b 25 90 01 20 00 or 0x200190\(%rip\),%r20 # 200388 <.*> + +[a-f0-9]+: d5 48 1b 2d 88 01 20 00 sbb 0x200188\(%rip\),%r21 # 200388 <.*> + +[a-f0-9]+: d5 48 2b 35 80 01 20 00 sub 0x200180\(%rip\),%r22 # 200388 <.*> + +[a-f0-9]+: d5 48 33 3d 78 01 20 00 xor 0x200178\(%rip\),%r23 # 200388 <.*> + +[a-f0-9]+: d5 4c 85 05 70 01 20 00 test %r24,0x200170\(%rip\) # 200388 <.*> + +[a-f0-9]+: d5 40 13 05 70 01 20 00 adc 0x200170\(%rip\),%r16d # 200390 <.*> + +[a-f0-9]+: d5 40 03 0d 68 01 20 00 add 0x200168\(%rip\),%r17d # 200390 <.*> + +[a-f0-9]+: d5 40 23 15 60 01 20 00 and 0x200160\(%rip\),%r18d # 200390 <.*> + +[a-f0-9]+: d5 40 3b 1d 58 01 20 00 cmp 0x200158\(%rip\),%r19d # 200390 <.*> + +[a-f0-9]+: d5 40 0b 25 50 01 20 00 or 0x200150\(%rip\),%r20d # 200390 <.*> + +[a-f0-9]+: d5 40 1b 2d 48 01 20 00 sbb 0x200148\(%rip\),%r21d # 200390 <.*> + +[a-f0-9]+: d5 40 2b 35 40 01 20 00 sub 0x200140\(%rip\),%r22d # 200390 <.*> + +[a-f0-9]+: d5 40 33 3d 38 01 20 00 xor 0x200138\(%rip\),%r23d # 200390 <.*> + +[a-f0-9]+: d5 44 85 05 30 01 20 00 test %r24d,0x200130\(%rip\) # 200390 <.*> + +[a-f0-9]+: d5 48 13 05 28 01 20 00 adc 0x200128\(%rip\),%r16 # 200390 <.*> + +[a-f0-9]+: d5 48 03 0d 20 01 20 00 add 0x200120\(%rip\),%r17 # 200390 <.*> + +[a-f0-9]+: d5 48 23 15 18 01 20 00 and 0x200118\(%rip\),%r18 # 200390 <.*> + +[a-f0-9]+: d5 48 3b 1d 10 01 20 00 cmp 0x200110\(%rip\),%r19 # 200390 <.*> + +[a-f0-9]+: d5 48 0b 25 08 01 20 00 or 0x200108\(%rip\),%r20 # 200390 <.*> + +[a-f0-9]+: d5 48 1b 2d 00 01 20 00 sbb 0x200100\(%rip\),%r21 # 200390 <.*> + +[a-f0-9]+: d5 48 2b 35 f8 00 20 00 sub 0x2000f8\(%rip\),%r22 # 200390 <.*> + +[a-f0-9]+: d5 48 33 3d f0 00 20 00 xor 0x2000f0\(%rip\),%r23 # 200390 <.*> + +[a-f0-9]+: d5 4c 85 05 e8 00 20 00 test %r24,0x2000e8\(%rip\) # 200390 <.*> +#pass diff --git a/ld/testsuite/ld-x86-64/apx-load1d.d b/ld/testsuite/ld-x86-64/apx-load1d.d new file mode 100644 index 00000000000..4da967822ea --- /dev/null +++ b/ld/testsuite/ld-x86-64/apx-load1d.d @@ -0,0 +1,47 @@ +#source: apx-load1.s +#as: --x32 +#ld: -shared -melf32_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS +#objdump: -dw + +.*: +file format .* + +Disassembly of section .text: + +0+100 <_start>: + +[a-f0-9]+: d5 40 13 05 88 01 20 00 adc 0x200188\(%rip\),%r16d # 200290 <.*> + +[a-f0-9]+: d5 40 03 0d 80 01 20 00 add 0x200180\(%rip\),%r17d # 200290 <.*> + +[a-f0-9]+: d5 40 23 15 78 01 20 00 and 0x200178\(%rip\),%r18d # 200290 <.*> + +[a-f0-9]+: d5 40 3b 1d 70 01 20 00 cmp 0x200170\(%rip\),%r19d # 200290 <.*> + +[a-f0-9]+: d5 40 0b 25 68 01 20 00 or 0x200168\(%rip\),%r20d # 200290 <.*> + +[a-f0-9]+: d5 40 1b 2d 60 01 20 00 sbb 0x200160\(%rip\),%r21d # 200290 <.*> + +[a-f0-9]+: d5 40 2b 35 58 01 20 00 sub 0x200158\(%rip\),%r22d # 200290 <.*> + +[a-f0-9]+: d5 40 33 3d 50 01 20 00 xor 0x200150\(%rip\),%r23d # 200290 <.*> + +[a-f0-9]+: d5 44 85 05 48 01 20 00 test %r24d,0x200148\(%rip\) # 200290 <.*> + +[a-f0-9]+: d5 48 13 05 40 01 20 00 adc 0x200140\(%rip\),%r16 # 200290 <.*> + +[a-f0-9]+: d5 48 03 0d 38 01 20 00 add 0x200138\(%rip\),%r17 # 200290 <.*> + +[a-f0-9]+: d5 48 23 15 30 01 20 00 and 0x200130\(%rip\),%r18 # 200290 <.*> + +[a-f0-9]+: d5 48 3b 1d 28 01 20 00 cmp 0x200128\(%rip\),%r19 # 200290 <.*> + +[a-f0-9]+: d5 48 0b 25 20 01 20 00 or 0x200120\(%rip\),%r20 # 200290 <.*> + +[a-f0-9]+: d5 48 1b 2d 18 01 20 00 sbb 0x200118\(%rip\),%r21 # 200290 <.*> + +[a-f0-9]+: d5 48 2b 35 10 01 20 00 sub 0x200110\(%rip\),%r22 # 200290 <.*> + +[a-f0-9]+: d5 48 33 3d 08 01 20 00 xor 0x200108\(%rip\),%r23 # 200290 <.*> + +[a-f0-9]+: d5 4c 85 05 00 01 20 00 test %r24,0x200100\(%rip\) # 200290 <.*> + +[a-f0-9]+: d5 40 13 05 00 01 20 00 adc 0x200100\(%rip\),%r16d # 200298 <.*> + +[a-f0-9]+: d5 40 03 0d f8 00 20 00 add 0x2000f8\(%rip\),%r17d # 200298 <.*> + +[a-f0-9]+: d5 40 23 15 f0 00 20 00 and 0x2000f0\(%rip\),%r18d # 200298 <.*> + +[a-f0-9]+: d5 40 3b 1d e8 00 20 00 cmp 0x2000e8\(%rip\),%r19d # 200298 <.*> + +[a-f0-9]+: d5 40 0b 25 e0 00 20 00 or 0x2000e0\(%rip\),%r20d # 200298 <.*> + +[a-f0-9]+: d5 40 1b 2d d8 00 20 00 sbb 0x2000d8\(%rip\),%r21d # 200298 <.*> + +[a-f0-9]+: d5 40 2b 35 d0 00 20 00 sub 0x2000d0\(%rip\),%r22d # 200298 <.*> + +[a-f0-9]+: d5 40 33 3d c8 00 20 00 xor 0x2000c8\(%rip\),%r23d # 200298 <.*> + +[a-f0-9]+: d5 44 85 05 c0 00 20 00 test %r24d,0x2000c0\(%rip\) # 200298 <.*> + +[a-f0-9]+: d5 48 13 05 b8 00 20 00 adc 0x2000b8\(%rip\),%r16 # 200298 <.*> + +[a-f0-9]+: d5 48 03 0d b0 00 20 00 add 0x2000b0\(%rip\),%r17 # 200298 <.*> + +[a-f0-9]+: d5 48 23 15 a8 00 20 00 and 0x2000a8\(%rip\),%r18 # 200298 <.*> + +[a-f0-9]+: d5 48 3b 1d a0 00 20 00 cmp 0x2000a0\(%rip\),%r19 # 200298 <.*> + +[a-f0-9]+: d5 48 0b 25 98 00 20 00 or 0x200098\(%rip\),%r20 # 200298 <.*> + +[a-f0-9]+: d5 48 1b 2d 90 00 20 00 sbb 0x200090\(%rip\),%r21 # 200298 <.*> + +[a-f0-9]+: d5 48 2b 35 88 00 20 00 sub 0x200088\(%rip\),%r22 # 200298 <.*> + +[a-f0-9]+: d5 48 33 3d 80 00 20 00 xor 0x200080\(%rip\),%r23 # 200298 <.*> + +[a-f0-9]+: d5 4c 85 05 78 00 20 00 test %r24,0x200078\(%rip\) # 200298 <.*> +#pass diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp index f94284b079c..550b17d55d0 100644 --- a/ld/testsuite/ld-x86-64/x86-64.exp +++ b/ld/testsuite/ld-x86-64/x86-64.exp @@ -605,6 +605,10 @@ run_dump_test "load1a" run_dump_test "load1b" run_dump_test "load1c" run_dump_test "load1d" +run_dump_test "apx-load1a" +run_dump_test "apx-load1b" +run_dump_test "apx-load1c" +run_dump_test "apx-load1d" run_dump_test "load2" run_dump_test "call1a" run_dump_test "call1b" From patchwork Thu Sep 21 10:11:39 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: 76517 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 D818638768A9 for ; Thu, 21 Sep 2023 10:14:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D818638768A9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1695291278; bh=JV2IsHz1fMnB+wC9WGnGadytkufqfNNwht3Wh64Bm50=; 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=MLlmzp27eQ/jFZwKbmRvv3eNG7X83pv+q7KvlqaQ5bX9fV6aWtX34gMZZODJPCGXR NTTu2yK89Z1BC+cjTga3kDNiwozNmCcJtaS6GZz7hMMYRlORlrBS2Nq/gmUyczI2Q3 O3y4o6U6Od2bSOQ+SchWrOTH8MiHIC9/cS/ki6Sk= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.126]) by sourceware.org (Postfix) with ESMTPS id 0A8C5385C301 for ; Thu, 21 Sep 2023 10:12:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0A8C5385C301 X-IronPort-AV: E=McAfee;i="6600,9927,10839"; a="365533236" X-IronPort-AV: E=Sophos;i="6.03,165,1694761200"; d="scan'208";a="365533236" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Sep 2023 03:12:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10839"; a="812585786" X-IronPort-AV: E=Sophos;i="6.03,165,1694761200"; d="scan'208";a="812585786" Received: from scymds04.sc.intel.com ([10.82.73.238]) by fmsmga008.fm.intel.com with ESMTP; 21 Sep 2023 03:11:53 -0700 Received: from shgcc101.sh.intel.com (shgcc101.sh.intel.com [10.239.85.97]) by scymds04.sc.intel.com (Postfix) with ESMTP id 37E56181F52B; Thu, 21 Sep 2023 03:11:52 -0700 (PDT) To: binutils@sourceware.org Cc: jbeulich@suse.com, hongjiu.lu@intel.com, ccoutant@gmail.com, "H.J. Lu" Subject: [PATCH 4/6] gold: Handle R_X86_64_CODE_4_GOTPCRELX Date: Thu, 21 Sep 2023 10:11:39 +0000 Message-Id: <20230921101141.2518818-5-lili.cui@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230921101141.2518818-1-lili.cui@intel.com> References: <20230921101141.2518818-1-lili.cui@intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 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: "H.J. Lu" Handle R_X86_64_CODE_4_GOTPCRELX and convert mov name@GOTPCREL(%rip), %r31 to lea name@GOTPCREL(%rip), %r31 if the instruction is encoded with the REX2 prefix when possible. elfcpp/ * x86_64.h (R_X86_64_CODE_4_GOTPCRELX): New. gold/ * x86_64.cc (Target_x86_64::can_convert_mov_to_lea): Handle R_X86_64_CODE_4_GOTPCRELX. (Target_x86_64::Scan::get_reference_flags): Likewise. (Target_x86_64::Scan::local): Likewise. (Target_x86_64::Scan::possible_function_pointer_reloc): Likewise. (Target_x86_64::Scan::global): Likewise. (Target_x86_64::Relocate::relocate): Likewise. * testsuite/x86_64_mov_to_lea1.s: Add a test for R_X86_64_CODE_4_GOTPCRELX. * testsuite/x86_64_mov_to_lea2.s: Likewise. * testsuite/x86_64_mov_to_lea3.s: Likewise. * testsuite/x86_64_mov_to_lea4.s: Likewise. * testsuite/x86_64_mov_to_lea5.s: Likewise. * testsuite/x86_64_mov_to_lea.sh: Updated. --- elfcpp/x86_64.h | 6 ++++- gold/testsuite/x86_64_mov_to_lea.sh | 16 +++++++++++++ gold/testsuite/x86_64_mov_to_lea1.s | 1 + gold/testsuite/x86_64_mov_to_lea2.s | 1 + gold/testsuite/x86_64_mov_to_lea3.s | 1 + gold/testsuite/x86_64_mov_to_lea4.s | 1 + gold/testsuite/x86_64_mov_to_lea5.s | 1 + gold/x86_64.cc | 37 ++++++++++++++++++++++------- 8 files changed, 54 insertions(+), 10 deletions(-) diff --git a/elfcpp/x86_64.h b/elfcpp/x86_64.h index 0377e773071..97a87ae424d 100644 --- a/elfcpp/x86_64.h +++ b/elfcpp/x86_64.h @@ -95,9 +95,13 @@ enum R_X86_64_PC32_BND = 39, // PC relative 32 bit signed with BND prefix R_X86_64_PLT32_BND = 40, // 32 bit PLT address with BND prefix R_X86_64_GOTPCRELX = 41, // 32 bit signed PC relative offset to GOT - // without REX prefix, relaxable. + // without REX nor REX2 prefixes, relaxable. R_X86_64_REX_GOTPCRELX = 42, // 32 bit signed PC relative offset to GOT // with REX prefix, relaxable. + R_X86_64_CODE_4_GOTPCRELX = 43, // 32 bit signed PC relative offset to + // GOT if the instruction starts at 4 + // bytes before the relocation offset, + // relaxable. // GNU vtable garbage collection extensions. R_X86_64_GNU_VTINHERIT = 250, R_X86_64_GNU_VTENTRY = 251 diff --git a/gold/testsuite/x86_64_mov_to_lea.sh b/gold/testsuite/x86_64_mov_to_lea.sh index 1b30e1aa048..3e248ebec3c 100755 --- a/gold/testsuite/x86_64_mov_to_lea.sh +++ b/gold/testsuite/x86_64_mov_to_lea.sh @@ -25,20 +25,36 @@ set -e grep -q "lea -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea1.stdout +grep -q "lea -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea1.stdout grep -q "lea -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea2.stdout +grep -q "lea -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea2.stdout grep -q "lea -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea3.stdout +grep -q "lea -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea3.stdout grep -q "lea -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea4.stdout +grep -q "lea -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea4.stdout grep -q "lea -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea5.stdout +grep -q "lea -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea5.stdout grep -q "lea -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea6.stdout +grep -q "lea -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea6.stdout grep -q "mov 0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea7.stdout +grep -q "mov 0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea7.stdout grep -q "mov 0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea8.stdout +grep -q "mov 0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea8.stdout grep -q "lea -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea9.stdout +grep -q "lea -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea9.stdout grep -q "lea -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea10.stdout +grep -q "lea -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea10.stdout grep -q "mov 0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea11.stdout +grep -q "mov 0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea11.stdout grep -q "mov 0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea12.stdout +grep -q "mov 0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea12.stdout grep -q "lea -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea13.stdout +grep -q "lea -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea13.stdout grep -q "lea -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea14.stdout +grep -q "lea -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea14.stdout grep -q "mov 0x[a-f0-9]\+(%rip),%eax" x86_64_mov_to_lea15.stdout +grep -q "mov 0x[a-f0-9]\+(%rip),%r26d" x86_64_mov_to_lea15.stdout grep -q "mov 0x[a-f0-9]\+(%rip),%eax" x86_64_mov_to_lea16.stdout +grep -q "mov 0x[a-f0-9]\+(%rip),%r26d" x86_64_mov_to_lea16.stdout exit 0 diff --git a/gold/testsuite/x86_64_mov_to_lea1.s b/gold/testsuite/x86_64_mov_to_lea1.s index 4dce487c3fc..298ede12f80 100644 --- a/gold/testsuite/x86_64_mov_to_lea1.s +++ b/gold/testsuite/x86_64_mov_to_lea1.s @@ -8,4 +8,5 @@ foo: .type _start, @function _start: movq foo@GOTPCREL(%rip), %rax + movq foo@GOTPCREL(%rip), %r26 .size _start, .-_start diff --git a/gold/testsuite/x86_64_mov_to_lea2.s b/gold/testsuite/x86_64_mov_to_lea2.s index 2a11b7a19f4..404f4c1dd48 100644 --- a/gold/testsuite/x86_64_mov_to_lea2.s +++ b/gold/testsuite/x86_64_mov_to_lea2.s @@ -3,4 +3,5 @@ .type _start, @function _start: movq _DYNAMIC@GOTPCREL(%rip), %rax + movq _DYNAMIC@GOTPCREL(%rip), %r26 .size _start, .-_start diff --git a/gold/testsuite/x86_64_mov_to_lea3.s b/gold/testsuite/x86_64_mov_to_lea3.s index ac43b783758..838c33edae0 100644 --- a/gold/testsuite/x86_64_mov_to_lea3.s +++ b/gold/testsuite/x86_64_mov_to_lea3.s @@ -7,4 +7,5 @@ foo: .type _start, @function _start: movq foo@GOTPCREL(%rip), %rax + movq foo@GOTPCREL(%rip), %r26 .size _start, .-_start diff --git a/gold/testsuite/x86_64_mov_to_lea4.s b/gold/testsuite/x86_64_mov_to_lea4.s index 37bee32bb4e..a68a4cf0d19 100644 --- a/gold/testsuite/x86_64_mov_to_lea4.s +++ b/gold/testsuite/x86_64_mov_to_lea4.s @@ -9,4 +9,5 @@ foo: .type _start, @function _start: movq foo@GOTPCREL(%rip), %rax + movq foo@GOTPCREL(%rip), %r26 .size _start, .-_start diff --git a/gold/testsuite/x86_64_mov_to_lea5.s b/gold/testsuite/x86_64_mov_to_lea5.s index e793a2b9b73..e818989deb7 100644 --- a/gold/testsuite/x86_64_mov_to_lea5.s +++ b/gold/testsuite/x86_64_mov_to_lea5.s @@ -9,4 +9,5 @@ foo: .type _start, @function _start: movl foo@GOTPCREL+4(%rip), %eax + movl foo@GOTPCREL+4(%rip), %r26d .size _start, .-_start diff --git a/gold/x86_64.cc b/gold/x86_64.cc index 928dfa8ea34..b7be9bf0d48 100644 --- a/gold/x86_64.cc +++ b/gold/x86_64.cc @@ -1053,8 +1053,9 @@ class Target_x86_64 : public Sized_target gold_assert(gsym != NULL); // We cannot do the conversion unless it's one of these relocations. if (r_type != elfcpp::R_X86_64_GOTPCREL - && r_type != elfcpp::R_X86_64_GOTPCRELX - && r_type != elfcpp::R_X86_64_REX_GOTPCRELX) + && r_type != elfcpp::R_X86_64_GOTPCRELX + && r_type != elfcpp::R_X86_64_REX_GOTPCRELX + && r_type != elfcpp::R_X86_64_CODE_4_GOTPCRELX) return false; // We cannot convert references to IFUNC symbols, or to symbols that // are not local to the current module. @@ -2971,6 +2972,7 @@ Target_x86_64::Scan::get_reference_flags(unsigned int r_type) case elfcpp::R_X86_64_GOTPCREL: case elfcpp::R_X86_64_GOTPCRELX: case elfcpp::R_X86_64_REX_GOTPCRELX: + case elfcpp::R_X86_64_CODE_4_GOTPCRELX: case elfcpp::R_X86_64_GOTPLT64: // Absolute in GOT. return Symbol::ABSOLUTE_REF; @@ -3251,6 +3253,7 @@ Target_x86_64::Scan::local(Symbol_table* symtab, case elfcpp::R_X86_64_GOTPCREL: case elfcpp::R_X86_64_GOTPCRELX: case elfcpp::R_X86_64_REX_GOTPCRELX: + case elfcpp::R_X86_64_CODE_4_GOTPCRELX: case elfcpp::R_X86_64_GOTPLT64: { // The symbol requires a GOT section. @@ -3261,21 +3264,30 @@ Target_x86_64::Scan::local(Symbol_table* symtab, // mov foo@GOTPCREL(%rip), %reg // to lea foo(%rip), %reg. // in Relocate::relocate. + size_t r_offset = reloc.get_r_offset(); if (!parameters->incremental() - && (r_type == elfcpp::R_X86_64_GOTPCREL - || r_type == elfcpp::R_X86_64_GOTPCRELX - || r_type == elfcpp::R_X86_64_REX_GOTPCRELX) + && (((r_type == elfcpp::R_X86_64_GOTPCREL + || r_type == elfcpp::R_X86_64_GOTPCRELX + || r_type == elfcpp::R_X86_64_REX_GOTPCRELX) + && r_offset >= 2) + || (r_type == elfcpp::R_X86_64_CODE_4_GOTPCRELX + && r_offset >= 4)) && reloc.get_r_addend() == -4 - && reloc.get_r_offset() >= 2 && !is_ifunc) { section_size_type stype; const unsigned char* view = object->section_contents(data_shndx, &stype, true); - if (view[reloc.get_r_offset() - 2] == 0x8b) + if (r_type == elfcpp::R_X86_64_CODE_4_GOTPCRELX + && view[r_offset - 4] != 0xd5) + goto need_got; + + if (view[r_offset - 2] == 0x8b) break; } +need_got: + // The symbol requires a GOT entry. unsigned int r_sym = elfcpp::elf_r_sym(reloc.get_r_info()); @@ -3498,6 +3510,7 @@ Target_x86_64::Scan::possible_function_pointer_reloc( case elfcpp::R_X86_64_GOTPCREL: case elfcpp::R_X86_64_GOTPCRELX: case elfcpp::R_X86_64_REX_GOTPCRELX: + case elfcpp::R_X86_64_CODE_4_GOTPCRELX: case elfcpp::R_X86_64_GOTPLT64: { return true; @@ -3714,6 +3727,7 @@ Target_x86_64::Scan::global(Symbol_table* symtab, case elfcpp::R_X86_64_GOTPCREL: case elfcpp::R_X86_64_GOTPCRELX: case elfcpp::R_X86_64_REX_GOTPCRELX: + case elfcpp::R_X86_64_CODE_4_GOTPCRELX: case elfcpp::R_X86_64_GOTPLT64: { // The symbol requires a GOT entry. @@ -3736,8 +3750,12 @@ Target_x86_64::Scan::global(Symbol_table* symtab, size_t r_offset = reloc.get_r_offset(); if (!parameters->incremental() && reloc.get_r_addend() == -4 - && r_offset >= 2 - && Target_x86_64::can_convert_mov_to_lea(gsym, r_type, + && ((r_type != elfcpp::R_X86_64_CODE_4_GOTPCRELX + && r_offset >= 2) + || (r_type == elfcpp::R_X86_64_CODE_4_GOTPCRELX + && r_offset >= 4 + && view[r_offset - 4] == 0xd5)) + && Target_x86_64::can_convert_mov_to_lea(gsym, r_type, r_offset, &view)) break; @@ -4420,6 +4438,7 @@ Target_x86_64::Relocate::relocate( case elfcpp::R_X86_64_GOTPCREL: case elfcpp::R_X86_64_GOTPCRELX: case elfcpp::R_X86_64_REX_GOTPCRELX: + case elfcpp::R_X86_64_CODE_4_GOTPCRELX: { bool converted_p = false; From patchwork Thu Sep 21 10:11:40 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: 76514 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 77550385CCA4 for ; Thu, 21 Sep 2023 10:12:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 77550385CCA4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1695291150; bh=HM9HWmTv+kkTcSOYU7VN/1TnXJzQqlbnkWSbDkKe//Q=; 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=m0hz0IzEO8z9XBnAmNRkypBuTEVx3/BWjQg8H8PDrHw9PmVbZd9P2u3EvcX/YtHSO sJVXCga+l96ZfGjtFEIatxHmMafSJ4iEv9cHWA0kAZK6VQPxFmtGRtwy7ow9uRSWI1 f+0rC21wiyb9cBcBffHVgkciHl92VjuY0QFLijTc= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.43]) by sourceware.org (Postfix) with ESMTPS id E1AAB3858C52 for ; Thu, 21 Sep 2023 10:11:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E1AAB3858C52 X-IronPort-AV: E=McAfee;i="6600,9927,10839"; a="466786984" X-IronPort-AV: E=Sophos;i="6.03,165,1694761200"; d="scan'208";a="466786984" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Sep 2023 03:11:56 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10839"; a="817319511" X-IronPort-AV: E=Sophos;i="6.03,165,1694761200"; d="scan'208";a="817319511" Received: from scymds04.sc.intel.com ([10.82.73.238]) by fmsmga004.fm.intel.com with ESMTP; 21 Sep 2023 03:11:56 -0700 Received: from shgcc101.sh.intel.com (shgcc101.sh.intel.com [10.239.85.97]) by scymds04.sc.intel.com (Postfix) with ESMTP id 166F5181F52B; Thu, 21 Sep 2023 03:11:53 -0700 (PDT) To: binutils@sourceware.org Cc: jbeulich@suse.com, hongjiu.lu@intel.com, ccoutant@gmail.com, "H.J. Lu" Subject: [PATCH 5/6] For Date: Thu, 21 Sep 2023 10:11:40 +0000 Message-Id: <20230921101141.2518818-6-lili.cui@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230921101141.2518818-1-lili.cui@intel.com> References: <20230921101141.2518818-1-lili.cui@intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 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: "H.J. Lu" add name@gottpoff(%rip), %reg mov name@gottpoff(%rip), %reg add # define R_X86_64_CODE_4_GOTTPOFF 44 and for lea name@tlsdesc(%rip), %reg add # define R_X86_64_CODE_4_GOTPC32_TLSDESC 45 if the instruction starts at 4 bytes before the relocation offset. They are similar to R_X86_64_GOTTPOFF and R_X86_64_GOTPC32_TLSDESC, respectively. Linker can covert GOTTPOFF to add $name@tpoff, %reg mov $name@tpoff, %reg and GOTPC32_TLSDESC to mov $name@tpoff, %reg mov name@gottpoff(%rip), %reg if the instruction is encoded with the REX2 prefix when possible. bfd/ * elf64-x86-64.c (x86_64_elf_howto_table): Add R_X86_64_CODE_4_GOTTPOFF and R_X86_64_CODE_4_GOTPC32_TLSDESC. (R_X86_64_standard): Updated. (x86_64_reloc_map): Add BFD_RELOC_X86_64_CODE_4_GOTTPOFF and BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC. (elf_x86_64_check_tls_transition): Handle R_X86_64_CODE_4_GOTTPOFF and R_X86_64_CODE_4_GOTPC32_TLSDESC. (elf_x86_64_tls_transition): Likewise. (elf_x86_64_scan_relocs): Likewise. (elf_x86_64_relocate_section): Likewise. * reloc.c (bfd_reloc_code_real): Add BFD_RELOC_X86_64_CODE_4_GOTTPOFF and BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC. * bfd-in2.h: Regenerated. * libbfd.h: Likewise. gas/ * config/tc-i386.c (tc_i386_fix_adjustable): Handle BFD_RELOC_X86_64_CODE_4_GOTTPOFF and BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC. (md_assemble): Handle BFD_RELOC_X86_64_CODE_4_GOTTPOFF. (output_insn): Don't add empty REX prefix with REX2 prefix. (output_disp): Handle BFD_RELOC_X86_64_CODE_4_GOTTPOFF and BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC. (md_apply_fix): Likewise. (i386_validate_fix): Generate BFD_RELOC_X86_64_CODE_4_GOTTPOFF or BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC if ixp->fx_tcbit3 is set. (tc_gen_reloc): Handle BFD_RELOC_X86_64_CODE_4_GOTTPOFF and BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC. * testsuite/gas/i386/x86-64-gottpoff.d: New file. * testsuite/gas/i386/x86-64-gottpoff.s: Likewise. * testsuite/gas/i386/x86-64-tlsdesc.d: Likewise. * testsuite/gas/i386/x86-64-tlsdesc.s: Likewise. include/ * elf/x86-64.h (elf_x86_64_reloc_type): Add R_X86_64_CODE_4_GOTTPOFF and R_X86_64_CODE_4_GOTPC32_TLSDESC ld/ * testsuite/ld-x86-64/tlsbindesc.d: Updated. * testsuite/ld-x86-64/tlsbindesc.rd: Likewise. * testsuite/ld-x86-64/tlsbindesc.s: Add R_X86_64_CODE_4_GOTTPOFF and R_X86_64_CODE_4_GOTPC32_TLSDESC tests. --- bfd/bfd-in2.h | 2 + bfd/elf64-x86-64.c | 125 ++++++++++++++++++++++- bfd/libbfd.h | 2 + bfd/reloc.c | 4 + gas/config/tc-i386.c | 20 ++++ gas/testsuite/gas/i386/x86-64-gottpoff.d | 19 ++++ gas/testsuite/gas/i386/x86-64-gottpoff.s | 15 +++ gas/testsuite/gas/i386/x86-64-tlsdesc.d | 17 +++ gas/testsuite/gas/i386/x86-64-tlsdesc.s | 13 +++ gas/testsuite/gas/i386/x86-64.exp | 3 + include/elf/x86-64.h | 6 ++ ld/testsuite/ld-x86-64/tlsbindesc.dd | 49 +++++++++ ld/testsuite/ld-x86-64/tlsbindesc.rd | 36 +++---- ld/testsuite/ld-x86-64/tlsbindesc.s | 39 +++++++ 14 files changed, 329 insertions(+), 21 deletions(-) create mode 100644 gas/testsuite/gas/i386/x86-64-gottpoff.d create mode 100644 gas/testsuite/gas/i386/x86-64-gottpoff.s create mode 100644 gas/testsuite/gas/i386/x86-64-tlsdesc.d create mode 100644 gas/testsuite/gas/i386/x86-64-tlsdesc.s diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 39fc92888d6..dadd7ce8a1a 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -3882,6 +3882,8 @@ instruction. */ BFD_RELOC_X86_64_GOTPCRELX, BFD_RELOC_X86_64_REX_GOTPCRELX, BFD_RELOC_X86_64_CODE_4_GOTPCRELX, + BFD_RELOC_X86_64_CODE_4_GOTTPOFF, + BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC, /* ns32k relocations */ BFD_RELOC_NS32K_IMM_8, diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index 02d3cda79fd..ae8b3b753c1 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -173,12 +173,18 @@ static reloc_howto_type x86_64_elf_howto_table[] = HOWTO(R_X86_64_CODE_4_GOTPCRELX, 0, 4, 32, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_X86_64_CODE_4_GOTPCRELX", false, 0, 0xffffffff, true), + HOWTO(R_X86_64_CODE_4_GOTTPOFF, 0, 4, 32, true, 0, complain_overflow_signed, + bfd_elf_generic_reloc, "R_X86_64_CODE_4_GOTTPOFF", false, 0, 0xffffffff, + true), + HOWTO(R_X86_64_CODE_4_GOTPC32_TLSDESC, 0, 4, 32, true, 0, + complain_overflow_bitfield, bfd_elf_generic_reloc, + "R_X86_64_CODE_4_GOTPC32_TLSDESC", false, 0, 0xffffffff, true), /* We have a gap in the reloc numbers here. R_X86_64_standard counts the number up to this point, and R_X86_64_vt_offset is the value to subtract from a reloc type of R_X86_64_GNU_VT* to form an index into this table. */ -#define R_X86_64_standard (R_X86_64_CODE_4_GOTPCRELX + 1) +#define R_X86_64_standard (R_X86_64_CODE_4_GOTPC32_TLSDESC + 1) #define R_X86_64_vt_offset (R_X86_64_GNU_VTINHERIT - R_X86_64_standard) /* GNU extension to record C++ vtable hierarchy. */ @@ -248,6 +254,8 @@ static const struct elf_reloc_map x86_64_reloc_map[] = { BFD_RELOC_X86_64_GOTPCRELX, R_X86_64_GOTPCRELX, }, { BFD_RELOC_X86_64_REX_GOTPCRELX, R_X86_64_REX_GOTPCRELX, }, { BFD_RELOC_X86_64_CODE_4_GOTPCRELX, R_X86_64_CODE_4_GOTPCRELX, }, + { BFD_RELOC_X86_64_CODE_4_GOTTPOFF, R_X86_64_CODE_4_GOTTPOFF, }, + { BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC, R_X86_64_CODE_4_GOTPC32_TLSDESC, }, { BFD_RELOC_VTABLE_INHERIT, R_X86_64_GNU_VTINHERIT, }, { BFD_RELOC_VTABLE_ENTRY, R_X86_64_GNU_VTENTRY, }, }; @@ -1262,6 +1270,19 @@ elf_x86_64_check_tls_transition (bfd *abfd, return (r_type == R_X86_64_PC32 || r_type == R_X86_64_PLT32); } + case R_X86_64_CODE_4_GOTTPOFF: + /* Check transition from IE access model: + mov foo@gottpoff(%rip), %reg + add foo@gottpoff(%rip), %reg + where reg is one of r16 to r31. */ + + if (offset < 4 + || (offset + 4) > sec->size + || contents[offset - 4] != 0xd5) + return false; + + goto check_gottpoff; + case R_X86_64_GOTTPOFF: /* Check transition from IE access model: mov foo@gottpoff(%rip), %reg @@ -1288,6 +1309,7 @@ elf_x86_64_check_tls_transition (bfd *abfd, return false; } + check_gottpoff: val = bfd_get_8 (abfd, contents + offset - 2); if (val != 0x8b && val != 0x03) return false; @@ -1295,6 +1317,18 @@ elf_x86_64_check_tls_transition (bfd *abfd, val = bfd_get_8 (abfd, contents + offset - 1); return (val & 0xc7) == 5; + case R_X86_64_CODE_4_GOTPC32_TLSDESC: + /* Check transition from GDesc access model: + lea x@tlsdesc(%rip), %reg + where reg is one of r16 to r31. */ + + if (offset < 4 + || (offset + 4) > sec->size + || contents[offset - 4] != 0xd5) + return false; + + goto check_tlsdesc; + case R_X86_64_GOTPC32_TLSDESC: /* Check transition from GDesc access model: leaq x@tlsdesc(%rip), %rax <--- LP64 mode. @@ -1312,6 +1346,7 @@ elf_x86_64_check_tls_transition (bfd *abfd, if (val != 0x48 && (ABI_64_P (abfd) || val != 0x40)) return false; + check_tlsdesc: if (bfd_get_8 (abfd, contents + offset - 2) != 0x8d) return false; @@ -1378,8 +1413,10 @@ elf_x86_64_tls_transition (struct bfd_link_info *info, bfd *abfd, { case R_X86_64_TLSGD: case R_X86_64_GOTPC32_TLSDESC: + case R_X86_64_CODE_4_GOTPC32_TLSDESC: case R_X86_64_TLSDESC_CALL: case R_X86_64_GOTTPOFF: + case R_X86_64_CODE_4_GOTTPOFF: if (bfd_link_executable (info)) { if (h == NULL) @@ -1399,6 +1436,7 @@ elf_x86_64_tls_transition (struct bfd_link_info *info, bfd *abfd, if (to_type == R_X86_64_TLSGD || to_type == R_X86_64_GOTPC32_TLSDESC + || to_type == R_X86_64_CODE_4_GOTPC32_TLSDESC || to_type == R_X86_64_TLSDESC_CALL) { if (tls_type == GOT_TLS_IE) @@ -1424,7 +1462,9 @@ elf_x86_64_tls_transition (struct bfd_link_info *info, bfd *abfd, } /* Return TRUE if there is no transition. */ - if (from_type == to_type) + if (from_type == to_type + || (from_type == R_X86_64_CODE_4_GOTTPOFF + && to_type == R_X86_64_GOTTPOFF)) return true; /* Check if the transition can be performed. */ @@ -2132,6 +2172,7 @@ elf_x86_64_scan_relocs (bfd *abfd, struct bfd_link_info *info, break; case R_X86_64_GOTTPOFF: + case R_X86_64_CODE_4_GOTTPOFF: if (!bfd_link_executable (info)) info->flags |= DF_STATIC_TLS; /* Fall through */ @@ -2146,6 +2187,7 @@ elf_x86_64_scan_relocs (bfd *abfd, struct bfd_link_info *info, case R_X86_64_GOTPCREL64: case R_X86_64_GOTPLT64: case R_X86_64_GOTPC32_TLSDESC: + case R_X86_64_CODE_4_GOTPC32_TLSDESC: case R_X86_64_TLSDESC_CALL: /* This symbol requires a global offset table entry. */ { @@ -2167,9 +2209,11 @@ elf_x86_64_scan_relocs (bfd *abfd, struct bfd_link_info *info, tls_type = GOT_TLS_GD; break; case R_X86_64_GOTTPOFF: + case R_X86_64_CODE_4_GOTTPOFF: tls_type = GOT_TLS_IE; break; case R_X86_64_GOTPC32_TLSDESC: + case R_X86_64_CODE_4_GOTPC32_TLSDESC: case R_X86_64_TLSDESC_CALL: tls_type = GOT_TLS_GDESC; break; @@ -3518,8 +3562,10 @@ elf_x86_64_relocate_section (bfd *output_bfd, case R_X86_64_TLSGD: case R_X86_64_GOTPC32_TLSDESC: + case R_X86_64_CODE_4_GOTPC32_TLSDESC: case R_X86_64_TLSDESC_CALL: case R_X86_64_GOTTPOFF: + case R_X86_64_CODE_4_GOTTPOFF: tls_type = GOT_UNKNOWN; if (h == NULL && local_got_offsets) tls_type = elf_x86_local_got_tls_type (input_bfd) [r_symndx]; @@ -3660,6 +3706,37 @@ elf_x86_64_relocate_section (bfd *output_bfd, contents + roff); continue; } + else if (r_type == R_X86_64_CODE_4_GOTPC32_TLSDESC) + { + /* GDesc -> LE transition. + It's originally something like: + lea x@tlsdesc(%rip), %reg + + Change it to: + mov $x@tpoff, %reg + where reg is one of r16 to r31. */ + + unsigned int val, rex2; + unsigned int rex2_mask = REX_R | REX_R << 4; + + if (roff < 4) + goto corrupt_input; + rex2 = bfd_get_8 (input_bfd, contents + roff - 3); + val = bfd_get_8 (input_bfd, contents + roff - 1); + /* Move the R bits to the B bits in REX2 payload + byte. */ + bfd_put_8 (output_bfd, + ((rex2 & ~rex2_mask) + | (rex2 & rex2_mask) >> 2), + contents + roff - 3); + bfd_put_8 (output_bfd, 0xc7, contents + roff - 2); + bfd_put_8 (output_bfd, 0xc0 | ((val >> 3) & 7), + contents + roff - 1); + bfd_put_32 (output_bfd, + elf_x86_64_tpoff (info, relocation), + contents + roff); + continue; + } else if (r_type == R_X86_64_TLSDESC_CALL) { /* GDesc -> LE transition. @@ -3799,6 +3876,46 @@ elf_x86_64_relocate_section (bfd *output_bfd, contents + roff); continue; } + else if (r_type == R_X86_64_CODE_4_GOTTPOFF) + { + /* IE->LE transition: + Originally it can be one of: + mov foo@gottpoff(%rip), %reg + add foo@gottpoff(%rip), %reg + We change it into: + mov $foo@tpoff, %reg + add $foo@tpoff, %reg + where reg is one of r16 to r31. */ + + unsigned int rex2, type, reg; + unsigned int rex2_mask = REX_R | REX_R << 4; + + if (roff < 4) + goto corrupt_input; + + rex2 = bfd_get_8 (input_bfd, contents + roff - 3); + type = bfd_get_8 (input_bfd, contents + roff - 2); + reg = bfd_get_8 (input_bfd, contents + roff - 1); + reg >>= 3; + /* Move the R bits to the B bits in REX2 payload + byte. */ + if (type == 0x8b) + type = 0xc7; + else + type = 0x81; + bfd_put_8 (output_bfd, + ((rex2 & ~rex2_mask) + | (rex2 & rex2_mask) >> 2), + contents + roff - 3); + bfd_put_8 (output_bfd, type, + contents + roff - 2); + bfd_put_8 (output_bfd, 0xc0 | reg, + contents + roff - 1); + bfd_put_32 (output_bfd, + elf_x86_64_tpoff (info, relocation), + contents + roff); + continue; + } else BFD_ASSERT (false); } @@ -3905,6 +4022,7 @@ elf_x86_64_relocate_section (bfd *output_bfd, if (r_type_tls == r_type) { if (r_type == R_X86_64_GOTPC32_TLSDESC + || r_type == R_X86_64_CODE_4_GOTPC32_TLSDESC || r_type == R_X86_64_TLSDESC_CALL) relocation = htab->elf.sgotplt->output_section->vma + htab->elf.sgotplt->output_offset @@ -4000,7 +4118,8 @@ elf_x86_64_relocate_section (bfd *output_bfd, wrel++; continue; } - else if (r_type == R_X86_64_GOTPC32_TLSDESC) + else if (r_type == R_X86_64_GOTPC32_TLSDESC + || r_type == R_X86_64_CODE_4_GOTPC32_TLSDESC) { /* GDesc -> IE transition. It's originally something like: diff --git a/bfd/libbfd.h b/bfd/libbfd.h index 9a1ce1a4d65..8235542ed6c 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -1464,6 +1464,8 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_X86_64_GOTPCRELX", "BFD_RELOC_X86_64_REX_GOTPCRELX", "BFD_RELOC_X86_64_CODE_4_GOTPCRELX", + "BFD_RELOC_X86_64_CODE_4_GOTTPOFF", + "BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC", "BFD_RELOC_NS32K_IMM_8", "BFD_RELOC_NS32K_IMM_16", "BFD_RELOC_NS32K_IMM_32", diff --git a/bfd/reloc.c b/bfd/reloc.c index bf291fa52e9..556add4f158 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -2483,6 +2483,10 @@ ENUMX BFD_RELOC_X86_64_REX_GOTPCRELX ENUMX BFD_RELOC_X86_64_CODE_4_GOTPCRELX +ENUMX + BFD_RELOC_X86_64_CODE_4_GOTTPOFF +ENUMX + BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC ENUMDOC x86-64/elf relocations diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 2f78e9a5a38..395f61c077c 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -3605,10 +3605,12 @@ tc_i386_fix_adjustable (fixS *fixP ATTRIBUTE_UNUSED) || fixP->fx_r_type == BFD_RELOC_X86_64_DTPOFF32 || fixP->fx_r_type == BFD_RELOC_X86_64_DTPOFF64 || fixP->fx_r_type == BFD_RELOC_X86_64_GOTTPOFF + || fixP->fx_r_type == BFD_RELOC_X86_64_CODE_4_GOTTPOFF || fixP->fx_r_type == BFD_RELOC_X86_64_TPOFF32 || fixP->fx_r_type == BFD_RELOC_X86_64_TPOFF64 || fixP->fx_r_type == BFD_RELOC_X86_64_GOTOFF64 || fixP->fx_r_type == BFD_RELOC_X86_64_GOTPC32_TLSDESC + || fixP->fx_r_type == BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC || fixP->fx_r_type == BFD_RELOC_X86_64_TLSDESC_CALL || fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY) @@ -5512,6 +5514,7 @@ md_assemble (char *line) case BFD_RELOC_386_TLS_GOTIE: case BFD_RELOC_386_TLS_LE_32: case BFD_RELOC_X86_64_GOTTPOFF: + case BFD_RELOC_X86_64_CODE_4_GOTTPOFF: case BFD_RELOC_X86_64_TLSLD: as_bad (_("TLS relocation cannot be used with `%s'"), insn_name (&i.tm)); return; @@ -10328,6 +10331,7 @@ output_insn (void) is also needed for lea with R_X86_64_GOTPC32_TLSDESC relocation for GDesc -> IE/LE optimization. */ if (x86_elf_abi == X86_64_X32_ABI + && !is_any_apx_rex2_encoding () && i.operands == 2 && (i.reloc[0] == BFD_RELOC_X86_64_GOTTPOFF || i.reloc[0] == BFD_RELOC_X86_64_GOTPC32_TLSDESC) @@ -10693,7 +10697,9 @@ output_disp (fragS *insn_start_frag, offsetT insn_start_off) case BFD_RELOC_X86_64_TLSGD: case BFD_RELOC_X86_64_TLSLD: case BFD_RELOC_X86_64_GOTTPOFF: + case BFD_RELOC_X86_64_CODE_4_GOTTPOFF: case BFD_RELOC_X86_64_GOTPC32_TLSDESC: + case BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC: case BFD_RELOC_X86_64_TLSDESC_CALL: i.has_gotpc_tls_reloc = true; default: @@ -14177,7 +14183,9 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) case BFD_RELOC_X86_64_TLSGD: case BFD_RELOC_X86_64_TLSLD: case BFD_RELOC_X86_64_GOTTPOFF: + case BFD_RELOC_X86_64_CODE_4_GOTTPOFF: case BFD_RELOC_X86_64_GOTPC32_TLSDESC: + case BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC: value = 0; /* Fully resolved at runtime. No addend. */ /* Fallthrough */ case BFD_RELOC_386_TLS_LE: @@ -15782,6 +15790,14 @@ i386_validate_fix (fixS *fixp) return IS_ELF && fixp->fx_addsy && (!S_IS_DEFINED (fixp->fx_addsy) || S_IS_EXTERNAL (fixp->fx_addsy)); + + if (fixp->fx_tcbit3) + { + if (fixp->fx_r_type == BFD_RELOC_X86_64_GOTTPOFF) + fixp->fx_r_type = BFD_RELOC_X86_64_CODE_4_GOTTPOFF; + else if (fixp->fx_r_type == BFD_RELOC_X86_64_GOTPC32_TLSDESC) + fixp->fx_r_type = BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC; + } #endif if (fixp->fx_subsy) @@ -15926,6 +15942,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) case BFD_RELOC_X86_64_DTPOFF32: case BFD_RELOC_X86_64_DTPOFF64: case BFD_RELOC_X86_64_GOTTPOFF: + case BFD_RELOC_X86_64_CODE_4_GOTTPOFF: case BFD_RELOC_X86_64_TPOFF32: case BFD_RELOC_X86_64_TPOFF64: case BFD_RELOC_X86_64_GOTOFF64: @@ -15936,6 +15953,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) case BFD_RELOC_X86_64_GOTPLT64: case BFD_RELOC_X86_64_PLTOFF64: case BFD_RELOC_X86_64_GOTPC32_TLSDESC: + case BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC: case BFD_RELOC_X86_64_TLSDESC_CALL: case BFD_RELOC_RVA: case BFD_RELOC_VTABLE_ENTRY: @@ -16068,7 +16086,9 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) case BFD_RELOC_X86_64_TLSGD: case BFD_RELOC_X86_64_TLSLD: case BFD_RELOC_X86_64_GOTTPOFF: + case BFD_RELOC_X86_64_CODE_4_GOTTPOFF: case BFD_RELOC_X86_64_GOTPC32_TLSDESC: + case BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC: case BFD_RELOC_X86_64_TLSDESC_CALL: rel->addend = fixp->fx_offset - fixp->fx_size; break; diff --git a/gas/testsuite/gas/i386/x86-64-gottpoff.d b/gas/testsuite/gas/i386/x86-64-gottpoff.d new file mode 100644 index 00000000000..d42abccc6d9 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-gottpoff.d @@ -0,0 +1,19 @@ +#as: +#objdump: -dwr +#name: x86-64 gottpoff + +.*: +file format .* + + +Disassembly of section .text: + +0+ <_start>: + +[a-f0-9]+: 48 03 05 00 00 00 00 add 0x0\(%rip\),%rax # 7 <_start\+0x7> 3: R_X86_64_GOTTPOFF foo-0x4 + +[a-f0-9]+: 48 8b 05 00 00 00 00 mov 0x0\(%rip\),%rax # e <_start\+0xe> a: R_X86_64_GOTTPOFF foo-0x4 + +[a-f0-9]+: d5 48 03 05 00 00 00 00 add 0x0\(%rip\),%r16 # 16 <_start\+0x16> 12: R_X86_64_CODE_4_GOTTPOFF foo-0x4 + +[a-f0-9]+: d5 48 8b 25 00 00 00 00 mov 0x0\(%rip\),%r20 # 1e <_start\+0x1e> 1a: R_X86_64_CODE_4_GOTTPOFF foo-0x4 + +[a-f0-9]+: 48 03 05 00 00 00 00 add 0x0\(%rip\),%rax # 25 <_start\+0x25> 21: R_X86_64_GOTTPOFF foo-0x4 + +[a-f0-9]+: 48 8b 05 00 00 00 00 mov 0x0\(%rip\),%rax # 2c <_start\+0x2c> 28: R_X86_64_GOTTPOFF foo-0x4 + +[a-f0-9]+: d5 48 03 05 00 00 00 00 add 0x0\(%rip\),%r16 # 34 <_start\+0x34> 30: R_X86_64_CODE_4_GOTTPOFF foo-0x4 + +[a-f0-9]+: d5 48 8b 25 00 00 00 00 mov 0x0\(%rip\),%r20 # 3c <_start\+0x3c> 38: R_X86_64_CODE_4_GOTTPOFF foo-0x4 +#pass diff --git a/gas/testsuite/gas/i386/x86-64-gottpoff.s b/gas/testsuite/gas/i386/x86-64-gottpoff.s new file mode 100644 index 00000000000..6f8f9d1480c --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-gottpoff.s @@ -0,0 +1,15 @@ + .text +_start: + addq foo@GOTTPOFF(%rip), %rax + movq foo@GOTTPOFF(%rip), %rax + + addq foo@GOTTPOFF(%rip), %r16 + movq foo@GOTTPOFF(%rip), %r20 + + .intel_syntax noprefix + + addq rax, QWORD PTR [rip + foo@GOTTPOFF] + movq rax, QWORD PTR [rip + foo@GOTTPOFF] + + addq r16, QWORD PTR [rip + foo@GOTTPOFF] + movq r20, QWORD PTR [rip + foo@GOTTPOFF] diff --git a/gas/testsuite/gas/i386/x86-64-tlsdesc.d b/gas/testsuite/gas/i386/x86-64-tlsdesc.d new file mode 100644 index 00000000000..50c04e1e6b9 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-tlsdesc.d @@ -0,0 +1,17 @@ +#as: +#objdump: -dwr +#name: x86-64 tlsdesc + +.*: +file format .* + + +Disassembly of section .text: + +0+ <_start>: + +[a-f0-9]+: 48 8d 05 00 00 00 00 lea 0x0\(%rip\),%rax # 7 <_start\+0x7> 3: R_X86_64_GOTPC32_TLSDESC foo-0x4 + +[a-f0-9]+: d5 48 8d 05 00 00 00 00 lea 0x0\(%rip\),%r16 # f <_start\+0xf> b: R_X86_64_CODE_4_GOTPC32_TLSDESC foo-0x4 + +[a-f0-9]+: d5 48 8d 25 00 00 00 00 lea 0x0\(%rip\),%r20 # 17 <_start\+0x17> 13: R_X86_64_CODE_4_GOTPC32_TLSDESC foo-0x4 + +[a-f0-9]+: 48 8d 05 00 00 00 00 lea 0x0\(%rip\),%rax # 1e <_start\+0x1e> 1a: R_X86_64_GOTPC32_TLSDESC foo-0x4 + +[a-f0-9]+: d5 48 8d 05 00 00 00 00 lea 0x0\(%rip\),%r16 # 26 <_start\+0x26> 22: R_X86_64_CODE_4_GOTPC32_TLSDESC foo-0x4 + +[a-f0-9]+: d5 48 8d 25 00 00 00 00 lea 0x0\(%rip\),%r20 # 2e <_start\+0x2e> 2a: R_X86_64_CODE_4_GOTPC32_TLSDESC foo-0x4 +#pass diff --git a/gas/testsuite/gas/i386/x86-64-tlsdesc.s b/gas/testsuite/gas/i386/x86-64-tlsdesc.s new file mode 100644 index 00000000000..91f8d23dca4 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-tlsdesc.s @@ -0,0 +1,13 @@ + .text +_start: + leaq foo@TLSDESC(%rip), %rax + + leaq foo@TLSDESC(%rip), %r16 + leaq foo@TLSDESC(%rip), %r20 + + .intel_syntax noprefix + + leaq rax, QWORD PTR [rip + foo@TLSDESC] + + leaq r16, QWORD PTR [rip + foo@TLSDESC] + leaq r20, QWORD PTR [rip + foo@TLSDESC] diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp index 086dc47b5ba..d1b29c1d8a9 100644 --- a/gas/testsuite/gas/i386/x86-64.exp +++ b/gas/testsuite/gas/i386/x86-64.exp @@ -661,6 +661,9 @@ if [is_elf_format] then { run_dump_test "x86-64-gotpcrel-no-relax" run_dump_test "x86-64-gotpcrel-2" + run_dump_test "x86-64-gottpoff" + run_dump_test "x86-64-tlsdesc" + run_dump_test "x86-64-no-got" run_dump_test "x86-64-addend" diff --git a/include/elf/x86-64.h b/include/elf/x86-64.h index 2d610416bf4..bcf509a6f12 100644 --- a/include/elf/x86-64.h +++ b/include/elf/x86-64.h @@ -86,6 +86,12 @@ START_RELOC_NUMBERS (elf_x86_64_reloc_type) instruction starts at 4 bytes before the relocation offset, relaxable. */ RELOC_NUMBER (R_X86_64_CODE_4_GOTPCRELX, 43) + /* PC relative offset to IE GOT entry if the instruction starts at + 4 bytes before the relocation offset. */ + RELOC_NUMBER (R_X86_64_CODE_4_GOTTPOFF, 44) + /* 32 bit signed pc relative offset to TLS descriptor in the GOT if + instruction starts at 4 bytes before the relocation offset. */ + RELOC_NUMBER (R_X86_64_CODE_4_GOTPC32_TLSDESC, 45) RELOC_NUMBER (R_X86_64_GNU_VTINHERIT, 250) /* GNU C++ hack */ RELOC_NUMBER (R_X86_64_GNU_VTENTRY, 251) /* GNU C++ hack */ END_RELOC_NUMBERS (R_X86_64_max) diff --git a/ld/testsuite/ld-x86-64/tlsbindesc.dd b/ld/testsuite/ld-x86-64/tlsbindesc.dd index 5bdb659555f..4587cc751b4 100644 --- a/ld/testsuite/ld-x86-64/tlsbindesc.dd +++ b/ld/testsuite/ld-x86-64/tlsbindesc.dd @@ -165,6 +165,55 @@ Disassembly of section .text: +[0-9a-f]+: 90[ ]+nop * +[0-9a-f]+: c9[ ]+leave * +[0-9a-f]+: c3[ ]+ret * +# IE against global var + +[0-9a-f]+: d5 48 03 05 ([0-9a-f]{2} ){3}[ ]+add 0x[0-9a-f]+\(%rip\),%r16 +# [0-9a-f]+ +# -> R_X86_64_TPOFF64 sG2 + +[0-9a-f]+: 00 * +# IE -> LE against global var defined in exec + +[0-9a-f]+: d5 18 81 c1 60 ff ff[ ]+add \$0xf+60,%r17 +# sg1 + +[0-9a-f]+: ff * +# IE -> LE against local var + +[0-9a-f]+: d5 18 81 c2 80 ff ff[ ]+add \$0xf+80,%r18 +# sl1 + +[0-9a-f]+: ff * +# IE -> LE against hidden var + +[0-9a-f]+: d5 18 81 c3 a0 ff ff[ ]+add \$0xf+a0,%r19 +# sh1 + +[0-9a-f]+: ff * +# Direct access through %fs +# IE against global var + +[0-9a-f]+: d5 48 8b 25 ([0-9a-f]{2} ){3}[ ]+mov 0x[0-9a-f]+\(%rip\),%r20 +# [0-9a-f]+ +# -> R_X86_64_TPOFF64 sG5 + +[0-9a-f]+: 00 * +# IE->LE against local var + +[0-9a-f]+: d5 18 c7 c5 90 ff ff[ ]+mov \$0xf+90,%r21 +# sl5 + +[0-9a-f]+: ff * +# IE->LE against hidden var + +[0-9a-f]+: d5 18 c7 c6 b0 ff ff[ ]+mov \$0xf+b0,%r22 + +[0-9a-f]+: ff * +# GD -> IE because variable is not defined in executable + +[0-9a-f]+: d5 48 8b 05 ([0-9a-f]{2} ){3}[ ]+mov 0x[0-9a-f]+\(%rip\),%r16 +# [0-9a-f]+ +# -> R_X86_64_TPOFF64 sG1 + +[0-9a-f]+: 00 * +# GD -> IE because variable is not defined in executable where +# the variable is referenced through IE too + +[0-9a-f]+: d5 48 8b 0d ([0-9a-f]{2} ){3}[ ]+mov 0x[0-9a-f]+\(%rip\),%r17 +# [0-9a-f]+ +# -> R_X86_64_TPOFF64 sG2 + +[0-9a-f]+: 00 * +# GD -> LE with global variable defined in executable + +[0-9a-f]+: d5 18 c7 c2 60 ff ff[ ]+mov \$0xf+60,%r18 +# sg1 + +[0-9a-f]+: ff * +# GD -> LE with local variable defined in executable + +[0-9a-f]+: d5 18 c7 c3 80 ff ff[ ]+mov \$0xf+80,%r19 +# sl1 + +[0-9a-f]+: ff * +# GD -> LE with hidden variable defined in executable + +[0-9a-f]+: d5 18 c7 c4 a0 ff ff[ ]+mov \$0xf+a0,%r20 +# sh1 + +[0-9a-f]+: ff * [0-9a-f]+ <_start>: +[0-9a-f]+: 55[ ]+push %rbp diff --git a/ld/testsuite/ld-x86-64/tlsbindesc.rd b/ld/testsuite/ld-x86-64/tlsbindesc.rd index 682c4a066a2..daaea7a5371 100644 --- a/ld/testsuite/ld-x86-64/tlsbindesc.rd +++ b/ld/testsuite/ld-x86-64/tlsbindesc.rd @@ -15,12 +15,12 @@ Section Headers: +\[[ 0-9]+\] .dynsym +.* +\[[ 0-9]+\] .dynstr +.* +\[[ 0-9]+\] .rela.dyn +.* - +\[[ 0-9]+\] .text +PROGBITS +0+401000 0+1000 0+1fd 00 +AX +0 +0 +4096 - +\[[ 0-9]+\] .tdata +PROGBITS +0+6011fd 0+11fd 0+60 00 WAT +0 +0 +1 - +\[[ 0-9]+\] .tbss +NOBITS +0+60125d 0+125d 0+40 00 WAT +0 +0 +1 - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+601260 0+1260 0+100 10 +WA +4 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +0+601360 0+1360 0+20 08 +WA +0 +0 +8 - +\[[ 0-9]+\] .got.plt +PROGBITS +0+601380 0+1380 0+18 08 +WA +0 +0 +8 + +\[[ 0-9]+\] .text +PROGBITS +0+401000 0+1000 0+25d 00 +AX +0 +0 +4096 + +\[[ 0-9]+\] .tdata +PROGBITS +0+60125d 0+125d 0+60 00 WAT +0 +0 +1 + +\[[ 0-9]+\] .tbss +NOBITS +0+6012bd 0+12bd 0+40 00 WAT +0 +0 +1 + +\[[ 0-9]+\] .dynamic +DYNAMIC +0+6012c0 0+12c0 0+100 10 +WA +4 +0 +8 + +\[[ 0-9]+\] .got +PROGBITS +0+6013c0 0+13c0 0+20 08 +WA +0 +0 +8 + +\[[ 0-9]+\] .got.plt +PROGBITS +0+6013e0 0+13e0 0+18 08 +WA +0 +0 +8 +\[[ 0-9]+\] .symtab +.* +\[[ 0-9]+\] .strtab +.* +\[[ 0-9]+\] .shstrtab +.* @@ -28,7 +28,7 @@ Key to Flags: #... Elf file type is EXEC \(Executable file\) -Entry point 0x401105 +Entry point 0x401165 There are [0-9]+ program headers, starting at offset [0-9]+ Program Headers: @@ -36,10 +36,10 @@ Program Headers: +PHDR.* +INTERP.* .*Requesting program interpreter.* - +LOAD +0x0+ 0x0+400000 0x0+400000 0x0+11fd 0x0+11fd R E 0x200000 - +LOAD +0x0+11fd 0x0+6011fd 0x0+6011fd 0x0+19b 0x0+19b RW +0x200000 - +DYNAMIC +0x0+1260 0x0+601260 0x0+601260 0x0+100 0x0+100 RW +0x8 - +TLS +0x0+11fd 0x0+6011fd 0x0+6011fd 0x0+60 0x0+a0 R +0x1 + +LOAD +0x0+ 0x0+400000 0x0+400000 0x0+125d 0x0+125d R E 0x200000 + +LOAD +0x0+125d 0x0+60125d 0x0+60125d 0x0+19b 0x0+19b RW +0x200000 + +DYNAMIC +0x0+12c0 0x0+6012c0 0x0+6012c0 0x0+100 0x0+100 RW +0x8 + +TLS +0x0+125d 0x0+60125d 0x0+60125d 0x0+60 0x0+a0 R +0x1 Section to Segment mapping: +Segment Sections... @@ -52,10 +52,10 @@ Program Headers: Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries: +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend -0+601360 +0+100000012 R_X86_64_TPOFF64 +0+ sG5 \+ 0 -0+601368 +0+200000012 R_X86_64_TPOFF64 +0+ sG2 \+ 0 -0+601370 +0+300000012 R_X86_64_TPOFF64 +0+ sG6 \+ 0 -0+601378 +0+400000012 R_X86_64_TPOFF64 +0+ sG1 \+ 0 +0+6013c0 +0+100000012 R_X86_64_TPOFF64 +0+ sG5 \+ 0 +0+6013c8 +0+200000012 R_X86_64_TPOFF64 +0+ sG2 \+ 0 +0+6013d0 +0+300000012 R_X86_64_TPOFF64 +0+ sG6 \+ 0 +0+6013d8 +0+400000012 R_X86_64_TPOFF64 +0+ sG1 \+ 0 Symbol table '\.dynsym' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name @@ -88,8 +88,8 @@ Symbol table '\.symtab' contains [0-9]+ entries: +[0-9]+: 0+9c +0 +TLS +LOCAL +DEFAULT +8 bl8 .* FILE +LOCAL +DEFAULT +ABS +[0-9]+: 0+a0 +0 +TLS +LOCAL +DEFAULT +7 _TLS_MODULE_BASE_ - +[0-9]+: 0+601260 +0 +OBJECT +LOCAL +DEFAULT +9 _DYNAMIC - +[0-9]+: 0+601380 +0 +OBJECT +LOCAL +DEFAULT +11 _GLOBAL_OFFSET_TABLE_ + +[0-9]+: 0+6012c0 +0 +OBJECT +LOCAL +DEFAULT +9 _DYNAMIC + +[0-9]+: 0+6013e0 +0 +OBJECT +LOCAL +DEFAULT +11 _GLOBAL_OFFSET_TABLE_ +[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +7 sg8 +[0-9]+: 0+7c +0 +TLS +GLOBAL +DEFAULT +8 bg8 +[0-9]+: 0+74 +0 +TLS +GLOBAL +DEFAULT +8 bg6 @@ -104,7 +104,7 @@ Symbol table '\.symtab' contains [0-9]+ entries: +[0-9]+: 0+58 +0 +TLS +GLOBAL +HIDDEN +7 sh7 +[0-9]+: 0+5c +0 +TLS +GLOBAL +HIDDEN +7 sh8 +[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +7 sg1 - +[0-9]+: 0+401105 +0 +FUNC +GLOBAL +DEFAULT +6 _start + +[0-9]+: 0+401165 +0 +FUNC +GLOBAL +DEFAULT +6 _start +[0-9]+: 0+4c +0 +TLS +GLOBAL +HIDDEN +7 sh4 +[0-9]+: 0+78 +0 +TLS +GLOBAL +DEFAULT +8 bg7 +[0-9]+: 0+50 +0 +TLS +GLOBAL +HIDDEN +7 sh5 diff --git a/ld/testsuite/ld-x86-64/tlsbindesc.s b/ld/testsuite/ld-x86-64/tlsbindesc.s index cbebf02171d..b80e5f192c0 100644 --- a/ld/testsuite/ld-x86-64/tlsbindesc.s +++ b/ld/testsuite/ld-x86-64/tlsbindesc.s @@ -126,3 +126,42 @@ fn2: leave ret + + /* IE against global var */ + addq sG2@gottpoff(%rip), %r16 + + /* IE -> LE against global var defined in exec */ + addq sg1@gottpoff(%rip), %r17 + + /* IE -> LE against local var */ + addq sl1@gottpoff(%rip), %r18 + + /* IE -> LE against hidden var */ + addq sh1@gottpoff(%rip), %r19 + + /* Direct access through %fs */ + + /* IE against global var */ + movq sG5@gottpoff(%rip), %r20 + + /* IE->LE against local var */ + movq sl5@gottpoff(%rip), %r21 + + /* IE->LE against hidden var */ + movq sh5@gottpoff(%rip), %r22 + + /* GD -> IE because variable is not defined in executable */ + leaq sG1@tlsdesc(%rip), %r16 + + /* GD -> IE because variable is not defined in executable where + the variable is referenced through IE too */ + leaq sG2@tlsdesc(%rip), %r17 + + /* GD -> LE with global variable defined in executable */ + leaq sg1@tlsdesc(%rip), %r18 + + /* GD -> LE with local variable defined in executable */ + leaq sl1@tlsdesc(%rip), %r19 + + /* GD -> LE with hidden variable defined in executable */ + leaq sh1@tlsdesc(%rip), %r20 From patchwork Thu Sep 21 10:11:41 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: 76513 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 6861D3857C45 for ; Thu, 21 Sep 2023 10:12:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6861D3857C45 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1695291150; bh=Ybs6Y9siJbrzL95iSUza9KJaPeOVgTdD6Yccz4bJFWo=; 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=xDXjH+ZB5b+er6ZZoJTQxm0f0uyfVVJygqiGtX8wmc5RhvTjRJJP5FwMH83/v/OnP S8P+CRGIwYuX/yqLzB4LXo1BIxZtyhpCvo1VwWEn5JGnhVPGry9S7XONRTWSm3aYsF yN8wXt9NwhvNcQuPFgg9zXcoInIEFCuWFRQi5J9I= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.43]) by sourceware.org (Postfix) with ESMTPS id 73E8A3858C2B for ; Thu, 21 Sep 2023 10:11:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 73E8A3858C2B X-IronPort-AV: E=McAfee;i="6600,9927,10839"; a="466786997" X-IronPort-AV: E=Sophos;i="6.03,165,1694761200"; d="scan'208";a="466786997" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Sep 2023 03:11:58 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10839"; a="817319514" X-IronPort-AV: E=Sophos;i="6.03,165,1694761200"; d="scan'208";a="817319514" Received: from scymds04.sc.intel.com ([10.82.73.238]) by fmsmga004.fm.intel.com with ESMTP; 21 Sep 2023 03:11: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 5EB9B181F52B; Thu, 21 Sep 2023 03:11:56 -0700 (PDT) To: binutils@sourceware.org Cc: jbeulich@suse.com, hongjiu.lu@intel.com, ccoutant@gmail.com, hjl-tools Subject: [PATCH 6/6] Gold: Handle R_X86_64_CODE_4_GOTPC32_TLSDESC/R_X86_64_CODE_4_GOTTPOFF Date: Thu, 21 Sep 2023 10:11:41 +0000 Message-Id: <20230921101141.2518818-7-lili.cui@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230921101141.2518818-1-lili.cui@intel.com> References: <20230921101141.2518818-1-lili.cui@intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 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: hjl-tools Handle R_X86_64_CODE_4_GOTTPOFF and R_X86_64_CODE_4_GOTPC32_TLSDESC. Convert add name@gottpoff(%rip), %reg mov name@gottpoff(%rip), %reg to add $name@tpoff, %reg mov $name@tpoff, %reg and lea name@tlsdesc(%rip), %reg to mov $name@tpoff, %reg mov name@gottpoff(%rip), %reg if the instruction is encoded with the REX2 prefix when possible. elfcpp/ * x86_64.h (R_X86_64_CODE_4_GOTTPOFF): New. (R_X86_64_CODE_4_GOTPC32_TLSDESC): Likewise. gold/ * x86_64.cc (Target_x86_64::optimize_tls_reloc): Handle R_X86_64_CODE_4_GOTPC32_TLSDESC and R_X86_64_CODE_4_GOTTPOFF. (Target_x86_64::Scan::get_reference_flags): Likewise. (Target_x86_64::Scan::local): Likewise. (Target_x86_64::Scan::global): Likewise. (Target_x86_64::Relocate::relocate): Likewise. (Target_x86_64::Relocate::relocate_tls): Likewise. (Target_x86_64::Relocate::tls_desc_gd_to_ie): Handle R_X86_64_CODE_4_GOTPC32_TLSDESC. (Target_x86_64::Relocate::tls_desc_gd_to_le): Likewise. (Target_x86_64::Relocate::tls_ie_to_le): Handle. R_X86_64_CODE_4_GOTTPOFF. * testsuite/Makefile.am: Add x86_64_ie_to_le test. * testsuite/Makefile.in: Regenerated. * testsuite/x86_64_gd_to_le.s: Add R_X86_64_CODE_4_GOTPC32_TLSDESC test. * testsuite/x86_64_gd_to_le.sh: Check GDesc to LE conversion. * testsuite/x86_64_ie_to_le.s: New file. * testsuite/x86_64_ie_to_le.sh: Likewise. --- elfcpp/x86_64.h | 8 ++ gold/testsuite/Makefile.am | 11 +++ gold/testsuite/Makefile.in | 17 ++++ gold/testsuite/x86_64_gd_to_le.s | 1 + gold/testsuite/x86_64_gd_to_le.sh | 1 + gold/testsuite/x86_64_ie_to_le.s | 17 ++++ gold/testsuite/x86_64_ie_to_le.sh | 29 ++++++ gold/x86_64.cc | 156 +++++++++++++++++++++++------- 8 files changed, 203 insertions(+), 37 deletions(-) create mode 100644 gold/testsuite/x86_64_ie_to_le.s create mode 100755 gold/testsuite/x86_64_ie_to_le.sh diff --git a/elfcpp/x86_64.h b/elfcpp/x86_64.h index 97a87ae424d..da6ac191734 100644 --- a/elfcpp/x86_64.h +++ b/elfcpp/x86_64.h @@ -102,6 +102,14 @@ enum // GOT if the instruction starts at 4 // bytes before the relocation offset, // relaxable. + R_X86_64_CODE_4_GOTTPOFF = 44, // 32 bit signed PC relative offset to + // GOT entry for IE symbol if the + // instruction starts at 4 bytes before + // the relocation offset. + R_X86_64_CODE_4_GOTPC32_TLSDESC = 45, // 32-bit PC relative to TLS + // descriptor in GOT if the + // instruction starts at 4 bytes + // before the relocation offset. // GNU vtable garbage collection extensions. R_X86_64_GNU_VTINHERIT = 250, R_X86_64_GNU_VTENTRY = 251 diff --git a/gold/testsuite/Makefile.am b/gold/testsuite/Makefile.am index df9405c1aac..0685e917d0e 100644 --- a/gold/testsuite/Makefile.am +++ b/gold/testsuite/Makefile.am @@ -1244,6 +1244,17 @@ x86_64_gd_to_le: x86_64_gd_to_le.o gcctestdir/ld x86_64_gd_to_le.stdout: x86_64_gd_to_le $(TEST_OBJDUMP) -dw $< > $@ +check_SCRIPTS += x86_64_ie_to_le.sh +check_DATA += x86_64_ie_to_le.stdout +MOSTLYCLEANFILES += x86_64_ie_to_le + +x86_64_ie_to_le.o: x86_64_ie_to_le.s + $(TEST_AS) --64 -o $@ $< +x86_64_ie_to_le: x86_64_ie_to_le.o gcctestdir/ld + gcctestdir/ld -o $@ $< +x86_64_ie_to_le.stdout: x86_64_ie_to_le + $(TEST_OBJDUMP) -dw $< > $@ + check_SCRIPTS += x86_64_overflow_pc32.sh check_DATA += x86_64_overflow_pc32.err MOSTLYCLEANFILES += x86_64_overflow_pc32.err diff --git a/gold/testsuite/Makefile.in b/gold/testsuite/Makefile.in index fb0eb12553b..06be15051e5 100644 --- a/gold/testsuite/Makefile.in +++ b/gold/testsuite/Makefile.in @@ -296,6 +296,7 @@ check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \ @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_31 = x86_64_mov_to_lea.sh \ @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ x86_64_indirect_call_to_direct.sh \ @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ x86_64_gd_to_le.sh \ +@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ x86_64_ie_to_le.sh \ @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ x86_64_overflow_pc32.sh \ @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ x32_overflow_pc32.sh \ @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ pr23016_1.sh \ @@ -319,6 +320,7 @@ check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \ @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ x86_64_indirect_call_to_direct1.stdout \ @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ x86_64_indirect_jump_to_direct1.stdout \ @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ x86_64_gd_to_le.stdout \ +@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ x86_64_ie_to_le.stdout \ @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ x86_64_overflow_pc32.err \ @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ x32_overflow_pc32.err \ @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ pr23016_1.stdout \ @@ -343,6 +345,7 @@ check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \ @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ x86_64_indirect_call_to_direct1 \ @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ x86_64_indirect_jump_to_direct1 \ @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ x86_64_gd_to_le \ +@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ x86_64_ie_to_le \ @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ x86_64_overflow_pc32.err \ @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ x32_overflow_pc32.err @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_34 = pr17704a_test @@ -5736,6 +5739,13 @@ x86_64_gd_to_le.sh.log: x86_64_gd_to_le.sh --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +x86_64_ie_to_le.sh.log: x86_64_ie_to_le.sh + @p='x86_64_ie_to_le.sh'; \ + b='x86_64_ie_to_le.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) x86_64_overflow_pc32.sh.log: x86_64_overflow_pc32.sh @p='x86_64_overflow_pc32.sh'; \ b='x86_64_overflow_pc32.sh'; \ @@ -8474,6 +8484,13 @@ uninstall-am: @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ gcctestdir/ld -o $@ $< @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@x86_64_gd_to_le.stdout: x86_64_gd_to_le @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(TEST_OBJDUMP) -dw $< > $@ + +@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@x86_64_ie_to_le.o: x86_64_ie_to_le.s +@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(TEST_AS) --64 -o $@ $< +@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@x86_64_ie_to_le: x86_64_ie_to_le.o gcctestdir/ld +@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ gcctestdir/ld -o $@ $< +@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@x86_64_ie_to_le.stdout: x86_64_ie_to_le +@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(TEST_OBJDUMP) -dw $< > $@ @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@x86_64_overflow_pc32.o: x86_64_overflow_pc32.s @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(TEST_AS) -o $@ $< @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@x86_64_overflow_pc32.err: x86_64_overflow_pc32.o gcctestdir/ld diff --git a/gold/testsuite/x86_64_gd_to_le.s b/gold/testsuite/x86_64_gd_to_le.s index dcdd303184d..79f9c48f526 100644 --- a/gold/testsuite/x86_64_gd_to_le.s +++ b/gold/testsuite/x86_64_gd_to_le.s @@ -7,6 +7,7 @@ _start: subq $8, %rsp .cfi_def_cfa_offset 16 leaq foo@TLSDESC(%rip), %r9 + leaq foo@TLSDESC(%rip), %r29 movq %r9, %rax call *foo@TLSCALL(%rax) addq %fs:0, %rax diff --git a/gold/testsuite/x86_64_gd_to_le.sh b/gold/testsuite/x86_64_gd_to_le.sh index 82a6f985b88..5b0a043e0a8 100755 --- a/gold/testsuite/x86_64_gd_to_le.sh +++ b/gold/testsuite/x86_64_gd_to_le.sh @@ -24,3 +24,4 @@ set -e grep -q "mov[ \t]\+\$0x[a-f0-9]\+,%r9" x86_64_gd_to_le.stdout +grep -q "mov[ \t]\+\$0x[a-f0-9]\+,%r29" x86_64_gd_to_le.stdout diff --git a/gold/testsuite/x86_64_ie_to_le.s b/gold/testsuite/x86_64_ie_to_le.s new file mode 100644 index 00000000000..c5752068866 --- /dev/null +++ b/gold/testsuite/x86_64_ie_to_le.s @@ -0,0 +1,17 @@ + .text + .p2align 4 + .globl _start + .type _start, @function +_start: + addq foo@gottpoff(%rip), %r12 + movq foo@gottpoff(%rip), %rax + addq foo@gottpoff(%rip), %r16 + movq foo@gottpoff(%rip), %r20 + .size _start, .-_start + .section .tdata,"awT",@progbits + .align 4 + .type foo, @object + .size foo, 4 +foo: + .long 30 + .section .note.GNU-stack,"",@progbits diff --git a/gold/testsuite/x86_64_ie_to_le.sh b/gold/testsuite/x86_64_ie_to_le.sh new file mode 100755 index 00000000000..417f0bfc636 --- /dev/null +++ b/gold/testsuite/x86_64_ie_to_le.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +# x86_64_ie_to_le.sh -- a test for IE -> LE conversion. + +# Copyright (C) 2023 Free Software Foundation, Inc. + +# This file is part of gold. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, +# MA 02110-1301, USA. + +set -e + +grep -q "add[ \t]\+\$0x[a-f0-9]\+,%r12" x86_64_ie_to_le.stdout +grep -q "mov[ \t]\+\$0x[a-f0-9]\+,%rax" x86_64_ie_to_le.stdout +grep -q "add[ \t]\+\$0x[a-f0-9]\+,%r16" x86_64_ie_to_le.stdout +grep -q "mov[ \t]\+\$0x[a-f0-9]\+,%r20" x86_64_ie_to_le.stdout diff --git a/gold/x86_64.cc b/gold/x86_64.cc index b7be9bf0d48..bc4260db5f3 100644 --- a/gold/x86_64.cc +++ b/gold/x86_64.cc @@ -1110,7 +1110,8 @@ class Target_x86_64 : public Sized_target // Adjust TLS relocation type based on the options and whether this // is a local symbol. static tls::Tls_optimization - optimize_tls_reloc(bool is_final, int r_type); + optimize_tls_reloc(bool is_final, int r_type, size_t r_offset, + const unsigned char* reloc_view); // Get the GOT section, creating it if necessary. Output_data_got<64, false>* @@ -2878,11 +2879,13 @@ Target_x86_64::got_mod_index_entry(Symbol_table* symtab, Layout* layout, // Optimize the TLS relocation type based on what we know about the // symbol. IS_FINAL is true if the final address of this symbol is -// known at link time. +// known at link time. RELOC_VIEW points to the relocation offset. template tls::Tls_optimization -Target_x86_64::optimize_tls_reloc(bool is_final, int r_type) +Target_x86_64::optimize_tls_reloc(bool is_final, int r_type, + size_t r_offset, + const unsigned char* reloc_view) { // If we are generating a shared library, then we can't do anything // in the linker. @@ -2891,6 +2894,10 @@ Target_x86_64::optimize_tls_reloc(bool is_final, int r_type) switch (r_type) { + case elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC: + if (r_offset <= 4 || *(reloc_view - 4) != 0xd5) + return tls::TLSOPT_NONE; + // Fall through. case elfcpp::R_X86_64_TLSGD: case elfcpp::R_X86_64_GOTPC32_TLSDESC: case elfcpp::R_X86_64_TLSDESC_CALL: @@ -2913,6 +2920,10 @@ Target_x86_64::optimize_tls_reloc(bool is_final, int r_type) // Another Local-Dynamic reloc. return tls::TLSOPT_TO_LE; + case elfcpp::R_X86_64_CODE_4_GOTTPOFF: + if (r_offset <= 4 || *(reloc_view - 4) != 0xd5) + return tls::TLSOPT_NONE; + // Fall through. case elfcpp::R_X86_64_GOTTPOFF: // These are Initial-Exec relocs which get the thread offset // from the GOT. If we know that we are linking against the @@ -2979,11 +2990,13 @@ Target_x86_64::Scan::get_reference_flags(unsigned int r_type) case elfcpp::R_X86_64_TLSGD: // Global-dynamic case elfcpp::R_X86_64_GOTPC32_TLSDESC: // Global-dynamic (from ~oliva url) + case elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC: case elfcpp::R_X86_64_TLSDESC_CALL: case elfcpp::R_X86_64_TLSLD: // Local-dynamic case elfcpp::R_X86_64_DTPOFF32: case elfcpp::R_X86_64_DTPOFF64: case elfcpp::R_X86_64_GOTTPOFF: // Initial-exec + case elfcpp::R_X86_64_CODE_4_GOTTPOFF: case elfcpp::R_X86_64_TPOFF32: // Local-exec return Symbol::TLS_REF; @@ -3148,6 +3161,8 @@ Target_x86_64::Scan::local(Symbol_table* symtab, target->make_local_ifunc_plt_entry(symtab, layout, object, r_sym); } + const unsigned char* reloc_view = NULL; + switch (r_type) { case elfcpp::R_X86_64_NONE: @@ -3345,6 +3360,13 @@ need_got: break; // These are initial tls relocs, which are expected when linking + case elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC: + case elfcpp::R_X86_64_CODE_4_GOTTPOFF: + { + section_size_type stype; + reloc_view = object->section_contents(data_shndx, &stype, true); + } + // Fall through. case elfcpp::R_X86_64_TLSGD: // Global-dynamic case elfcpp::R_X86_64_GOTPC32_TLSDESC: // Global-dynamic (from ~oliva url) case elfcpp::R_X86_64_TLSDESC_CALL: @@ -3355,9 +3377,11 @@ need_got: case elfcpp::R_X86_64_TPOFF32: // Local-exec { bool output_is_shared = parameters->options().shared(); + size_t r_offset = reloc.get_r_offset(); const tls::Tls_optimization optimized_type = Target_x86_64::optimize_tls_reloc(!output_is_shared, - r_type); + r_type, r_offset, + reloc_view + r_offset); switch (r_type) { case elfcpp::R_X86_64_TLSGD: // General-dynamic @@ -3386,6 +3410,7 @@ need_got: break; case elfcpp::R_X86_64_GOTPC32_TLSDESC: + case elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC: target->define_tls_base_symbol(symtab, layout); if (optimized_type == tls::TLSOPT_NONE) { @@ -3438,6 +3463,7 @@ need_got: break; case elfcpp::R_X86_64_GOTTPOFF: // Initial-exec + case elfcpp::R_X86_64_CODE_4_GOTTPOFF: layout->set_has_static_tls(); if (optimized_type == tls::TLSOPT_NONE) { @@ -3615,6 +3641,8 @@ Target_x86_64::Scan::global(Symbol_table* symtab, && this->reloc_needs_plt_for_ifunc(object, r_type)) target->make_plt_entry(symtab, layout, gsym); + const unsigned char *reloc_view = NULL; + switch (r_type) { case elfcpp::R_X86_64_NONE: @@ -3872,6 +3900,13 @@ Target_x86_64::Scan::global(Symbol_table* symtab, break; // These are initial tls relocs, which are expected for global() + case elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC: + case elfcpp::R_X86_64_CODE_4_GOTTPOFF: + { + section_size_type stype; + reloc_view = object->section_contents(data_shndx, &stype, true); + } + // Fall through. case elfcpp::R_X86_64_TLSGD: // Global-dynamic case elfcpp::R_X86_64_GOTPC32_TLSDESC: // Global-dynamic (from ~oliva url) case elfcpp::R_X86_64_TLSDESC_CALL: @@ -3884,11 +3919,15 @@ Target_x86_64::Scan::global(Symbol_table* symtab, // For the Initial-Exec model, we can treat undef symbols as final // when building an executable. const bool is_final = (gsym->final_value_is_known() || - (r_type == elfcpp::R_X86_64_GOTTPOFF && + ((r_type == elfcpp::R_X86_64_GOTTPOFF || + r_type == elfcpp::R_X86_64_CODE_4_GOTTPOFF) && gsym->is_undefined() && parameters->options().output_is_executable())); + size_t r_offset = reloc.get_r_offset(); const tls::Tls_optimization optimized_type - = Target_x86_64::optimize_tls_reloc(is_final, r_type); + = Target_x86_64::optimize_tls_reloc(is_final, r_type, + r_offset, + reloc_view + r_offset); switch (r_type) { case elfcpp::R_X86_64_TLSGD: // General-dynamic @@ -3917,6 +3956,7 @@ Target_x86_64::Scan::global(Symbol_table* symtab, break; case elfcpp::R_X86_64_GOTPC32_TLSDESC: + case elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC: target->define_tls_base_symbol(symtab, layout); if (optimized_type == tls::TLSOPT_NONE) { @@ -3965,6 +4005,7 @@ Target_x86_64::Scan::global(Symbol_table* symtab, break; case elfcpp::R_X86_64_GOTTPOFF: // Initial-exec + case elfcpp::R_X86_64_CODE_4_GOTTPOFF: layout->set_has_static_tls(); if (optimized_type == tls::TLSOPT_NONE) { @@ -4560,11 +4601,13 @@ Target_x86_64::Relocate::relocate( // These are initial tls relocs, which are expected when linking case elfcpp::R_X86_64_TLSGD: // Global-dynamic case elfcpp::R_X86_64_GOTPC32_TLSDESC: // Global-dynamic (from ~oliva url) + case elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC: case elfcpp::R_X86_64_TLSDESC_CALL: case elfcpp::R_X86_64_TLSLD: // Local-dynamic case elfcpp::R_X86_64_DTPOFF32: case elfcpp::R_X86_64_DTPOFF64: case elfcpp::R_X86_64_GOTTPOFF: // Initial-exec + case elfcpp::R_X86_64_CODE_4_GOTTPOFF: case elfcpp::R_X86_64_TPOFF32: // Local-exec this->relocate_tls(relinfo, target, relnum, rela, r_type, gsym, psymval, view, address, view_size); @@ -4636,8 +4679,10 @@ Target_x86_64::Relocate::relocate_tls( const bool is_final = (gsym == NULL ? !parameters->options().shared() : gsym->final_value_is_known()); + size_t r_offset = rela.get_r_offset(); tls::Tls_optimization optimized_type - = Target_x86_64::optimize_tls_reloc(is_final, r_type); + = Target_x86_64::optimize_tls_reloc(is_final, r_type, + r_offset, view); switch (r_type) { case elfcpp::R_X86_64_TLSGD: // Global-dynamic @@ -4704,6 +4749,7 @@ Target_x86_64::Relocate::relocate_tls( break; case elfcpp::R_X86_64_GOTPC32_TLSDESC: // Global-dynamic (from ~oliva url) + case elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC: case elfcpp::R_X86_64_TLSDESC_CALL: if (!is_executable && optimized_type == tls::TLSOPT_TO_LE) { @@ -4729,7 +4775,8 @@ Target_x86_64::Relocate::relocate_tls( ? GOT_TYPE_TLS_OFFSET : GOT_TYPE_TLS_DESC); unsigned int got_offset = 0; - if (r_type == elfcpp::R_X86_64_GOTPC32_TLSDESC + if ((r_type == elfcpp::R_X86_64_GOTPC32_TLSDESC + || r_type == elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC) && optimized_type == tls::TLSOPT_NONE) { // We created GOT entries in the .got.tlsdesc portion of @@ -4760,7 +4807,8 @@ Target_x86_64::Relocate::relocate_tls( } else if (optimized_type == tls::TLSOPT_NONE) { - if (r_type == elfcpp::R_X86_64_GOTPC32_TLSDESC) + if (r_type == elfcpp::R_X86_64_GOTPC32_TLSDESC + || r_type == elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC) { // Relocate the field with the offset of the pair of GOT // entries. @@ -4845,6 +4893,7 @@ Target_x86_64::Relocate::relocate_tls( break; case elfcpp::R_X86_64_GOTTPOFF: // Initial-exec + case elfcpp::R_X86_64_CODE_4_GOTTPOFF: if (gsym != NULL && gsym->is_undefined() && parameters->options().output_is_executable()) @@ -5051,7 +5100,8 @@ Target_x86_64::Relocate::tls_desc_gd_to_ie( typename elfcpp::Elf_types::Elf_Addr address, section_size_type view_size) { - if (r_type == elfcpp::R_X86_64_GOTPC32_TLSDESC) + if (r_type == elfcpp::R_X86_64_GOTPC32_TLSDESC + || r_type == elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC) { // LP64: leaq foo@tlsdesc(%rip), %rax // ==> movq foo@gottpoff(%rip), %rax @@ -5060,7 +5110,8 @@ Target_x86_64::Relocate::tls_desc_gd_to_ie( tls::check_range(relinfo, relnum, rela.get_r_offset(), view_size, -3); tls::check_range(relinfo, relnum, rela.get_r_offset(), view_size, 4); tls::check_tls(relinfo, relnum, rela.get_r_offset(), - (((view[-3] & 0xfb) == 0x48 + ((r_type == elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC + || (view[-3] & 0xfb) == 0x48 || (size == 32 && (view[-3] & 0xfb) == 0x40)) && view[-2] == 0x8d && (view[-1] & 0xc7) == 0x05)); @@ -5132,6 +5183,22 @@ Target_x86_64::Relocate::tls_desc_gd_to_le( value -= tls_segment->memsz(); Relocate_functions::rela32(view, value, 0); } + else if (r_type == elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC) + { + // REX2: lea foo@tlsdesc(%rip), %reg + // ==> mov foo@tpoff, %reg + tls::check_range(relinfo, relnum, rela.get_r_offset(), view_size, -3); + tls::check_range(relinfo, relnum, rela.get_r_offset(), view_size, 4); + tls::check_tls(relinfo, relnum, rela.get_r_offset(), + (view[-2] == 0x8d + && (view[-1] & 0xc7) == 0x05)); + unsigned char rex2_mask = 4 | 4 << 4; + view[-3] = (view[-3] & ~rex2_mask) | ((view[-3] & rex2_mask) >> 2); + view[-2] = 0xc7; + view[-1] = 0xc0 | ((view[-1] >> 3) & 7); + value -= tls_segment->memsz(); + Relocate_functions::rela32(view, value, 0); + } else { // LP64: call *foo@tlscall(%rax) @@ -5231,7 +5298,7 @@ Target_x86_64::Relocate::tls_ie_to_le( size_t relnum, Output_segment* tls_segment, const elfcpp::Rela& rela, - unsigned int, + unsigned int r_type, typename elfcpp::Elf_types::Elf_Addr value, unsigned char* view, section_size_type view_size) @@ -5250,35 +5317,50 @@ Target_x86_64::Relocate::tls_ie_to_le( unsigned char op3 = view[-1]; unsigned char reg = op3 >> 3; - if (op2 == 0x8b) + if (r_type == elfcpp::R_X86_64_GOTTPOFF) { - // movq - if (op1 == 0x4c) - view[-3] = 0x49; - else if (size == 32 && op1 == 0x44) - view[-3] = 0x41; - view[-2] = 0xc7; - view[-1] = 0xc0 | reg; - } - else if (reg == 4) - { - // Special handling for %rsp. - if (op1 == 0x4c) - view[-3] = 0x49; - else if (size == 32 && op1 == 0x44) - view[-3] = 0x41; - view[-2] = 0x81; - view[-1] = 0xc0 | reg; + if (op2 == 0x8b) + { + // movq + if (op1 == 0x4c) + view[-3] = 0x49; + else if (size == 32 && op1 == 0x44) + view[-3] = 0x41; + view[-2] = 0xc7; + view[-1] = 0xc0 | reg; + } + else if (reg == 4) + { + // Special handling for %rsp. + if (op1 == 0x4c) + view[-3] = 0x49; + else if (size == 32 && op1 == 0x44) + view[-3] = 0x41; + view[-2] = 0x81; + view[-1] = 0xc0 | reg; + } + else + { + // addq + if (op1 == 0x4c) + view[-3] = 0x4d; + else if (size == 32 && op1 == 0x44) + view[-3] = 0x45; + view[-2] = 0x8d; + view[-1] = 0x80 | reg | (reg << 3); + } } else { - // addq - if (op1 == 0x4c) - view[-3] = 0x4d; - else if (size == 32 && op1 == 0x44) - view[-3] = 0x45; - view[-2] = 0x8d; - view[-1] = 0x80 | reg | (reg << 3); + if (op2 == 0x8b) + op2 = 0xc7; + else + op2 = 0x81; + + unsigned char rex2_mask = 4 | 4 << 4; + view[-3] = (view[-3] & ~rex2_mask) | ((view[-3] & rex2_mask) >> 2); + view[-2] = op2; + view[-1] = 0xc0 | reg; } if (tls_segment != NULL)