From patchwork Tue Jul 4 15:18:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 115827 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f45:0:b0:3ea:f831:8777 with SMTP id v5csp1294127vqx; Tue, 4 Jul 2023 08:18:47 -0700 (PDT) X-Google-Smtp-Source: APBJJlGdi62Uxqui8cqDZLU1FYQcVqfdpWHoupb4bs/UWCUn5U2v4Ztu4UbOaPjd3y35nj2XjsXk X-Received: by 2002:a17:906:c788:b0:98d:e139:1ca with SMTP id cw8-20020a170906c78800b0098de13901camr8914139ejb.27.1688483927682; Tue, 04 Jul 2023 08:18:47 -0700 (PDT) Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id bx14-20020a170906a1ce00b0098d373fa9e4si12476474ejb.1007.2023.07.04.08.18.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jul 2023 08:18:47 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b="VnkgU/jN"; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 4D333385700C for ; Tue, 4 Jul 2023 15:18:40 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4D333385700C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688483920; bh=K5F12ocmPGLmEAskOXDMxbIxUF1SgEsw+a4iVAKuvzY=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=VnkgU/jN/hPUbLREEBdOq/0UGjJmlDXDD71ZzevC+qfmYmVz3VI40uK652d9MjOPr aOoIKXICSAGefaCIO1F8GxhRejDKrgb6RTnTyWoSUKwP28ssaRfjNcdOAwyKde78ZC P0dqUtpAJw0hxIy2vUt/t6fbkN2KsJDlZYiXa5ho= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2046.outbound.protection.outlook.com [40.107.105.46]) by sourceware.org (Postfix) with ESMTPS id 637893857734 for ; Tue, 4 Jul 2023 15:18:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 637893857734 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dYdMyv7ciutaajoqAROa2BTd2i3cEYzBc35OOVYViXbpP2kzYyCru/BpuM+frfxQHSXSmo9d+YjGxtNOdYjyA66oSHHK1tUCBGeMLQmDFmSjCGOdu/8g7wNZ6vDqtx5b07rtGj6mRBgqtd/j/Lg03bC2wmHzyRs7xxrHUCF2B48oNRtCQUcuCNFvAPCou5J1ldi8VBOemql0AhZrQi910ssk+LZnC3w5SFEoC9JWTHGkwdincJpW+Qi8MlDIk+kO6eu9AbvpXTNbi4UtUWGMN3GIRgOdWRRzAQ1NUomnhX6P2MspUzhlb9dTJJATA5gtBiIqbbBrUbM8J2R7qeTBUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=K5F12ocmPGLmEAskOXDMxbIxUF1SgEsw+a4iVAKuvzY=; b=YaEagfUEgbMwVdChjD/+0U7YSUNPBS+bu7VmU2mEuz5NJ0l9acr1CrQlrxIa+bjN4AXsNihY5ESvPe8e8W0t4zB0Mp/0AltNBce5jGFa8A2RcXQIcqvxiW98ez2O96KEaSiEtzNMHe6CHJahFm/tb6oK86x2mqbHiOKXbPxpVZLDEu1I5GWg7wiUMNFFnu8nRF8RYFDc6BS1S/5wJMxFnKVoEUMSaOtxy506BUsqXBWNDKYCpkosNhZvbVKCAc+KpwMmyes+EZbv2j+cZt+eJM2wvyldr5nTRjtBg4XbZ6dOsWlBXknyPB70RQCQgSTIyjRvBgMNoe13P53C1uQPpA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by PA4PR04MB9269.eurprd04.prod.outlook.com (2603:10a6:102:2a4::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Tue, 4 Jul 2023 15:18:25 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880%4]) with mapi id 15.20.6544.024; Tue, 4 Jul 2023 15:18:25 +0000 Message-ID: Date: Tue, 4 Jul 2023 17:18:32 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: [PATCH 01/10] x86: fold certain legacy/VEX table entries Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: In-Reply-To: X-ClientProxiedBy: FR3P281CA0200.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a5::15) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PA4PR04MB9269:EE_ X-MS-Office365-Filtering-Correlation-Id: a182dc93-3dfb-4dbd-e697-08db7ca1e963 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: FK4EbUZ83v5I/H0430FztGS4qMzes8FplxMQj3S+QJHv351YqGzjiyV5Lh4B25e1l5qgPvGLdRC+uox5F/SPNRYulnLlqGs7AX+wOYWrhs5zq2oc+7Zr61XKi7zXUuH9qmIrrEIpB4H4oAIF5ew6vTZwgD6bOzPd8aka6EDz1K6taw9v3Du0xe8UP/diwJjsXb07rln79obP5RQB7UJ/kWFM6JQIIqKXEg/ugak4Ctj92S/QKw9uLlPmacJriTyZ3+sT7wKko56vUjxMikswavj7bHFJZDdfnqYySTbuhyAU4ZHKeb0S+9dq15NksXTrllA93icYre4t2RRjLy3njFYYIpQtB2+wp9W/dxyiffy1cpuKGAKk0epFcw/7Mxth4NSb//wm76fxBLU3YjwxlD6aSjz5RYJi7lkMBp4T/3mkV2BiBeFu06VeCpKP0yxLTmMGgMPAQbNQI4L4vxp8erq1if/XxDV9Im50OdSEcSH1GI94YVRS2iJQpcfCftB70AKPTgRMl3rQl4L+hBB+FI62OPJr/Msj4KHsVAK1KQA4m0TCTaUtQrqjk4/a5z38Y8jqtQSYQGU8jCFLtbiA+REU3XDeUfHhCQIkfNM35s7lU4bM9nwtQ94OTOnoirJfXYU8ljuXfTQs3DKhjNjjfw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU2PR04MB8790.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(376002)(39850400004)(346002)(136003)(396003)(366004)(451199021)(26005)(31686004)(478600001)(6666004)(6512007)(6506007)(31696002)(86362001)(2616005)(186003)(38100700002)(66476007)(6916009)(66556008)(4326008)(66946007)(6486002)(316002)(8676002)(8936002)(30864003)(41300700001)(2906002)(5660300002)(36756003)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?lvM2r7LMJ+Ur9dm5jxRhOkfgSVIO?= =?utf-8?q?JJxNpNQEe1FNqaiJI24VXXYfYLU5mJLyn5a1Boc80K0/5ByWf+mPr5MhtLqXOA7k4?= =?utf-8?q?+qwj5Prys0JbR7+tkfEJRAwxxeoPAfffkEyeC46gN0mhwHkOXykt5qBpf2H61LILb?= =?utf-8?q?m0ty8T7Uz8vCFjWAVJEKDdxWtvvgcFQIdDLXgLbsnYORcxKaV9FWiglAxs+dV7uYX?= =?utf-8?q?ncqDKkQvDBlvCX84nkAS3uB08ZtCoG/GXH9NMK6yTZ4flbzsU+kPMOBcxuATquwtc?= =?utf-8?q?GQdP+NaD5ad8gIXMcjU2yZmmVBWt5NASYnIBkQwt4zmzcItieV76DvCnOmLQZCPL3?= =?utf-8?q?EK0zFSjGhaWxZBCaUaYXw+IDFULW88llOmjv7vDJ8xYhELwVkNKFOJ/j0XrEQCwi8?= =?utf-8?q?3tGIQAFCeI2vC+t1TSoJV4gdP90nXA21/RiweaIXN1u95q6BG6QUlra4js+AXyvUj?= =?utf-8?q?YIvyJVQB+8NkNCC4EL5mtruTHrusnyQv7AWl6ibmTAf8sVJt4ZKynLNV9flf20nMN?= =?utf-8?q?J3sVlOWeu8mHo+61HFuiH8n44Ps49hiz5QNC0mjKyXZZBT8EGFtE0aHibrBAe78/0?= =?utf-8?q?XnJpgC3NFzzONSIwifs1QbpEOOMs9UvnozVWDgqr2G8A4ecpxwkJQNf0Lky3U3kbD?= =?utf-8?q?+wTi1dKZStnB67oQ776zXznRMXFsswpavILGetUsPosZn4a7asAUS6Ab1Uf7exBTK?= =?utf-8?q?AY/4SrFBGlAtGz7Pr9XpWuL0bB5IKw7SZCUpmxjWu8M8urK38jsZLIaPFXgQ0idwR?= =?utf-8?q?uT1uL2bZcaruNjYEK0CUNBJHk5FB6Pgi3eclEDFjRPWHAFSvBkckG/+J37hzSSQgj?= =?utf-8?q?jsRDytPAwkVPGd0lrNgpehBsnBk1sLd5xXYjA/ryLKMOi/+nUSdM5WfbFOeiPQ2Sl?= =?utf-8?q?THIVMqDt6OItzD9LbMKaQsdDys9oPU+aqjO04Na/ACjk+xmiC8f60/OlOPzDzWQ0s?= =?utf-8?q?cTbkOHla9HvYVDxHr+ZwtLuIM3f6X1LVM5hc62XdeZ5sXYAx6fUb5crixBuvM6cu3?= =?utf-8?q?mB0/4JE45aSE/WK70o9FJO1pVriSJgZWw9qdq/5hdWn7pNtw3Zbn8t4ZU25aBt/pI?= =?utf-8?q?V9inDzwEgbAMGfZK59R1bXObRDTIMXVVEcSUfV5n+ZD0e2RzowueyLg/u/z59DwbB?= =?utf-8?q?EcPtOD4oJ5M+QuYObkbd8No//vc3Y+X98dWtFGeUX8gOQ5qREZcu91Thlfzw5jQI1?= =?utf-8?q?NAbBItLNWCy8cJBQ4UKTN25SQmnPra2GIL77BpAS2KoZHnmUyCz+DYVm49o9ZPene?= =?utf-8?q?8EQlpQdWETrRzDqnXWOOohaEYUehIicCZyQO6Q4rN+dnQeEAo5I41wtoWn15pk2pl?= =?utf-8?q?ZP42MAChXeK0zMSJg93zh3MjAm3w1WdI8Een/9e/C9Sl9If3e/NTWnnVfi0o/H3Jx?= =?utf-8?q?5CLhKb734KPG4r+R9vi7IDwukozQTAWU5gm0Ti+JmP/lI03Ignx53+pF3s6QuDwEu?= =?utf-8?q?5q6vaCXIX+ReFVTVWvXqm9ENxAyck1AL41UZY7taWU6dmoI7SX07a7N/lOW/s7Cz3?= =?utf-8?q?BDnPMy11Zz4M?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: a182dc93-3dfb-4dbd-e697-08db7ca1e963 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2023 15:18:25.1107 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: vcwNtzkb0Y96R2VzpKgN47GFRVP6w0zYHqaOMnziham/BHaCcW6w+GULEJaDjgHY6u1jvHsCZgPM3mIbdELeLQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB9269 X-Spam-Status: No, score=-3027.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, UPPERCASE_50_75 autolearn=no 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.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770503723181340465?= X-GMAIL-MSGID: =?utf-8?q?1770503723181340465?= Introduce macro V to expand to 'v' in the VEX/EVEX case, and replace a couple of abort()s where legacy code can now legitimately make it. While there for {,V}LDDQU drop hoing through mod_table[] - OP_M() rejects register operands quite fine. --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -916,7 +916,6 @@ enum MOD_0FC7_REG_7, MOD_0FD7, MOD_0FE7_PREFIX_2, - MOD_0FF0_PREFIX_3, MOD_0F382A, MOD_0F38DC_PREFIX_1, MOD_0F38DD_PREFIX_1, @@ -947,7 +946,6 @@ enum MOD_VEX_0F47_L_1, MOD_VEX_0F4A_L_1, MOD_VEX_0F4B_L_1, - MOD_VEX_0F50, MOD_VEX_0F71, MOD_VEX_0F72, MOD_VEX_0F73, @@ -960,7 +958,6 @@ enum MOD_VEX_0FAE_REG_3, MOD_VEX_0FD7, MOD_VEX_0FE7, - MOD_VEX_0FF0_PREFIX_3, MOD_VEX_0F381A, MOD_VEX_0F382A, MOD_VEX_0F382C, @@ -1114,15 +1111,11 @@ enum PREFIX_0F38FB, PREFIX_0F38FC, PREFIX_0F3A0F, - PREFIX_VEX_0F10, - PREFIX_VEX_0F11, PREFIX_VEX_0F12, PREFIX_VEX_0F16, PREFIX_VEX_0F2A, PREFIX_VEX_0F2C, PREFIX_VEX_0F2D, - PREFIX_VEX_0F2E, - PREFIX_VEX_0F2F, PREFIX_VEX_0F41_L_1_M_1_W_0, PREFIX_VEX_0F41_L_1_M_1_W_1, PREFIX_VEX_0F42_L_1_M_1_W_0, @@ -1139,21 +1132,8 @@ enum PREFIX_VEX_0F4A_L_1_M_1_W_1, PREFIX_VEX_0F4B_L_1_M_1_W_0, PREFIX_VEX_0F4B_L_1_M_1_W_1, - PREFIX_VEX_0F51, - PREFIX_VEX_0F52, - PREFIX_VEX_0F53, - PREFIX_VEX_0F58, - PREFIX_VEX_0F59, - PREFIX_VEX_0F5A, - PREFIX_VEX_0F5B, - PREFIX_VEX_0F5C, - PREFIX_VEX_0F5D, - PREFIX_VEX_0F5E, - PREFIX_VEX_0F5F, PREFIX_VEX_0F6F, PREFIX_VEX_0F70, - PREFIX_VEX_0F7C, - PREFIX_VEX_0F7D, PREFIX_VEX_0F7E, PREFIX_VEX_0F7F, PREFIX_VEX_0F90_L_0_W_0, @@ -1168,10 +1148,6 @@ enum PREFIX_VEX_0F98_L_0_M_1_W_1, PREFIX_VEX_0F99_L_0_M_1_W_0, PREFIX_VEX_0F99_L_0_M_1_W_1, - PREFIX_VEX_0FC2, - PREFIX_VEX_0FD0, - PREFIX_VEX_0FE6, - PREFIX_VEX_0FF0, PREFIX_VEX_0F3849_X86_64_L_0_W_0_M_0, PREFIX_VEX_0F3849_X86_64_L_0_W_0_M_1, PREFIX_VEX_0F384B_X86_64_L_0_W_0_M_0, @@ -1803,7 +1779,7 @@ struct dis386 { 'T' => print 'w', 'l'/'d', or 'q' if instruction has an operand size prefix or if suffix_always is true. 'U' unused. - 'V' unused. + 'V' => print 'v' for VEX/EVEX and nothing for legacy encodings. 'W' => print 'b', 'w' or 'l' ('d' in Intel mode) 'X' => print 's', 'd' depending on data16 prefix (for XMM) 'Y' => no output, mark EVEX.aaa != 0 as bad. @@ -3149,18 +3125,18 @@ static const struct dis386 prefix_table[ /* PREFIX_0F10 */ { - { "movups", { XM, EXx }, PREFIX_OPCODE }, - { "movss", { XM, EXd }, PREFIX_OPCODE }, - { "movupd", { XM, EXx }, PREFIX_OPCODE }, - { "movsd", { XM, EXq }, PREFIX_OPCODE }, + { "%XEVmovupX", { XM, EXEvexXNoBcst }, 0 }, + { "%XEVmovs%XS", { XMScalar, VexScalarR, EXd }, 0 }, + { "%XEVmovupX", { XM, EXEvexXNoBcst }, 0 }, + { "%XEVmovs%XD", { XMScalar, VexScalarR, EXq }, 0 }, }, /* PREFIX_0F11 */ { - { "movups", { EXxS, XM }, PREFIX_OPCODE }, - { "movss", { EXdS, XM }, PREFIX_OPCODE }, - { "movupd", { EXxS, XM }, PREFIX_OPCODE }, - { "movsd", { EXqS, XM }, PREFIX_OPCODE }, + { "%XEVmovupX", { EXxS, XM }, 0 }, + { "%XEVmovs%XS", { EXdS, VexScalarR, XMScalar }, 0 }, + { "%XEVmovupX", { EXxS, XM }, 0 }, + { "%XEVmovs%XD", { EXqS, VexScalarR, XMScalar }, 0 }, }, /* PREFIX_0F12 */ @@ -3260,99 +3236,99 @@ static const struct dis386 prefix_table[ /* PREFIX_0F2E */ { - { "ucomiss",{ XM, EXd }, 0 }, + { "%XEVucomisYX", { XMScalar, EXd, EXxEVexS }, 0 }, { Bad_Opcode }, - { "ucomisd",{ XM, EXq }, 0 }, + { "%XEVucomisYX", { XMScalar, EXq, EXxEVexS }, 0 }, }, /* PREFIX_0F2F */ { - { "comiss", { XM, EXd }, 0 }, + { "%XEVcomisYX", { XMScalar, EXd, EXxEVexS }, 0 }, { Bad_Opcode }, - { "comisd", { XM, EXq }, 0 }, + { "%XEVcomisYX", { XMScalar, EXq, EXxEVexS }, 0 }, }, /* PREFIX_0F51 */ { - { "sqrtps", { XM, EXx }, PREFIX_OPCODE }, - { "sqrtss", { XM, EXd }, PREFIX_OPCODE }, - { "sqrtpd", { XM, EXx }, PREFIX_OPCODE }, - { "sqrtsd", { XM, EXq }, PREFIX_OPCODE }, + { "%XEVsqrtpX", { XM, EXx, EXxEVexR }, 0 }, + { "%XEVsqrts%XS", { XMScalar, VexScalar, EXd, EXxEVexR }, 0 }, + { "%XEVsqrtpX", { XM, EXx, EXxEVexR }, 0 }, + { "%XEVsqrts%XD", { XMScalar, VexScalar, EXq, EXxEVexR }, 0 }, }, /* PREFIX_0F52 */ { - { "rsqrtps",{ XM, EXx }, PREFIX_OPCODE }, - { "rsqrtss",{ XM, EXd }, PREFIX_OPCODE }, + { "Vrsqrtps", { XM, EXx }, 0 }, + { "Vrsqrtss", { XMScalar, VexScalar, EXd }, 0 }, }, /* PREFIX_0F53 */ { - { "rcpps", { XM, EXx }, PREFIX_OPCODE }, - { "rcpss", { XM, EXd }, PREFIX_OPCODE }, + { "Vrcpps", { XM, EXx }, 0 }, + { "Vrcpss", { XMScalar, VexScalar, EXd }, 0 }, }, /* PREFIX_0F58 */ { - { "addps", { XM, EXx }, PREFIX_OPCODE }, - { "addss", { XM, EXd }, PREFIX_OPCODE }, - { "addpd", { XM, EXx }, PREFIX_OPCODE }, - { "addsd", { XM, EXq }, PREFIX_OPCODE }, + { "%XEVaddpX", { XM, Vex, EXx, EXxEVexR }, 0 }, + { "%XEVadds%XS", { XMScalar, VexScalar, EXd, EXxEVexR }, 0 }, + { "%XEVaddpX", { XM, Vex, EXx, EXxEVexR }, 0 }, + { "%XEVadds%XD", { XMScalar, VexScalar, EXq, EXxEVexR }, 0 }, }, /* PREFIX_0F59 */ { - { "mulps", { XM, EXx }, PREFIX_OPCODE }, - { "mulss", { XM, EXd }, PREFIX_OPCODE }, - { "mulpd", { XM, EXx }, PREFIX_OPCODE }, - { "mulsd", { XM, EXq }, PREFIX_OPCODE }, + { "%XEVmulpX", { XM, Vex, EXx, EXxEVexR }, 0 }, + { "%XEVmuls%XS", { XMScalar, VexScalar, EXd, EXxEVexR }, 0 }, + { "%XEVmulpX", { XM, Vex, EXx, EXxEVexR }, 0 }, + { "%XEVmuls%XD", { XMScalar, VexScalar, EXq, EXxEVexR }, 0 }, }, /* PREFIX_0F5A */ { - { "cvtps2pd", { XM, EXq }, PREFIX_OPCODE }, - { "cvtss2sd", { XM, EXd }, PREFIX_OPCODE }, - { "cvtpd2ps", { XM, EXx }, PREFIX_OPCODE }, - { "cvtsd2ss", { XM, EXq }, PREFIX_OPCODE }, + { "%XEVcvtp%XS2pd", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 }, + { "%XEVcvts%XS2sd", { XMScalar, VexScalar, EXd, EXxEVexS }, 0 }, + { "%XEVcvtp%XD2ps%XY", { XMxmmq, EXx, EXxEVexR }, 0 }, + { "%XEVcvts%XD2ss", { XMScalar, VexScalar, EXq, EXxEVexR }, 0 }, }, /* PREFIX_0F5B */ { - { "cvtdq2ps", { XM, EXx }, PREFIX_OPCODE }, - { "cvttps2dq", { XM, EXx }, PREFIX_OPCODE }, - { "cvtps2dq", { XM, EXx }, PREFIX_OPCODE }, + { "Vcvtdq2ps", { XM, EXx }, 0 }, + { "Vcvttps2dq", { XM, EXx }, 0 }, + { "Vcvtps2dq", { XM, EXx }, 0 }, }, /* PREFIX_0F5C */ { - { "subps", { XM, EXx }, PREFIX_OPCODE }, - { "subss", { XM, EXd }, PREFIX_OPCODE }, - { "subpd", { XM, EXx }, PREFIX_OPCODE }, - { "subsd", { XM, EXq }, PREFIX_OPCODE }, + { "%XEVsubpX", { XM, Vex, EXx, EXxEVexR }, 0 }, + { "%XEVsubs%XS", { XMScalar, VexScalar, EXd, EXxEVexR }, 0 }, + { "%XEVsubpX", { XM, Vex, EXx, EXxEVexR }, 0 }, + { "%XEVsubs%XD", { XMScalar, VexScalar, EXq, EXxEVexR }, 0 }, }, /* PREFIX_0F5D */ { - { "minps", { XM, EXx }, PREFIX_OPCODE }, - { "minss", { XM, EXd }, PREFIX_OPCODE }, - { "minpd", { XM, EXx }, PREFIX_OPCODE }, - { "minsd", { XM, EXq }, PREFIX_OPCODE }, + { "%XEVminpX", { XM, Vex, EXx, EXxEVexS }, 0 }, + { "%XEVmins%XS", { XMScalar, VexScalar, EXd, EXxEVexS }, 0 }, + { "%XEVminpX", { XM, Vex, EXx, EXxEVexS }, 0 }, + { "%XEVmins%XD", { XMScalar, VexScalar, EXq, EXxEVexS }, 0 }, }, /* PREFIX_0F5E */ { - { "divps", { XM, EXx }, PREFIX_OPCODE }, - { "divss", { XM, EXd }, PREFIX_OPCODE }, - { "divpd", { XM, EXx }, PREFIX_OPCODE }, - { "divsd", { XM, EXq }, PREFIX_OPCODE }, + { "%XEVdivpX", { XM, Vex, EXx, EXxEVexR }, 0 }, + { "%XEVdivs%XS", { XMScalar, VexScalar, EXd, EXxEVexR }, 0 }, + { "%XEVdivpX", { XM, Vex, EXx, EXxEVexR }, 0 }, + { "%XEVdivs%XD", { XMScalar, VexScalar, EXq, EXxEVexR }, 0 }, }, /* PREFIX_0F5F */ { - { "maxps", { XM, EXx }, PREFIX_OPCODE }, - { "maxss", { XM, EXd }, PREFIX_OPCODE }, - { "maxpd", { XM, EXx }, PREFIX_OPCODE }, - { "maxsd", { XM, EXq }, PREFIX_OPCODE }, + { "%XEVmaxpX", { XM, Vex, EXx, EXxEVexS }, 0 }, + { "%XEVmaxs%XS", { XMScalar, VexScalar, EXd, EXxEVexS }, 0 }, + { "%XEVmaxpX", { XM, Vex, EXx, EXxEVexS }, 0 }, + { "%XEVmaxs%XD", { XMScalar, VexScalar, EXq, EXxEVexS }, 0 }, }, /* PREFIX_0F60 */ @@ -3411,16 +3387,16 @@ static const struct dis386 prefix_table[ { { Bad_Opcode }, { Bad_Opcode }, - { "haddpd", { XM, EXx }, PREFIX_OPCODE }, - { "haddps", { XM, EXx }, PREFIX_OPCODE }, + { "Vhaddpd", { XM, Vex, EXx }, 0 }, + { "Vhaddps", { XM, Vex, EXx }, 0 }, }, /* PREFIX_0F7D */ { { Bad_Opcode }, { Bad_Opcode }, - { "hsubpd", { XM, EXx }, PREFIX_OPCODE }, - { "hsubps", { XM, EXx }, PREFIX_OPCODE }, + { "Vhsubpd", { XM, Vex, EXx }, 0 }, + { "Vhsubps", { XM, Vex, EXx }, 0 }, }, /* PREFIX_0F7E */ @@ -3523,10 +3499,10 @@ static const struct dis386 prefix_table[ /* PREFIX_0FC2 */ { - { "cmpps", { XM, EXx, CMP }, PREFIX_OPCODE }, - { "cmpss", { XM, EXd, CMP }, PREFIX_OPCODE }, - { "cmppd", { XM, EXx, CMP }, PREFIX_OPCODE }, - { "cmpsd", { XM, EXq, CMP }, PREFIX_OPCODE }, + { "VcmppX", { XM, Vex, EXx, CMP }, 0 }, + { "Vcmpss", { XMScalar, VexScalar, EXd, CMP }, 0 }, + { "VcmppX", { XM, Vex, EXx, CMP }, 0 }, + { "Vcmpsd", { XMScalar, VexScalar, EXq, CMP }, 0 }, }, /* PREFIX_0FC7_REG_6_MOD_0 */ @@ -3554,8 +3530,8 @@ static const struct dis386 prefix_table[ { { Bad_Opcode }, { Bad_Opcode }, - { "addsubpd", { XM, EXx }, 0 }, - { "addsubps", { XM, EXx }, 0 }, + { "VaddsubpX", { XM, Vex, EXx }, 0 }, + { "VaddsubpX", { XM, Vex, EXx }, 0 }, }, /* PREFIX_0FD6 */ @@ -3569,9 +3545,9 @@ static const struct dis386 prefix_table[ /* PREFIX_0FE6 */ { { Bad_Opcode }, - { "cvtdq2pd", { XM, EXq }, PREFIX_OPCODE }, - { "cvttpd2dq", { XM, EXx }, PREFIX_OPCODE }, - { "cvtpd2dq", { XM, EXx }, PREFIX_OPCODE }, + { "Vcvtdq2pd", { XM, EXxmmq }, 0 }, + { "Vcvttpd2dq%XY", { XMM, EXx }, 0 }, + { "Vcvtpd2dq%XY", { XMM, EXx }, 0 }, }, /* PREFIX_0FE7 */ @@ -3586,7 +3562,7 @@ static const struct dis386 prefix_table[ { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { MOD_TABLE (MOD_0FF0_PREFIX_3) }, + { "Vlddqu", { XM, M }, 0 }, }, /* PREFIX_0FF7 */ @@ -3687,22 +3663,6 @@ static const struct dis386 prefix_table[ { MOD_TABLE (MOD_0F3A0F_PREFIX_1)}, }, - /* PREFIX_VEX_0F10 */ - { - { "%XEvmovupX", { XM, EXEvexXNoBcst }, 0 }, - { "%XEvmovs%XS", { XMScalar, VexScalarR, EXd }, 0 }, - { "%XEvmovupX", { XM, EXEvexXNoBcst }, 0 }, - { "%XEvmovs%XD", { XMScalar, VexScalarR, EXq }, 0 }, - }, - - /* PREFIX_VEX_0F11 */ - { - { "%XEvmovupX", { EXxS, XM }, 0 }, - { "%XEvmovs%XS", { EXdS, VexScalarR, XMScalar }, 0 }, - { "%XEvmovupX", { EXxS, XM }, 0 }, - { "%XEvmovs%XD", { EXqS, VexScalarR, XMScalar }, 0 }, - }, - /* PREFIX_VEX_0F12 */ { { MOD_TABLE (MOD_VEX_0F12_PREFIX_0) }, @@ -3742,20 +3702,6 @@ static const struct dis386 prefix_table[ { "%XEvcvtsd2si", { Gdq, EXq, EXxEVexR }, 0 }, }, - /* PREFIX_VEX_0F2E */ - { - { "%XEvucomisYX", { XMScalar, EXd, EXxEVexS }, 0 }, - { Bad_Opcode }, - { "%XEvucomisYX", { XMScalar, EXq, EXxEVexS }, 0 }, - }, - - /* PREFIX_VEX_0F2F */ - { - { "%XEvcomisYX", { XMScalar, EXd, EXxEVexS }, 0 }, - { Bad_Opcode }, - { "%XEvcomisYX", { XMScalar, EXq, EXxEVexS }, 0 }, - }, - /* PREFIX_VEX_0F41_L_1_M_1_W_0 */ { { "kandw", { MaskG, MaskVex, MaskE }, 0 }, @@ -3866,89 +3812,6 @@ static const struct dis386 prefix_table[ { "kunpckdq", { MaskG, MaskVex, MaskE }, 0 }, }, - /* PREFIX_VEX_0F51 */ - { - { "%XEvsqrtpX", { XM, EXx, EXxEVexR }, 0 }, - { "%XEvsqrts%XS", { XMScalar, VexScalar, EXd, EXxEVexR }, 0 }, - { "%XEvsqrtpX", { XM, EXx, EXxEVexR }, 0 }, - { "%XEvsqrts%XD", { XMScalar, VexScalar, EXq, EXxEVexR }, 0 }, - }, - - /* PREFIX_VEX_0F52 */ - { - { "vrsqrtps", { XM, EXx }, 0 }, - { "vrsqrtss", { XMScalar, VexScalar, EXd }, 0 }, - }, - - /* PREFIX_VEX_0F53 */ - { - { "vrcpps", { XM, EXx }, 0 }, - { "vrcpss", { XMScalar, VexScalar, EXd }, 0 }, - }, - - /* PREFIX_VEX_0F58 */ - { - { "%XEvaddpX", { XM, Vex, EXx, EXxEVexR }, 0 }, - { "%XEvadds%XS", { XMScalar, VexScalar, EXd, EXxEVexR }, 0 }, - { "%XEvaddpX", { XM, Vex, EXx, EXxEVexR }, 0 }, - { "%XEvadds%XD", { XMScalar, VexScalar, EXq, EXxEVexR }, 0 }, - }, - - /* PREFIX_VEX_0F59 */ - { - { "%XEvmulpX", { XM, Vex, EXx, EXxEVexR }, 0 }, - { "%XEvmuls%XS", { XMScalar, VexScalar, EXd, EXxEVexR }, 0 }, - { "%XEvmulpX", { XM, Vex, EXx, EXxEVexR }, 0 }, - { "%XEvmuls%XD", { XMScalar, VexScalar, EXq, EXxEVexR }, 0 }, - }, - - /* PREFIX_VEX_0F5A */ - { - { "%XEvcvtp%XS2pd", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 }, - { "%XEvcvts%XS2sd", { XMScalar, VexScalar, EXd, EXxEVexS }, 0 }, - { "%XEvcvtp%XD2ps%XY", { XMxmmq, EXx, EXxEVexR }, 0 }, - { "%XEvcvts%XD2ss", { XMScalar, VexScalar, EXq, EXxEVexR }, 0 }, - }, - - /* PREFIX_VEX_0F5B */ - { - { "vcvtdq2ps", { XM, EXx }, 0 }, - { "vcvttps2dq", { XM, EXx }, 0 }, - { "vcvtps2dq", { XM, EXx }, 0 }, - }, - - /* PREFIX_VEX_0F5C */ - { - { "%XEvsubpX", { XM, Vex, EXx, EXxEVexR }, 0 }, - { "%XEvsubs%XS", { XMScalar, VexScalar, EXd, EXxEVexR }, 0 }, - { "%XEvsubpX", { XM, Vex, EXx, EXxEVexR }, 0 }, - { "%XEvsubs%XD", { XMScalar, VexScalar, EXq, EXxEVexR }, 0 }, - }, - - /* PREFIX_VEX_0F5D */ - { - { "%XEvminpX", { XM, Vex, EXx, EXxEVexS }, 0 }, - { "%XEvmins%XS", { XMScalar, VexScalar, EXd, EXxEVexS }, 0 }, - { "%XEvminpX", { XM, Vex, EXx, EXxEVexS }, 0 }, - { "%XEvmins%XD", { XMScalar, VexScalar, EXq, EXxEVexS }, 0 }, - }, - - /* PREFIX_VEX_0F5E */ - { - { "%XEvdivpX", { XM, Vex, EXx, EXxEVexR }, 0 }, - { "%XEvdivs%XS", { XMScalar, VexScalar, EXd, EXxEVexR }, 0 }, - { "%XEvdivpX", { XM, Vex, EXx, EXxEVexR }, 0 }, - { "%XEvdivs%XD", { XMScalar, VexScalar, EXq, EXxEVexR }, 0 }, - }, - - /* PREFIX_VEX_0F5F */ - { - { "%XEvmaxpX", { XM, Vex, EXx, EXxEVexS }, 0 }, - { "%XEvmaxs%XS", { XMScalar, VexScalar, EXd, EXxEVexS }, 0 }, - { "%XEvmaxpX", { XM, Vex, EXx, EXxEVexS }, 0 }, - { "%XEvmaxs%XD", { XMScalar, VexScalar, EXq, EXxEVexS }, 0 }, - }, - /* PREFIX_VEX_0F6F */ { { Bad_Opcode }, @@ -3964,22 +3827,6 @@ static const struct dis386 prefix_table[ { "vpshuflw", { XM, EXx, Ib }, 0 }, }, - /* PREFIX_VEX_0F7C */ - { - { Bad_Opcode }, - { Bad_Opcode }, - { "vhaddpd", { XM, Vex, EXx }, 0 }, - { "vhaddps", { XM, Vex, EXx }, 0 }, - }, - - /* PREFIX_VEX_0F7D */ - { - { Bad_Opcode }, - { Bad_Opcode }, - { "vhsubpd", { XM, Vex, EXx }, 0 }, - { "vhsubps", { XM, Vex, EXx }, 0 }, - }, - /* PREFIX_VEX_0F7E */ { { Bad_Opcode }, @@ -4082,38 +3929,6 @@ static const struct dis386 prefix_table[ { "ktestd", { MaskG, MaskE }, 0 }, }, - /* PREFIX_VEX_0FC2 */ - { - { "vcmpps", { XM, Vex, EXx, CMP }, 0 }, - { "vcmpss", { XMScalar, VexScalar, EXd, CMP }, 0 }, - { "vcmppd", { XM, Vex, EXx, CMP }, 0 }, - { "vcmpsd", { XMScalar, VexScalar, EXq, CMP }, 0 }, - }, - - /* PREFIX_VEX_0FD0 */ - { - { Bad_Opcode }, - { Bad_Opcode }, - { "vaddsubpd", { XM, Vex, EXx }, 0 }, - { "vaddsubps", { XM, Vex, EXx }, 0 }, - }, - - /* PREFIX_VEX_0FE6 */ - { - { Bad_Opcode }, - { "vcvtdq2pd", { XM, EXxmmq }, 0 }, - { "vcvttpd2dq%XY", { XMM, EXx }, 0 }, - { "vcvtpd2dq%XY", { XMM, EXx }, 0 }, - }, - - /* PREFIX_VEX_0FF0 */ - { - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { MOD_TABLE (MOD_VEX_0FF0_PREFIX_3) }, - }, - /* PREFIX_VEX_0F3849_X86_64_L_0_W_0_M_0 */ { { "ldtilecfg", { M }, 0 }, @@ -6147,8 +5962,8 @@ static const struct dis386 vex_table[][2 { Bad_Opcode }, { Bad_Opcode }, /* 10 */ - { PREFIX_TABLE (PREFIX_VEX_0F10) }, - { PREFIX_TABLE (PREFIX_VEX_0F11) }, + { PREFIX_TABLE (PREFIX_0F10) }, + { PREFIX_TABLE (PREFIX_0F11) }, { PREFIX_TABLE (PREFIX_VEX_0F12) }, { MOD_TABLE (MOD_VEX_0F13) }, { "vunpcklpX", { XM, Vex, EXx }, PREFIX_OPCODE }, @@ -6180,8 +5995,8 @@ static const struct dis386 vex_table[][2 { MOD_TABLE (MOD_VEX_0F2B) }, { PREFIX_TABLE (PREFIX_VEX_0F2C) }, { PREFIX_TABLE (PREFIX_VEX_0F2D) }, - { PREFIX_TABLE (PREFIX_VEX_0F2E) }, - { PREFIX_TABLE (PREFIX_VEX_0F2F) }, + { PREFIX_TABLE (PREFIX_0F2E) }, + { PREFIX_TABLE (PREFIX_0F2F) }, /* 30 */ { Bad_Opcode }, { Bad_Opcode }, @@ -6219,23 +6034,23 @@ static const struct dis386 vex_table[][2 { Bad_Opcode }, { Bad_Opcode }, /* 50 */ - { MOD_TABLE (MOD_VEX_0F50) }, - { PREFIX_TABLE (PREFIX_VEX_0F51) }, - { PREFIX_TABLE (PREFIX_VEX_0F52) }, - { PREFIX_TABLE (PREFIX_VEX_0F53) }, + { MOD_TABLE (MOD_0F50) }, + { PREFIX_TABLE (PREFIX_0F51) }, + { PREFIX_TABLE (PREFIX_0F52) }, + { PREFIX_TABLE (PREFIX_0F53) }, { "vandpX", { XM, Vex, EXx }, PREFIX_OPCODE }, { "vandnpX", { XM, Vex, EXx }, PREFIX_OPCODE }, { "vorpX", { XM, Vex, EXx }, PREFIX_OPCODE }, { "vxorpX", { XM, Vex, EXx }, PREFIX_OPCODE }, /* 58 */ - { PREFIX_TABLE (PREFIX_VEX_0F58) }, - { PREFIX_TABLE (PREFIX_VEX_0F59) }, - { PREFIX_TABLE (PREFIX_VEX_0F5A) }, - { PREFIX_TABLE (PREFIX_VEX_0F5B) }, - { PREFIX_TABLE (PREFIX_VEX_0F5C) }, - { PREFIX_TABLE (PREFIX_VEX_0F5D) }, - { PREFIX_TABLE (PREFIX_VEX_0F5E) }, - { PREFIX_TABLE (PREFIX_VEX_0F5F) }, + { PREFIX_TABLE (PREFIX_0F58) }, + { PREFIX_TABLE (PREFIX_0F59) }, + { PREFIX_TABLE (PREFIX_0F5A) }, + { PREFIX_TABLE (PREFIX_0F5B) }, + { PREFIX_TABLE (PREFIX_0F5C) }, + { PREFIX_TABLE (PREFIX_0F5D) }, + { PREFIX_TABLE (PREFIX_0F5E) }, + { PREFIX_TABLE (PREFIX_0F5F) }, /* 60 */ { "vpunpcklbw", { XM, Vex, EXx }, PREFIX_DATA }, { "vpunpcklwd", { XM, Vex, EXx }, PREFIX_DATA }, @@ -6268,8 +6083,8 @@ static const struct dis386 vex_table[][2 { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { PREFIX_TABLE (PREFIX_VEX_0F7C) }, - { PREFIX_TABLE (PREFIX_VEX_0F7D) }, + { PREFIX_TABLE (PREFIX_0F7C) }, + { PREFIX_TABLE (PREFIX_0F7D) }, { PREFIX_TABLE (PREFIX_VEX_0F7E) }, { PREFIX_TABLE (PREFIX_VEX_0F7F) }, /* 80 */ @@ -6347,7 +6162,7 @@ static const struct dis386 vex_table[][2 /* c0 */ { Bad_Opcode }, { Bad_Opcode }, - { PREFIX_TABLE (PREFIX_VEX_0FC2) }, + { PREFIX_TABLE (PREFIX_0FC2) }, { Bad_Opcode }, { VEX_LEN_TABLE (VEX_LEN_0FC4) }, { VEX_LEN_TABLE (VEX_LEN_0FC5) }, @@ -6363,7 +6178,7 @@ static const struct dis386 vex_table[][2 { Bad_Opcode }, { Bad_Opcode }, /* d0 */ - { PREFIX_TABLE (PREFIX_VEX_0FD0) }, + { PREFIX_TABLE (PREFIX_0FD0) }, { "vpsrlw", { XM, Vex, EXxmm }, PREFIX_DATA }, { "vpsrld", { XM, Vex, EXxmm }, PREFIX_DATA }, { "vpsrlq", { XM, Vex, EXxmm }, PREFIX_DATA }, @@ -6387,7 +6202,7 @@ static const struct dis386 vex_table[][2 { "vpavgw", { XM, Vex, EXx }, PREFIX_DATA }, { "vpmulhuw", { XM, Vex, EXx }, PREFIX_DATA }, { "vpmulhw", { XM, Vex, EXx }, PREFIX_DATA }, - { PREFIX_TABLE (PREFIX_VEX_0FE6) }, + { PREFIX_TABLE (PREFIX_0FE6) }, { MOD_TABLE (MOD_VEX_0FE7) }, /* e8 */ { "vpsubsb", { XM, Vex, EXx }, PREFIX_DATA }, @@ -6399,7 +6214,7 @@ static const struct dis386 vex_table[][2 { "vpmaxsw", { XM, Vex, EXx }, PREFIX_DATA }, { "vpxor", { XM, Vex, EXx }, PREFIX_DATA }, /* f0 */ - { PREFIX_TABLE (PREFIX_VEX_0FF0) }, + { PREFIX_TABLE (PREFIX_0FF0) }, { "vpsllw", { XM, Vex, EXxmm }, PREFIX_DATA }, { "vpslld", { XM, Vex, EXxmm }, PREFIX_DATA }, { "vpsllq", { XM, Vex, EXxmm }, PREFIX_DATA }, @@ -8322,7 +8137,7 @@ static const struct dis386 mod_table[][2 { /* MOD_0F50 */ { Bad_Opcode }, - { "movmskpX", { Gdq, XS }, PREFIX_OPCODE }, + { "VmovmskpX", { Gdq, XS }, PREFIX_OPCODE }, }, { /* MOD_0F71 */ @@ -8427,10 +8242,6 @@ static const struct dis386 mod_table[][2 { "movntdq", { Mx, XM }, 0 }, }, { - /* MOD_0FF0_PREFIX_3 */ - { "lddqu", { XM, M }, 0 }, - }, - { /* MOD_0F382A */ { "movntdqa", { XM, Mx }, PREFIX_DATA }, }, @@ -8561,11 +8372,6 @@ static const struct dis386 mod_table[][2 { VEX_W_TABLE (VEX_W_0F4B_L_1_M_1) }, }, { - /* MOD_VEX_0F50 */ - { Bad_Opcode }, - { "vmovmskpX", { Gdq, XS }, PREFIX_OPCODE }, - }, - { /* MOD_VEX_0F71 */ { Bad_Opcode }, { REG_TABLE (REG_VEX_0F71_M_0) }, @@ -8622,10 +8428,6 @@ static const struct dis386 mod_table[][2 { "vmovntdq", { Mx, XM }, PREFIX_DATA }, }, { - /* MOD_VEX_0FF0_PREFIX_3 */ - { "vlddqu", { XM, M }, 0 }, - }, - { /* MOD_VEX_0F381A */ { VEX_LEN_TABLE (VEX_LEN_0F381A_M_0) }, }, @@ -11051,7 +10853,10 @@ putop (instr_info *ins, const char *in_t break; case 'V': if (l == 0) - abort (); + { + if (ins->need_vex) + *ins->obufp++ = 'v'; + } else if (l == 1) { switch (last[0]) @@ -11136,7 +10941,7 @@ putop (instr_info *ins, const char *in_t else if (l == 1 && last[0] == 'X') { if (!ins->need_vex) - abort (); + break; if (ins->intel_syntax || ((ins->modrm.mod == 3 || ins->vex.b) && !(sizeflag & SUFFIX_ALWAYS))) @@ -11531,11 +11336,9 @@ intel_operand_size (instr_info *ins, int case xmmq_mode: case evex_half_bcst_xmmqh_mode: case evex_half_bcst_xmmq_mode: - if (!ins->need_vex) - abort (); - switch (ins->vex.length) { + case 0: case 128: oappend (ins, "QWORD PTR "); break; @@ -12956,6 +12759,7 @@ print_vector_reg (instr_info *ins, unsig { switch (ins->vex.length) { + case 0: case 128: case 256: names = att_names_xmm; @@ -13625,7 +13429,7 @@ OP_VEX (instr_info *ins, int bytemode, i const char (*names)[8]; if (!ins->need_vex) - abort (); + return true; reg = ins->vex.register_specifier; ins->vex.register_specifier = 0; --- a/opcodes/i386-dis-evex.h +++ b/opcodes/i386-dis-evex.h @@ -20,8 +20,8 @@ static const struct dis386 evex_table[][ { Bad_Opcode }, { Bad_Opcode }, /* 10 */ - { PREFIX_TABLE (PREFIX_VEX_0F10) }, - { PREFIX_TABLE (PREFIX_VEX_0F11) }, + { PREFIX_TABLE (PREFIX_0F10) }, + { PREFIX_TABLE (PREFIX_0F11) }, { PREFIX_TABLE (PREFIX_VEX_0F12) }, { MOD_TABLE (MOD_VEX_0F13) }, { "%XEvunpcklpX", { XM, Vex, EXx }, PREFIX_OPCODE }, @@ -53,8 +53,8 @@ static const struct dis386 evex_table[][ { MOD_TABLE (MOD_VEX_0F2B) }, { PREFIX_TABLE (PREFIX_VEX_0F2C) }, { PREFIX_TABLE (PREFIX_VEX_0F2D) }, - { PREFIX_TABLE (PREFIX_VEX_0F2E) }, - { PREFIX_TABLE (PREFIX_VEX_0F2F) }, + { PREFIX_TABLE (PREFIX_0F2E) }, + { PREFIX_TABLE (PREFIX_0F2F) }, /* 30 */ { Bad_Opcode }, { Bad_Opcode }, @@ -93,7 +93,7 @@ static const struct dis386 evex_table[][ { Bad_Opcode }, /* 50 */ { Bad_Opcode }, - { PREFIX_TABLE (PREFIX_VEX_0F51) }, + { PREFIX_TABLE (PREFIX_0F51) }, { Bad_Opcode }, { Bad_Opcode }, { "%XEvandpX", { XM, Vex, EXx }, PREFIX_OPCODE }, @@ -101,14 +101,14 @@ static const struct dis386 evex_table[][ { "%XEvorpX", { XM, Vex, EXx }, PREFIX_OPCODE }, { "%XEvxorpX", { XM, Vex, EXx }, PREFIX_OPCODE }, /* 58 */ - { PREFIX_TABLE (PREFIX_VEX_0F58) }, - { PREFIX_TABLE (PREFIX_VEX_0F59) }, - { PREFIX_TABLE (PREFIX_VEX_0F5A) }, + { PREFIX_TABLE (PREFIX_0F58) }, + { PREFIX_TABLE (PREFIX_0F59) }, + { PREFIX_TABLE (PREFIX_0F5A) }, { PREFIX_TABLE (PREFIX_EVEX_0F5B) }, - { PREFIX_TABLE (PREFIX_VEX_0F5C) }, - { PREFIX_TABLE (PREFIX_VEX_0F5D) }, - { PREFIX_TABLE (PREFIX_VEX_0F5E) }, - { PREFIX_TABLE (PREFIX_VEX_0F5F) }, + { PREFIX_TABLE (PREFIX_0F5C) }, + { PREFIX_TABLE (PREFIX_0F5D) }, + { PREFIX_TABLE (PREFIX_0F5E) }, + { PREFIX_TABLE (PREFIX_0F5F) }, /* 60 */ { "%XEvpunpcklbw", { XM, Vex, EXx }, PREFIX_DATA }, { "%XEvpunpcklwd", { XM, Vex, EXx }, PREFIX_DATA }, From patchwork Tue Jul 4 15:19:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 115828 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f45:0:b0:3ea:f831:8777 with SMTP id v5csp1294890vqx; Tue, 4 Jul 2023 08:20:00 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7yCZR2V5KaBJdbkbKDzbmqAtNrC4DsthyehR+kHxQGYvQ60MTgYER2RY9rDh/wuSWb4N2k X-Received: by 2002:a17:906:f884:b0:98e:2423:708 with SMTP id lg4-20020a170906f88400b0098e24230708mr10868160ejb.62.1688484000549; Tue, 04 Jul 2023 08:20:00 -0700 (PDT) Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id kj20-20020a170907765400b00992fef51a60si4976883ejc.525.2023.07.04.08.20.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jul 2023 08:20:00 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=T8SDLlLR; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 5DF103857700 for ; Tue, 4 Jul 2023 15:19:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5DF103857700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688483999; bh=jcYkNEs7kFhS1pB1XWtxr4D5eN74gDllsjrqV0d7Tts=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=T8SDLlLRDWW60p7kxT6UhZb+sOpSkt4xvoSdcdhlf++iSE/MpKZQi1b9jSNkBbU4B 8XuM0xjLggB4kZLgPRsjEnc0dI0BIz8mr4CHiNT3qB+PDLiBLKcvJvyp4PzxrgV22B fGUpx+QRnaID/5T/FtGL+GZih+3CR2R0lh0d7bPA= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2043.outbound.protection.outlook.com [40.107.105.43]) by sourceware.org (Postfix) with ESMTPS id 6B4433858D35 for ; Tue, 4 Jul 2023 15:19:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6B4433858D35 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OnzF4zJPHd3fv5mr1umO/4jzCXj+QXJ8RnyxX6kEIDGPkDO1av3bCO+D9haJb81DLVmON6dcCbqypdRwhWR04kFN/LOC8gmOnwE3FQ3xtKui39LKEgoovWkWj8sxcxkRDf0XoeAd5ZLI/rMu6xYRkT6wegPbuX6Y0sHROBVq9kuLWZ+ZVrqSqVbXbvsfAkxxAA32fAPbpv85n264r+tsbu2Q+bUwIq13iHYNPDaO4ktTZDmPsi/d9nP6Mg1oEkAQ+SxTWlEzfl2VyslURSrB/MvYm8PY1vp/biYD3BLhyj+4F7TwuFm/ehplMktYNCBpr4jtWcg1MesOuvPGCOdQtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jcYkNEs7kFhS1pB1XWtxr4D5eN74gDllsjrqV0d7Tts=; b=RQMHKDkft0uRyakoFwPM+rsTlSGgX+pm9/tuleKQzmsUOHmlsggs0X1ANxN4e+weB6mvJ62hmpAgunQG2MNwCsuiQfVHtSiLD11kJr0imNAA0fVxym5JpMYAf3yISKrNst3mV9ZXS+4cZk6Ky3ltPo8EsoH7ddMS6KAdk7Yxk/osJa4q63JpQl7R1YynBZvFuFw47jTVUi+tIIAk6z59k4Y2eioCdIBWsHCZSQOaQoeQr665cZpO30vExUZaGCy5GESqvafb+peksNYy+JyBsV9ELwvMesN0a/Vmv1Lq/EkKpSKaeNWuCSiZK1/1gd6ORYPT/rf4c2vWl31JgGVuqg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by PA4PR04MB9269.eurprd04.prod.outlook.com (2603:10a6:102:2a4::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Tue, 4 Jul 2023 15:19:46 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880%4]) with mapi id 15.20.6544.024; Tue, 4 Jul 2023 15:19:46 +0000 Message-ID: <18221c8c-4d6e-f0f1-3738-785023be1268@suse.com> Date: Tue, 4 Jul 2023 17:19:53 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: [PATCH 02/10] x86: fold legacy/VEX {,V}MOV{H,L}* entries Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: In-Reply-To: X-ClientProxiedBy: FR2P281CA0115.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9d::17) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PA4PR04MB9269:EE_ X-MS-Office365-Filtering-Correlation-Id: 4484b2cb-6a4e-4a27-a73b-08db7ca219ab X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ULq7tEcW56QLeAAUIuLcb+/EoFW3UA2J3OBql8oIZfq8EeaDK2JP1Wi8fWF5TNsf2j7IfevzUi1Qd0iPdrRKGeLFvBq5MEsvg+NlKmtnfeDdr2DPJ/nhSA9zMoMyO4oebIc3EIJFImgzemyl/cBDYgmHYYEQ+C7MXJwSPEv5csQpElGJJMkSRIr91M3ZzRM/R7LO/hE7x1BobmuL83uUiT2Dhzuxd6TvdSIF//HXUcB3aFy4hXZMq0o+4EhY0MRGCEMxpgW7XPpaJlu0l1dNKAX8PB6dGMUg/v6Wq30zwlOSxWGnrhk6Y/L1vNKaLPcw4RHBFD0QoQKOgkQ46GculIq62a9DSzzUHRXpbg07Z8rVZCv0el+KRgVBK2+a8JvY/BxtyoeySKFXSE8F7qiT2u4yF+AeRkOua2W/pKYqIrLBGUlhmCQaISM+6J9fspP9I9nHEZ/BTXj+/fhYevVCTKKvUrA1WQG8F9v/rJkeaxvxapW1dqklJTyz1ufQp8UVLc95HuBgrjAQPF28VwY4VvEZFPJUwDZRCSeIo4+unc90RiMDSAfvDmPL3wDuO9pTCyFWBOZF/Z2qm7nnBLtdzQQNa2Lix0IocZJatF2xKFUTAu8/Va/hP867jajJm2c/gpKifmXQ6SElDGgGuATKtg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU2PR04MB8790.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(376002)(39850400004)(346002)(136003)(396003)(366004)(451199021)(26005)(31686004)(478600001)(6666004)(6512007)(6506007)(31696002)(86362001)(2616005)(186003)(38100700002)(66476007)(6916009)(66556008)(4326008)(66946007)(83380400001)(6486002)(316002)(8676002)(8936002)(41300700001)(2906002)(5660300002)(36756003)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?9MG5+k1wCu+pBp2o8wg1eGokKa9G?= =?utf-8?q?cUVtq6/lV9crtBmEGojktnYbqfa8CqzrALh4HFpOj5pB0cDXZONGdNQTgMBpK36GH?= =?utf-8?q?Md1gwB4ngkH/1zMEA8EqQsJkT0X+h+wa61GgP6VX9zZbWGGQukNVrQcSg2TiUMQv/?= =?utf-8?q?Yr6ciZAc/lJ4NxjKgE5vD41aA89t+sVLtEvkMFqRd136jENqQ3d0B8xhxBmTbRdQ5?= =?utf-8?q?rllo+WTNlROcJpwcM4GVURywcpnxPPhHMG6b+mTOADpN69Cbc28X5IZVUgIuNNB35?= =?utf-8?q?eFc7bXo2/dgzSYqy08nJlxHqnRV44/l1zh4bRtFdSVdQLYz795w7q8wK0OFkt6Um3?= =?utf-8?q?z4mwpS2zBzezUGh+llJgQizCv5K2lr8PdtaRW8XlI0iSnGTFsfO2Yaa1wb8NH3x8S?= =?utf-8?q?8LTMNJctq56HrbOdsm/ZDocG4m8VCWwdoAyimWlF9djNkEZwrGVj8lcvqseHCRKiO?= =?utf-8?q?tJGhz22OTOuOnUGxDClwJ7X1wqzQi8a2CkUXFdhN9aVwG5lnq81q+oYs359OYHekn?= =?utf-8?q?0EoTQCEA5mgxyvDUdSkU0I+sazS1XHtAbQsd0UFRQ7NpqErvlfXFAyet11ySGgvkp?= =?utf-8?q?LdAg6iGVM1pVfDtwIiqFAv44KbFkoZ4DdcTb1MLLrfgy9BP+TbklLkrcx2Z/SCmVP?= =?utf-8?q?b7k4LV++hbQJIWLsWehdRjbllyvrS8rHyXvp1wXn/VH8qWDtxMWTYFwT1Gr9Eiw6s?= =?utf-8?q?YsE/6av6c/VSX7ogm9XS4yZaiY4dVhkI35tkXCLPhabqvdhDvgACIihy2oaE6hW3E?= =?utf-8?q?JZ9WwK/XAEciG/IWKQN8GF6c3Ks5+SVcQpjKp+JRNCSIGiN/eLTf/mRh9OR8HHzQh?= =?utf-8?q?beR+f9DfXdQtWO2wPVdZQ7whim7nIzsnWn21YRGbOUa7SlFIyIKdmscYO5ksTevX1?= =?utf-8?q?GrgcWfN7CJZDAZcplQZVdlXnLHFBiHsv41YZmslyCNc8Qeh7wvcFc0sVlNsahzojK?= =?utf-8?q?sj+Cw2Ec0mTtzofEI7Z5XoJjH9Tp0C86OREeryCCC5OoO4uCOLU7gglGFk/Vb8v9W?= =?utf-8?q?O+ZIKlWUf4Avw4Jo5+3ZEVRTD2WVlaOMVtugssnHDn7pngkVtzJMH1/VPn2yl/xnH?= =?utf-8?q?vagxAUbNGdZxwuT9YwgI6XIA7sGjHnFH925FhoJaFCYHu/OfiLrolQJBg8LXFvj9t?= =?utf-8?q?na5LLa+C0t8S34FfotiVeb5P78qpa5eryZ/tQyxlQBymWy3FEmnSVrYkmzf4D256i?= =?utf-8?q?hgWP8vQ6KmMDJunIQdZwJA2MERJbYfJcljip3NJG4xDfsvFyBFvuwyhXGhwhXRQBW?= =?utf-8?q?PYYwapHw2fGSo/lHyHWo/3jKgDAeyliBszAGZMZ6eLRq75vx4IZuSgF66bRDjADfR?= =?utf-8?q?OTpRnShd2vEf9LKVZKvXAeIMoPMcIglr+y4MJwQCtTiDvjdpk4Vf0rkJKISj2SeKm?= =?utf-8?q?Li4GWAX7RjyVHc7IUHdAingWe/OyQPoKl43Yfxy5ttYdSMdAm2WIDspPqp5Im+XBe?= =?utf-8?q?j9oD2CSyLOqoDX+qHo3IAiWUVMFDXkNKNyCUDQ+9TUnoRPWOGmPGaDkPOgaG1FUJD?= =?utf-8?q?7nOR5N3JOkwD?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4484b2cb-6a4e-4a27-a73b-08db7ca219ab X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2023 15:19:46.1214 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: x+/h8yLMW7J0/qMW/z1m0Gu40zAfVXLzxChH+6ZvqgTWidQYBi0bla4jlGvres3hSDQkzneVxG874VB9W7VSsg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB9269 X-Spam-Status: No, score=-3027.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, UPPERCASE_50_75 autolearn=no 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.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770503799204427418?= X-GMAIL-MSGID: =?utf-8?q?1770503799204427418?= By changing decode order to do ModR/M.mod last (rather than VEX.L), the VEX entries (which are already reused by EVEX decoding) can be folded with their legacy counterparts as well. Note how this change of decode order also allows removing two auxiliary #define-s, which were introduced during earlier folding (because of that unhelpful order of steps). --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -931,12 +931,6 @@ enum MOD_0F38FB_PREFIX_1, MOD_0F3A0F_PREFIX_1, - MOD_VEX_0F12_PREFIX_0, - MOD_VEX_0F12_PREFIX_2, - MOD_VEX_0F13, - MOD_VEX_0F16_PREFIX_0, - MOD_VEX_0F16_PREFIX_2, - MOD_VEX_0F17, MOD_VEX_0F2B, MOD_VEX_0F41_L_1, MOD_VEX_0F42_L_1, @@ -1362,14 +1356,12 @@ enum enum { - VEX_LEN_0F12_P_0_M_0 = 0, - VEX_LEN_0F12_P_0_M_1, -#define VEX_LEN_0F12_P_2_M_0 VEX_LEN_0F12_P_0_M_0 - VEX_LEN_0F13_M_0, - VEX_LEN_0F16_P_0_M_0, - VEX_LEN_0F16_P_0_M_1, -#define VEX_LEN_0F16_P_2_M_0 VEX_LEN_0F16_P_0_M_0 - VEX_LEN_0F17_M_0, + VEX_LEN_0F12_P_0 = 0, + VEX_LEN_0F12_P_2, + VEX_LEN_0F13, + VEX_LEN_0F16_P_0, + VEX_LEN_0F16_P_2, + VEX_LEN_0F17, VEX_LEN_0F41, VEX_LEN_0F42, VEX_LEN_0F44, @@ -3665,17 +3657,17 @@ static const struct dis386 prefix_table[ /* PREFIX_VEX_0F12 */ { - { MOD_TABLE (MOD_VEX_0F12_PREFIX_0) }, + { VEX_LEN_TABLE (VEX_LEN_0F12_P_0) }, { "%XEvmov%XSldup", { XM, EXEvexXNoBcst }, 0 }, - { MOD_TABLE (MOD_VEX_0F12_PREFIX_2) }, + { VEX_LEN_TABLE (VEX_LEN_0F12_P_2) }, { "%XEvmov%XDdup", { XM, EXymmq }, 0 }, }, /* PREFIX_VEX_0F16 */ { - { MOD_TABLE (MOD_VEX_0F16_PREFIX_0) }, + { VEX_LEN_TABLE (VEX_LEN_0F16_P_0) }, { "%XEvmov%XShdup", { XM, EXEvexXNoBcst }, 0 }, - { MOD_TABLE (MOD_VEX_0F16_PREFIX_2) }, + { VEX_LEN_TABLE (VEX_LEN_0F16_P_2) }, }, /* PREFIX_VEX_0F2A */ @@ -5965,11 +5957,11 @@ static const struct dis386 vex_table[][2 { PREFIX_TABLE (PREFIX_0F10) }, { PREFIX_TABLE (PREFIX_0F11) }, { PREFIX_TABLE (PREFIX_VEX_0F12) }, - { MOD_TABLE (MOD_VEX_0F13) }, + { VEX_LEN_TABLE (VEX_LEN_0F13) }, { "vunpcklpX", { XM, Vex, EXx }, PREFIX_OPCODE }, { "vunpckhpX", { XM, Vex, EXx }, PREFIX_OPCODE }, { PREFIX_TABLE (PREFIX_VEX_0F16) }, - { MOD_TABLE (MOD_VEX_0F17) }, + { VEX_LEN_TABLE (VEX_LEN_0F17) }, /* 18 */ { Bad_Opcode }, { Bad_Opcode }, @@ -6819,34 +6811,34 @@ static const struct dis386 vex_table[][2 #include "i386-dis-evex.h" static const struct dis386 vex_len_table[][2] = { - /* VEX_LEN_0F12_P_0_M_0 / VEX_LEN_0F12_P_2_M_0 */ + /* VEX_LEN_0F12_P_0 */ { - { "%XEvmovlpYX", { XM, Vex, EXq }, 0 }, + { MOD_TABLE (MOD_0F12_PREFIX_0) }, }, - /* VEX_LEN_0F12_P_0_M_1 */ + /* VEX_LEN_0F12_P_2 */ { - { "%XEvmovhlpY%XS", { XM, Vex, EXq }, 0 }, + { MOD_TABLE (MOD_0F12_PREFIX_2) }, }, - /* VEX_LEN_0F13_M_0 */ + /* VEX_LEN_0F13 */ { - { "%XEvmovlpYX", { EXq, XM }, PREFIX_OPCODE }, + { MOD_TABLE (MOD_0F13) }, }, - /* VEX_LEN_0F16_P_0_M_0 / VEX_LEN_0F16_P_2_M_0 */ + /* VEX_LEN_0F16_P_0 */ { - { "%XEvmovhpYX", { XM, Vex, EXq }, 0 }, + { MOD_TABLE (MOD_0F16_PREFIX_0) }, }, - /* VEX_LEN_0F16_P_0_M_1 */ + /* VEX_LEN_0F16_P_2 */ { - { "%XEvmovlhpY%XS", { XM, Vex, EXq }, 0 }, + { MOD_TABLE (MOD_0F16_PREFIX_2) }, }, - /* VEX_LEN_0F17_M_0 */ + /* VEX_LEN_0F17 */ { - { "%XEvmovhpYX", { EXq, XM }, PREFIX_OPCODE }, + { MOD_TABLE (MOD_0F17) }, }, /* VEX_LEN_0F41 */ @@ -8039,29 +8031,29 @@ static const struct dis386 mod_table[][2 }, { /* MOD_0F12_PREFIX_0 */ - { "movlpX", { XM, EXq }, 0 }, - { "movhlps", { XM, EXq }, 0 }, + { "%XEVmovlpYX", { XM, Vex, EXq }, 0 }, + { "%XEVmovhlpY%XS", { XM, Vex, EXq }, 0 }, }, { /* MOD_0F12_PREFIX_2 */ - { "movlpX", { XM, EXq }, 0 }, + { "%XEVmovlpYX", { XM, Vex, EXq }, 0 }, }, { /* MOD_0F13 */ - { "movlpX", { EXq, XM }, PREFIX_OPCODE }, + { "%XEVmovlpYX", { EXq, XM }, PREFIX_OPCODE }, }, { /* MOD_0F16_PREFIX_0 */ - { "movhpX", { XM, EXq }, 0 }, - { "movlhps", { XM, EXq }, 0 }, + { "%XEVmovhpYX", { XM, Vex, EXq }, 0 }, + { "%XEVmovlhpY%XS", { XM, Vex, EXq }, 0 }, }, { /* MOD_0F16_PREFIX_2 */ - { "movhpX", { XM, EXq }, 0 }, + { "%XEVmovhpYX", { XM, Vex, EXq }, 0 }, }, { /* MOD_0F17 */ - { "movhpX", { EXq, XM }, PREFIX_OPCODE }, + { "%XEVmovhpYX", { EXq, XM }, PREFIX_OPCODE }, }, { /* MOD_0F18_REG_0 */ @@ -8302,32 +8294,6 @@ static const struct dis386 mod_table[][2 { REG_TABLE (REG_0F3A0F_PREFIX_1_MOD_3) }, }, { - /* MOD_VEX_0F12_PREFIX_0 */ - { VEX_LEN_TABLE (VEX_LEN_0F12_P_0_M_0) }, - { VEX_LEN_TABLE (VEX_LEN_0F12_P_0_M_1) }, - }, - { - /* MOD_VEX_0F12_PREFIX_2 */ - { VEX_LEN_TABLE (VEX_LEN_0F12_P_2_M_0) }, - }, - { - /* MOD_VEX_0F13 */ - { VEX_LEN_TABLE (VEX_LEN_0F13_M_0) }, - }, - { - /* MOD_VEX_0F16_PREFIX_0 */ - { VEX_LEN_TABLE (VEX_LEN_0F16_P_0_M_0) }, - { VEX_LEN_TABLE (VEX_LEN_0F16_P_0_M_1) }, - }, - { - /* MOD_VEX_0F16_PREFIX_2 */ - { VEX_LEN_TABLE (VEX_LEN_0F16_P_2_M_0) }, - }, - { - /* MOD_VEX_0F17 */ - { VEX_LEN_TABLE (VEX_LEN_0F17_M_0) }, - }, - { /* MOD_VEX_0F2B */ { "%XEvmovntpX", { Mx, XM }, PREFIX_OPCODE }, }, --- a/opcodes/i386-dis-evex.h +++ b/opcodes/i386-dis-evex.h @@ -23,11 +23,11 @@ static const struct dis386 evex_table[][ { PREFIX_TABLE (PREFIX_0F10) }, { PREFIX_TABLE (PREFIX_0F11) }, { PREFIX_TABLE (PREFIX_VEX_0F12) }, - { MOD_TABLE (MOD_VEX_0F13) }, + { VEX_LEN_TABLE (VEX_LEN_0F13) }, { "%XEvunpcklpX", { XM, Vex, EXx }, PREFIX_OPCODE }, { "%XEvunpckhpX", { XM, Vex, EXx }, PREFIX_OPCODE }, { PREFIX_TABLE (PREFIX_VEX_0F16) }, - { MOD_TABLE (MOD_VEX_0F17) }, + { VEX_LEN_TABLE (VEX_LEN_0F17) }, /* 18 */ { Bad_Opcode }, { Bad_Opcode }, From patchwork Tue Jul 4 15:20:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 115829 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f45:0:b0:3ea:f831:8777 with SMTP id v5csp1295310vqx; Tue, 4 Jul 2023 08:20:42 -0700 (PDT) X-Google-Smtp-Source: APBJJlH6zLMvB/VfuCBgLArH4GsIJX8hv2EqnfNdWFhdBncF/wOPvyA33gRIVgxSrk7cpPBjA2YZ X-Received: by 2002:a17:906:ae85:b0:991:e849:e13b with SMTP id md5-20020a170906ae8500b00991e849e13bmr8854641ejb.10.1688484042262; Tue, 04 Jul 2023 08:20:42 -0700 (PDT) Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id ck13-20020a170906c44d00b0098e3e818952si5417344ejb.326.2023.07.04.08.20.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jul 2023 08:20:42 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=fTobeIga; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2834C3857708 for ; Tue, 4 Jul 2023 15:20:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2834C3857708 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688484039; bh=afI+xbR/cCZigVuij1C5KTV69votRlsUViY9vT5+xe4=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=fTobeIga6yI7EJk/5y54dorB/ebhrVtBa4IAK4hyOOFZc9tEtY8r9DQJPwqSC8rX/ sdq0YDea0fPZcnFKKsJxpTtHOWspqG5GJsJC0DQ+TmxqRQKgnw1fwXpfe4kzRq5UgL x0FDXXvbs8z0Yd5Fb9JJzhq3UX3STvBv8C5EvzvE= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02on2064.outbound.protection.outlook.com [40.107.249.64]) by sourceware.org (Postfix) with ESMTPS id 065303857726 for ; Tue, 4 Jul 2023 15:20:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 065303857726 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aLnkrYO9tMDfJdrXqg3pcDrTI0ibrfe1cirPLreKqtvhosdZUjo/kiaaFU8fCw9RMlAwb91e3y5HMziufc3DUmRw/0bAh2CrJuZ7bckcGLNR1+nT7XSNHvaNZAxm0wIHbz71nG7QkOxLibRK/Ed5fc4KZNBGFPZYY8XIgbhPCOcbHSDyhqRFtJmZP7ZvMq/dJ9kLH+pE+qFVFAYA9gR70pt5QVS+nCcx/g4CAiW6+EOdgn9oKnbJ2zs3DTQJkw3DvAPG2OnS0+ABB6X8Rd1HUmlgxm13EpRM9JVKoUmYlu1gmQxK/KTJsIMXc5Rgpuz7Pt7g9AlmHC74N9x+NgLbTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=afI+xbR/cCZigVuij1C5KTV69votRlsUViY9vT5+xe4=; b=VgpLmuXm7A8rtX8Q/Hcg4VjoNTkzg6hPufxGL13uDJ8ZgqNIizPw1EZmzfIZ2c4X7onqXoVxbd68Zbyogbvpa13DJgQ9ggmPplN+QvHfq0ubq1nDLrd7kM6Ir7+4SMYhl4u3eYguTl/3fWOWHqYiLh2GvIuU2ledOur0EgGYNhKB31vEEv7R1PF2X9PM5Gy0z6qieqFfYffRxLOpxbc1puqeIrVrM8Mq+frz97v5OuOF0vcMni3eub4dnkElKv1vgjF89pUvKZxbqPib/QiQD3FDj+/aE/5Cjvg6suvUkkt2o6JGvh6qtesimtqgG1JvvVIPtOtgtiYSY7BVKw7h+A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by AS8PR04MB8692.eurprd04.prod.outlook.com (2603:10a6:20b:42b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Tue, 4 Jul 2023 15:20:28 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880%4]) with mapi id 15.20.6544.024; Tue, 4 Jul 2023 15:20:28 +0000 Message-ID: <46594eee-305a-8913-c407-806158fbbe8f@suse.com> Date: Tue, 4 Jul 2023 17:20:35 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: [PATCH 03/10] x86: {,V}MOVNT* don't need to go through mod_table[] Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: In-Reply-To: X-ClientProxiedBy: FR2P281CA0114.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9d::6) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AS8PR04MB8692:EE_ X-MS-Office365-Filtering-Correlation-Id: 8640af2a-a3fb-4f4e-efec-08db7ca232d6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hjnBpNmxSxn9WOpHCl5CSsvPEO60gn1PDZVZFrVkoIFC2Qu2rUiQFo9HXro/thmJ7Az/iz8+hQXIIWlxTgzgrsqwFjA/JN+p6pwPBHEl64jeDnJ2D5IlhYCvbvFJeHPy96HznuVivDDi9UuRLyZopXF/AiGkyWSMPxMj3a4Th9OeggHmDIPCTzkMFxUH6GcdezX2Q+15FG1BqeMQedXzJrQO4vAAyQdNt9fhiWIzSDCOFCdtA163ESebBOcyavg74Kbvj+OYijekEO5kl2MYCDdLPThPBRkyz9l/SGu1VRFSkx75v5C5QfKPiJXar4FYig2N0N3jh0ugr/fc7xjcQsQ4xj/LpfzoS9HipZ0bqOuVkuha4mrsCNbFnPnhN8X7XY4H7ATb09+PXnLFvM5GThL1oy9bUHKIdZjwYXTgNccB281I/P+gXJnei3rGmtsiw8g6nGzhMn+T4chY9+TX40ktSmRGk3eBsNDRIMQr9Ub1hjmaIQKvsUhOeQD6rbrEOqYsP2S06RIb9to7U8pPXtzp3XJkk4fp0Xd0ojACbzghtlY2X5vuz5s2f9sj98SiXzWjQb1rVC1PsX8efPxvctnVSxXM1gtEcb0aloIQtQY7Er4c2r0eMMH+4By+oRh7WyzBhYQ9zS2RbGxcm1TzbQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU2PR04MB8790.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(136003)(39850400004)(376002)(346002)(366004)(396003)(451199021)(478600001)(6666004)(5660300002)(8676002)(36756003)(8936002)(31696002)(86362001)(2906002)(38100700002)(66476007)(4326008)(66946007)(66556008)(6916009)(316002)(41300700001)(26005)(31686004)(186003)(6506007)(2616005)(6486002)(6512007)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?5oYCMncidRmPQvNUu16dNqgovW5f?= =?utf-8?q?UnGfpaSIvf2z6/kjMuXC+pBrO02uyWSy+H/jmhm3XfhZJdGaP+hOWIUg02bORRVOX?= =?utf-8?q?mBqoFzXAhk0k1WalBNlosGDxw4O91JXg4cUHxF/T/V52WQIAmqzhjcQjuXR6l91lr?= =?utf-8?q?gs0R5zfzImqgfOdoAA+HmclmBriQE1/u2ZCWMdS+GIy9ojfZjMQkkdygmc+hqp2tk?= =?utf-8?q?oXKztB9dLTh+Ps1oDnCwxP9YNa4W8qCtDfqqj1Ud63byLgx1eLWUOYXcW/wDBnZMv?= =?utf-8?q?vouE8/Rcj049QOAtEBUi9VLCbfcbQlpqP7M8sfhpcCLb/0XErz/IV5IRb07DTRtxu?= =?utf-8?q?HFyJao4SE/06tf+lRiMlshQrrYjtze3SF86A8NC+NPmxAgpgqbntRw114Ook/uPL9?= =?utf-8?q?Y5ugL48Z1ezgtrF0iKCcVhSv8R4holBHAPq6TIWaOotuK+48ExJCKCWDxylXllcvS?= =?utf-8?q?q3ZRhWxWmtgzVVF9vc1OUODgJK1fU04DEoGHHLsSlxOeZFqKtmUKMZ+v9loLK1PDO?= =?utf-8?q?4T65WDLmkVrP4TWWy1ioG+eaNSn/0UXsRyw/rVUwpcGLa+sIKXtOouTAyiXI4VTsw?= =?utf-8?q?s/A0GLHl8Su2y66ten4HtyAvL89p6HT8iV0nMZwGDp4dgXv3YGsen96fxw3MfMYdZ?= =?utf-8?q?VsHGfQMB7Bb0DhMkV1VL/hetrvEr9eX0VdxXyfG+iPg/8jQyQH91ldR/q4h0EM8m8?= =?utf-8?q?jIsvfuxFCxahhfkkDSnqKvF9DSX/eye5qhIUQvqcXd1x9ck1WLpl97TW4/y7cGgzf?= =?utf-8?q?Nv06nGisJWzQsyrZLaA9V0LYXmvtkipplGSouTawNuhOswggh9wlpz6B2Wnpv0/zv?= =?utf-8?q?mvFJdNTi4kZ6UL5gO346o1/kdmSxs5EihOkT/1FzfhFdHYYQVieHrHMlKtXLqVVMF?= =?utf-8?q?Lxmjw3WhESbQ7V+6zGflmswiyrhWL54tFK9U9KGSWLhNg+iH7YKzPX3j/LFE98hYd?= =?utf-8?q?foImdCzLBzzeB6BjzCxXdjGfY0vb0Y/9dBBzEXFJ+jQ5XOwoC1R79NDzxlaJQGTIC?= =?utf-8?q?/1OW6Hpy88uQXFmbxUaQNVbhnz8qib9TKNnBJXMBNMyZnwGTFtfnhFyo65LZgpx80?= =?utf-8?q?oWVmRdxDtx5Hfdfs+oBm10LdJhxXw2KV5rUC8rAk7kcnYART4UdWuIHpbapak2c+r?= =?utf-8?q?Au7XDdx4GBNJbrI77RhwAkl++6yC4dEfz1mx+SFaGmjbxNzf1p6jeLU2oLPXabAyH?= =?utf-8?q?DdLpCaP7fAuCcWXQ64oQpF0f1oFrFaKLci3K6jp5SK0WcX4agUkx7Lqu1bwbwbPwj?= =?utf-8?q?stg8cWoNkDtUgr6nO8dvQqSgicUXDJMj0LPZ2QROlLY+1O7NirVRxsFWT51zJO5sy?= =?utf-8?q?/wgh4KYISNkSHQ2BBmzDMv+BiScrz9pQ+GqX7VR/L66D2CrsR8YKB+rxm9D8JeVj/?= =?utf-8?q?9TA4GzglCHeMde6GUVAbka70tUxh+YdNLnYc6t4vWF/fesX5bwit3gj2U8bTwG+YT?= =?utf-8?q?ae/xUSe6+ITuVtmz5Xl/ucJWre7rb4G7MMxH4ezk68NPAlauhpkxpedhpC7vrbuqI?= =?utf-8?q?4gw5x3Wrnk8m?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8640af2a-a3fb-4f4e-efec-08db7ca232d6 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2023 15:20:28.3341 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /VIH0xTompvXX7X0TUxgLpNg6B5uljzqSKRt7ZHbIwf1pq//aOFA1s1S+Q0iDWhgtX8dFgOtpVjc5jAXUaqQCA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8692 X-Spam-Status: No, score=-3027.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770503843395815178?= X-GMAIL-MSGID: =?utf-8?q?1770503843395815178?= Most of them use Mx already for the memory operand, which rejects the register form of the insn. Use that operand type also for the two EVEX forms which so far have used EXEvexXNoBcst (and thus failed to reject the register forms), compensating by flagging broadcast as bad for all Mx. This way several other insns which don't permit embedded broadcast either are also covered at the same time. --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -889,10 +889,6 @@ enum MOD_0F1B_PREFIX_1, MOD_0F1C_PREFIX_0, MOD_0F1E_PREFIX_1, - MOD_0F2B_PREFIX_0, - MOD_0F2B_PREFIX_1, - MOD_0F2B_PREFIX_2, - MOD_0F2B_PREFIX_3, MOD_0F50, MOD_0F71, MOD_0F72, @@ -908,15 +904,12 @@ enum MOD_0FB2, MOD_0FB4, MOD_0FB5, - MOD_0FC3, MOD_0FC7_REG_3, MOD_0FC7_REG_4, MOD_0FC7_REG_5, MOD_0FC7_REG_6, MOD_0FC7_REG_7, MOD_0FD7, - MOD_0FE7_PREFIX_2, - MOD_0F382A, MOD_0F38DC_PREFIX_1, MOD_0F38DD_PREFIX_1, MOD_0F38DE_PREFIX_1, @@ -931,7 +924,6 @@ enum MOD_0F38FB_PREFIX_1, MOD_0F3A0F_PREFIX_1, - MOD_VEX_0F2B, MOD_VEX_0F41_L_1, MOD_VEX_0F42_L_1, MOD_VEX_0F44_L_0, @@ -951,9 +943,7 @@ enum MOD_VEX_0FAE_REG_2, MOD_VEX_0FAE_REG_3, MOD_VEX_0FD7, - MOD_VEX_0FE7, MOD_VEX_0F381A, - MOD_VEX_0F382A, MOD_VEX_0F382C, MOD_VEX_0F382D, MOD_VEX_0F382E, @@ -2328,7 +2318,7 @@ static const struct dis386 dis386_twobyt { "xaddB", { Ebh1, Gb }, 0 }, { "xaddS", { Evh1, Gv }, 0 }, { PREFIX_TABLE (PREFIX_0FC2) }, - { MOD_TABLE (MOD_0FC3) }, + { "movntiS", { Mdq, Gdq }, PREFIX_OPCODE }, { "pinsrw", { MX, Edw, Ib }, PREFIX_OPCODE }, { "pextrw", { Gd, MS, Ib }, PREFIX_OPCODE }, { "shufpX", { XM, EXx, Ib }, PREFIX_OPCODE }, @@ -3204,10 +3194,10 @@ static const struct dis386 prefix_table[ /* PREFIX_0F2B */ { - { MOD_TABLE (MOD_0F2B_PREFIX_0) }, - { MOD_TABLE (MOD_0F2B_PREFIX_1) }, - { MOD_TABLE (MOD_0F2B_PREFIX_2) }, - { MOD_TABLE (MOD_0F2B_PREFIX_3) }, + { "movntps", { Mx, XM }, 0 }, + { "movntss", { Md, XM }, 0 }, + { "movntpd", { Mx, XM }, 0 }, + { "movntsd", { Mq, XM }, 0 }, }, /* PREFIX_0F2C */ @@ -3544,9 +3534,9 @@ static const struct dis386 prefix_table[ /* PREFIX_0FE7 */ { - { "movntq", { Mq, MX }, PREFIX_OPCODE }, + { "movntq", { Mq, MX }, 0 }, { Bad_Opcode }, - { MOD_TABLE (MOD_0FE7_PREFIX_2) }, + { "movntdq", { Mx, XM }, 0 }, }, /* PREFIX_0FF0 */ @@ -4522,7 +4512,7 @@ static const struct dis386 three_byte_ta /* 28 */ { "pmuldq", { XM, EXx }, PREFIX_DATA }, { "pcmpeqq", { XM, EXx }, PREFIX_DATA }, - { MOD_TABLE (MOD_0F382A) }, + { "movntdqa", { XM, Mx }, PREFIX_DATA }, { "packusdw", { XM, EXx }, PREFIX_DATA }, { Bad_Opcode }, { Bad_Opcode }, @@ -5984,7 +5974,7 @@ static const struct dis386 vex_table[][2 { "vmovapX", { XM, EXx }, PREFIX_OPCODE }, { "vmovapX", { EXxS, XM }, PREFIX_OPCODE }, { PREFIX_TABLE (PREFIX_VEX_0F2A) }, - { MOD_TABLE (MOD_VEX_0F2B) }, + { "vmovntpX", { Mx, XM }, PREFIX_OPCODE }, { PREFIX_TABLE (PREFIX_VEX_0F2C) }, { PREFIX_TABLE (PREFIX_VEX_0F2D) }, { PREFIX_TABLE (PREFIX_0F2E) }, @@ -6195,7 +6185,7 @@ static const struct dis386 vex_table[][2 { "vpmulhuw", { XM, Vex, EXx }, PREFIX_DATA }, { "vpmulhw", { XM, Vex, EXx }, PREFIX_DATA }, { PREFIX_TABLE (PREFIX_0FE6) }, - { MOD_TABLE (MOD_VEX_0FE7) }, + { "vmovntdq", { Mx, XM }, PREFIX_DATA }, /* e8 */ { "vpsubsb", { XM, Vex, EXx }, PREFIX_DATA }, { "vpsubsw", { XM, Vex, EXx }, PREFIX_DATA }, @@ -6274,7 +6264,7 @@ static const struct dis386 vex_table[][2 /* 28 */ { "vpmuldq", { XM, Vex, EXx }, PREFIX_DATA }, { "vpcmpeqq", { XM, Vex, EXx }, PREFIX_DATA }, - { MOD_TABLE (MOD_VEX_0F382A) }, + { "vmovntdqa", { XM, Mx }, PREFIX_DATA }, { "vpackusdw", { XM, Vex, EXx }, PREFIX_DATA }, { MOD_TABLE (MOD_VEX_0F382C) }, { MOD_TABLE (MOD_VEX_0F382D) }, @@ -8111,22 +8101,6 @@ static const struct dis386 mod_table[][2 { REG_TABLE (REG_0F1E_P_1_MOD_3) }, }, { - /* MOD_0F2B_PREFIX_0 */ - {"movntps", { Mx, XM }, PREFIX_OPCODE }, - }, - { - /* MOD_0F2B_PREFIX_1 */ - {"movntss", { Md, XM }, PREFIX_OPCODE }, - }, - { - /* MOD_0F2B_PREFIX_2 */ - {"movntpd", { Mx, XM }, PREFIX_OPCODE }, - }, - { - /* MOD_0F2B_PREFIX_3 */ - {"movntsd", { Mq, XM }, PREFIX_OPCODE }, - }, - { /* MOD_0F50 */ { Bad_Opcode }, { "VmovmskpX", { Gdq, XS }, PREFIX_OPCODE }, @@ -8199,10 +8173,6 @@ static const struct dis386 mod_table[][2 { "lgsS", { Gv, Mp }, 0 }, }, { - /* MOD_0FC3 */ - { "movntiS", { Edq, Gdq }, PREFIX_OPCODE }, - }, - { /* MOD_0FC7_REG_3 */ { "xrstors", { FXSAVE }, 0 }, }, @@ -8230,14 +8200,6 @@ static const struct dis386 mod_table[][2 { "pmovmskb", { Gdq, MS }, 0 }, }, { - /* MOD_0FE7_PREFIX_2 */ - { "movntdq", { Mx, XM }, 0 }, - }, - { - /* MOD_0F382A */ - { "movntdqa", { XM, Mx }, PREFIX_DATA }, - }, - { /* MOD_0F38DC_PREFIX_1 */ { "aesenc128kl", { XM, M }, 0 }, { "loadiwkey", { XM, EXx }, 0 }, @@ -8294,10 +8256,6 @@ static const struct dis386 mod_table[][2 { REG_TABLE (REG_0F3A0F_PREFIX_1_MOD_3) }, }, { - /* MOD_VEX_0F2B */ - { "%XEvmovntpX", { Mx, XM }, PREFIX_OPCODE }, - }, - { /* MOD_VEX_0F41_L_1 */ { Bad_Opcode }, { VEX_W_TABLE (VEX_W_0F41_L_1_M_1) }, @@ -8390,18 +8348,10 @@ static const struct dis386 mod_table[][2 { "vpmovmskb", { Gdq, XS }, PREFIX_DATA }, }, { - /* MOD_VEX_0FE7 */ - { "vmovntdq", { Mx, XM }, PREFIX_DATA }, - }, - { /* MOD_VEX_0F381A */ { VEX_LEN_TABLE (VEX_LEN_0F381A_M_0) }, }, { - /* MOD_VEX_0F382A */ - { "vmovntdqa", { XM, Mx }, PREFIX_DATA }, - }, - { /* MOD_VEX_0F382C */ { VEX_W_TABLE (VEX_W_0F382C_M_0) }, }, @@ -12952,6 +12902,10 @@ OP_M (instr_info *ins, int bytemode, int if (ins->modrm.mod == 3) /* bad bound,lea,lds,les,lfs,lgs,lss,cmpxchg8b,vmptrst modrm */ return BadOp (ins); + + if (bytemode == x_mode) + ins->vex.no_broadcast = true; + return OP_E_memory (ins, bytemode, sizeflag); } --- a/opcodes/i386-dis-evex.h +++ b/opcodes/i386-dis-evex.h @@ -50,7 +50,7 @@ static const struct dis386 evex_table[][ { "%XEvmovapX", { XM, EXx }, PREFIX_OPCODE }, { "%XEvmovapX", { EXxS, XM }, PREFIX_OPCODE }, { PREFIX_TABLE (PREFIX_VEX_0F2A) }, - { MOD_TABLE (MOD_VEX_0F2B) }, + { "%XEvmovntpX", { Mx, XM }, PREFIX_OPCODE }, { PREFIX_TABLE (PREFIX_VEX_0F2C) }, { PREFIX_TABLE (PREFIX_VEX_0F2D) }, { PREFIX_TABLE (PREFIX_0F2E) }, --- a/opcodes/i386-dis-evex-w.h +++ b/opcodes/i386-dis-evex-w.h @@ -156,7 +156,7 @@ }, /* EVEX_W_0FE7 */ { - { "%XEvmovntdq", { EXEvexXNoBcst, XM }, PREFIX_DATA }, + { "%XEvmovntdq", { Mx, XM }, PREFIX_DATA }, }, /* EVEX_W_0FF2 */ { @@ -293,7 +293,7 @@ }, /* EVEX_W_0F382A_P_2 */ { - { "%XEvmovntdqaY", { XM, EXEvexXNoBcst }, 0 }, + { "%XEvmovntdqaY", { XM, Mx }, 0 }, }, /* EVEX_W_0F382B */ { From patchwork Tue Jul 4 15:21:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 115830 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f45:0:b0:3ea:f831:8777 with SMTP id v5csp1295755vqx; Tue, 4 Jul 2023 08:21:23 -0700 (PDT) X-Google-Smtp-Source: APBJJlFXqVmJoGWt3PBHxatN1P4FCT78xAgMkBvV/PR4kGeV4XYv8wvCUdxOe/KHyWPPPI0dzXvy X-Received: by 2002:ac2:5e2f:0:b0:4f9:5ac3:4133 with SMTP id o15-20020ac25e2f000000b004f95ac34133mr8633147lfg.25.1688484083247; Tue, 04 Jul 2023 08:21:23 -0700 (PDT) Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id w12-20020a056402128c00b0051e1aefd7ccsi1512302edv.280.2023.07.04.08.21.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jul 2023 08:21:23 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=XSfONMvT; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E17BF3857708 for ; Tue, 4 Jul 2023 15:21:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E17BF3857708 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688484070; bh=3BfEazilDFrx0BEKK9R08rA/Gm04BhO3/gWf0/8RSVM=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=XSfONMvTRhh1Fz4KZTV5yC7BeohoPQc+VhctsNxmcuyKaTvb0AQFvSTSHtS91Mj1m NXRwoPtIX0URmZEEcXazpgf9O7rnwlKHeqNBp8mECNPBPE8/QuN40C/sW6FjE7o9cS 77i4iqJA4bGKGUX9x6qETQZO9dVHDuZ7lEGplVE0= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2066.outbound.protection.outlook.com [40.107.105.66]) by sourceware.org (Postfix) with ESMTPS id 064CD3857723 for ; Tue, 4 Jul 2023 15:20:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 064CD3857723 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SvEXwXywbU0LjR/oyunoq25kogpPL9oprQYuB6eKKs28OwCYKZVu2VRl0WRJ78ftDrwIS3UyslMctAQ3GW/PmuH0/OVznCvXZMsEbuLp2qdDMiGsafcY/mCoS/mJnScM2SsKOd640x1b+eQmtt1N7tcaHMlTMIv+SkdIobO8csx9eLlMp9OabrjZpV04kP5Nxd2+s/VIC7jrprTd99ylXM+Tjs0vHgsCMQC8B7XHGamMBIxlLHnvEyqtCB2YRAj2gJHg++rZAJmxs9PyuSTarO3UvbcRrHVA8v64IfXJC3zZz6BfbThcZ9QM2gYBkiwQext0ZLGfP17Cd7ANGO8sWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3BfEazilDFrx0BEKK9R08rA/Gm04BhO3/gWf0/8RSVM=; b=GwqyMwQpCLveqHv9IyfpPZhrbJ3n+hi+ZACEnbAAOXvfFUfj5ychD/Kh/d6uK6yvhGUKin8q7ohqnsOSlGaSRduNDmNHGovNVDPVFwhTFA2eamlorTar05YwqZNt5bamZz4ZTgV6/sBgyAoJeZDLne0Qqv/uN2DNRGN4bUHbv1n+YVZsWUo6HNZV5UE2VVolzgGKwnvA0ZUISUAxEBMaTr6HE/csmL82MhXS9iwZVnZrAYyPFeEMlVfQ4Obz7lUk2gZcXaLimyIgclhWX7HUmuEtEFqE60+lsABDpAaPL2oMa9FUzt0dQYoyawEvmIxZMfhgldQjXuBvkY2J3jPxsw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by AS8PR04MB8692.eurprd04.prod.outlook.com (2603:10a6:20b:42b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Tue, 4 Jul 2023 15:20:55 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880%4]) with mapi id 15.20.6544.024; Tue, 4 Jul 2023 15:20:55 +0000 Message-ID: <02a1aabf-4759-009b-5718-f567ed39b81c@suse.com> Date: Tue, 4 Jul 2023 17:21:02 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: [PATCH 04/10] x86: misc further memory-only insns don't need to go through mod_table[] Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: In-Reply-To: X-ClientProxiedBy: FR2P281CA0011.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a::21) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AS8PR04MB8692:EE_ X-MS-Office365-Filtering-Correlation-Id: 3a48c6bb-e29a-42b3-6016-08db7ca242dd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 49Pet/JnfnGD9cy2k8W0gaaOeuGBxE2pDaZKKZpX+xlpCjdMwUFeNJfJc+wvB5wxIrOjXRP+3vGFvaER5Z4o4Z3CxAX0MJsSf7YyaBsvNWw+e7fyoyh72SE8RLavZ2g+VejEeLvdv/y1B0WtKZb33zVQOzEiJbdD/vqPG/mPxOsa7wByYosBHMAC71BIUZYiXQ1I0HHnbdDHpGesxDfd1fDOWRUfB0eDF3Hd3rRDfc+fXXn4fhW2VK+rGK0Y/akuMT/kDNXQIubNq4Sl9reyzyH+8IU2WXwSSSbPnQ7xofaRv29p2/fcok1m7M3Zqi3lFsDpa9WjdyIm0sp7A3XCGLwIOE7YOZC13NdxUXch25n9EeVzNwpnIGuliCOc6ogpmxrKyFBkYXim0M1vcfiouCY46w3B44xI/j/26uqn6EjD8F7VsnWPEDG3K6IIgWwXayOVmhAsAhqIf8QnQaEtQNjmMSc2tKzCyThjxCoB7q+HMnHcL3JxYjOnjgxqb9IOja1IRew8tXuA9lMYVuCbbGIlO0noD22uguGFKq30ggKNx7rKCPNbR8yCJq3N/k8S5pMr4eqRTUNngjaxhg8QCOQteb4+F4+8uJ4+sYPhCh8OGG8K8PZG52rBPV4d+m9srUdONXgHOkcUOSH/5kS5NA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU2PR04MB8790.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(136003)(39850400004)(376002)(346002)(366004)(396003)(451199021)(478600001)(6666004)(5660300002)(8676002)(36756003)(8936002)(30864003)(31696002)(86362001)(2906002)(38100700002)(66476007)(4326008)(66946007)(66556008)(6916009)(316002)(41300700001)(26005)(31686004)(186003)(6506007)(2616005)(6486002)(6512007)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?N8IlA0wmnIGuRA9UYoCbZVvxX/LC?= =?utf-8?q?9jzjyAYCtrFkhM6pqDuP1JcCrcFPycEhCHhzc25mpUCatX0kp5a89g6H0r+2PfBcg?= =?utf-8?q?psWzmRw+rJlBlVOEpUhd126SAvUnZC2LcE0jegoeaj1b2ir3XXmnRO4qFYGB1y+CW?= =?utf-8?q?68giXurCE7SMjYWkB0aZUf3Mx0QOiCrkCggB3N2/b763nZ7CGkopqQj9KnlLim4t/?= =?utf-8?q?kJCwm9CaMPyDuBzoVr9vkIbC62szNT+o8rUhfRmaA5EGxPS3RpAYFiPo8g6GWh18i?= =?utf-8?q?cXWL4MkiJgmILzEjClIjPFQDo1UcLtNJDjS7hwwDq2oUqQAosg78hLTBiYcY94R9Z?= =?utf-8?q?nFG+rv89vOmZHIA8vXLZegY7X9zrrk+b24Q7645lnLqiPWp//6hfvDauBuJuDocMz?= =?utf-8?q?iWwndUZIgpWjxygQmZWAEeVPlJwhzxsQoJ3xiRmC5wLCQ8SkHrwJlpsYxS7FQJCAw?= =?utf-8?q?uimqIN4xmrgNydTr3fPEXQ3rUf7DLT5+zWuc25dSXzimsDX2crAYLjDPeb24SL4jG?= =?utf-8?q?8Zu9ihfzmcLdUht8OHCAY/kPUpFT4CJZUHgbZjY9m2g19FW7IZjn9je+0gAchTpQQ?= =?utf-8?q?g8OuWZG09V05Ok/6i+CohOgOyBY0zb/DYQLavvp/xTCD+61BuIU8xcEuj8drqY8Nt?= =?utf-8?q?0bbvaKR0jg7cO6UCNRPvFYq6cHbUgzKLDEF83UsQR/eiGi7Y7IecW2mAP/PekC/fj?= =?utf-8?q?qfmR9fR/tZT2DAHUbOJ4AvfHazrgoIN3zNsEpmGT1B4V9N0Z/1Qm+YOuoQNToUYRz?= =?utf-8?q?bAP0qn7wSPCWFnJPupiEIkEAXFqlJj6oerHKevSnWd3e7I4QVkWJyAWn0y1ERyUEf?= =?utf-8?q?Sid4jTAIKhfBdyf57CPuMIN+8m+cANcxnj6WFVh6SeX6ocgjurCWA6HhJwhbDSY1n?= =?utf-8?q?h4cghpw7FZAmpwQ0hhZQ7ktPo9SwYym5sBFQsynZfEcl/bamWHpiUvjGOFuem/rEQ?= =?utf-8?q?aYTlHpOC/ozlDvkCyQE5Hj0b/Ar75vwgFTZTvTvHRVFbJT95QbAFh9w5mmwXa1TLr?= =?utf-8?q?KyrLaS5BpgDBQHZYlgdwoNIc3YE4PqtzjFqnl8bdJgDywUnca4B6XRKyTWNzlJBD+?= =?utf-8?q?GWRFp21ODistnHtdfdc+BhMEJ5jE2hkqAdRJDbFq8JnuGQnGskpqEHKUUd7XtxuD3?= =?utf-8?q?h2CQYWF7Z61sAid09Mgk8xKEM4sMNaZkGsLcNxChLFACDOkJMi9LglEWXxQNz+STc?= =?utf-8?q?ZRNaq9S236/MG7wMdlCEXW5oV1pmGZBl3Ryo5GuHJ6QiqjHJ+1OzRJ+5E2BBqL3Wz?= =?utf-8?q?be5ivsBBj+4VunFF6hZTpBnezM1wWmVzqbf0oNCorwLRxBmytzAfXKkU7MdT5t3uv?= =?utf-8?q?lMCGUzYUOejeKlQJKsYkncOipyfN2LhYBlYGsLeK8EKrFkFbeLsAppDmF7Emi5Q14?= =?utf-8?q?PF80gwQUjYsd8QqnF/m6FNw94gR+C8fYJzdDtQcqGq418XW7Hw5EMxRlnhGe8boqn?= =?utf-8?q?O01BcLZxxPm/B733tl0QlPwRc24IcQQPVKkaJMOYi/S5uk3P7bpWHocfqvr4B1LEE?= =?utf-8?q?IPOMrvdeNasJ?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3a48c6bb-e29a-42b3-6016-08db7ca242dd X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2023 15:20:55.2503 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 86VqwAHshh2RkJl2Or+1mfxyhEv+l/XQ5NKx/73wQxTHK7Fjphb/ep0KP6qCCQEJyhwtngb4WsgvF27vmpIJKw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8692 X-Spam-Status: No, score=-3027.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770503886173412657?= X-GMAIL-MSGID: =?utf-8?q?1770503886173412657?= Several already use OP_M(), which rejects the register forms of insns, and a few others can easily be converted to do so as well. (Note that FXSAVE_Fixup() wires through to OP_M(). Note further that OP_IndirE(), which wasn't placed very well anyway, is moved down to avoid the need to forward-declare BadOp().) Also adjust formatting of and drop PREFIX_OPCODE from a few adjacent entries. --- a/gas/testsuite/gas/i386/disassem.d +++ b/gas/testsuite/gas/i386/disassem.d @@ -8,9 +8,9 @@ Disassembly of section \.text: 0+ <\.text>: -[ ]*[a-f0-9]+:[ ]*ff[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*ff[ ]+ljmp[ ]*\(bad\) [ ]*[a-f0-9]+:[ ]*ef[ ]*out %eax,\(%dx\) -[ ]*[a-f0-9]+:[ ]*ff[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*ff[ ]+lcall[ ]*\(bad\) [ ]*[a-f0-9]+:[ ]*d8 90 90 90 90 90[ ]*fcoms -0x6f6f6f70\(%eax\) [ ]*[a-f0-9]+:[ ]*c5 ec 4a[ ]*\(bad\) [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait --- a/gas/testsuite/gas/i386/x86-64-disassem.d +++ b/gas/testsuite/gas/i386/x86-64-disassem.d @@ -8,9 +8,9 @@ Disassembly of section \.text: 0+ <\.text>: -[ ]*[a-f0-9]+:[ ]*ff[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*ff[ ]+ljmp[ ]*\(bad\) [ ]*[a-f0-9]+:[ ]*ef[ ]*out %eax,\(%dx\) -[ ]*[a-f0-9]+:[ ]*ff[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*ff[ ]+lcall[ ]*\(bad\) [ ]*[a-f0-9]+:[ ]*d8 90 90 90 90 90[ ]*fcoms -0x6f6f6f70\(%rax\) [ ]*[a-f0-9]+:[ ]*c5 ec 4a[ ]*\(bad\) [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -413,6 +413,7 @@ fetch_error (const instr_info *ins) #define Mw { OP_M, w_mode } #define Mx { OP_M, x_mode } #define Mxmm { OP_M, xmm_mode } +#define Mymm { OP_M, ymm_mode } #define Gb { OP_G, b_mode } #define Gbnd { OP_G, bnd_mode } #define Gv { OP_G, v_mode } @@ -850,20 +851,17 @@ enum REG_EVEX_0F71, REG_EVEX_0F72, REG_EVEX_0F73, - REG_EVEX_0F38C6_M_0_L_2, - REG_EVEX_0F38C7_M_0_L_2 + REG_EVEX_0F38C6_L_2, + REG_EVEX_0F38C7_L_2 }; enum { MOD_62_32BIT = 0, - MOD_8D, MOD_C4_32BIT, MOD_C5_32BIT, MOD_C6_REG_7, MOD_C7_REG_7, - MOD_FF_REG_3, - MOD_FF_REG_5, MOD_0F01_REG_0, MOD_0F01_REG_1, MOD_0F01_REG_2, @@ -873,11 +871,7 @@ enum MOD_0F02, MOD_0F03, MOD_0F12_PREFIX_0, - MOD_0F12_PREFIX_2, - MOD_0F13, MOD_0F16_PREFIX_0, - MOD_0F16_PREFIX_2, - MOD_0F17, MOD_0F18_REG_0, MOD_0F18_REG_1, MOD_0F18_REG_2, @@ -901,25 +895,10 @@ enum MOD_0FAE_REG_5, MOD_0FAE_REG_6, MOD_0FAE_REG_7, - MOD_0FB2, - MOD_0FB4, - MOD_0FB5, - MOD_0FC7_REG_3, - MOD_0FC7_REG_4, - MOD_0FC7_REG_5, MOD_0FC7_REG_6, MOD_0FC7_REG_7, MOD_0FD7, MOD_0F38DC_PREFIX_1, - MOD_0F38DD_PREFIX_1, - MOD_0F38DE_PREFIX_1, - MOD_0F38DF_PREFIX_1, - MOD_0F38F5, - MOD_0F38F6_PREFIX_0, - MOD_0F38F8_PREFIX_1, - MOD_0F38F8_PREFIX_2, - MOD_0F38F8_PREFIX_3, - MOD_0F38F9, MOD_0F38FA_PREFIX_1, MOD_0F38FB_PREFIX_1, MOD_0F3A0F_PREFIX_1, @@ -940,22 +919,11 @@ enum MOD_VEX_0F93_L_0, MOD_VEX_0F98_L_0, MOD_VEX_0F99_L_0, - MOD_VEX_0FAE_REG_2, - MOD_VEX_0FAE_REG_3, MOD_VEX_0FD7, - MOD_VEX_0F381A, - MOD_VEX_0F382C, - MOD_VEX_0F382D, - MOD_VEX_0F382E, - MOD_VEX_0F382F, MOD_VEX_0F3849_X86_64_L_0_W_0, - MOD_VEX_0F384B_X86_64_L_0_W_0, - MOD_VEX_0F385A, MOD_VEX_0F385C_X86_64, MOD_VEX_0F385E_X86_64, MOD_VEX_0F386C_X86_64, - MOD_VEX_0F388C, - MOD_VEX_0F388E, MOD_VEX_0F3A30_L_0, MOD_VEX_0F3A31_L_0, MOD_VEX_0F3A32_L_0, @@ -963,19 +931,13 @@ enum MOD_XOP_09_12, - MOD_EVEX_0F381A, - MOD_EVEX_0F381B, MOD_EVEX_0F3828_P_1, MOD_EVEX_0F382A_P_1_W_1, MOD_EVEX_0F3838_P_1, MOD_EVEX_0F383A_P_1_W_0, - MOD_EVEX_0F385A, - MOD_EVEX_0F385B, MOD_EVEX_0F387A_W_0, MOD_EVEX_0F387B_W_0, MOD_EVEX_0F387C, - MOD_EVEX_0F38C6, - MOD_EVEX_0F38C7, }; enum @@ -1134,7 +1096,7 @@ enum PREFIX_VEX_0F99_L_0_M_1_W_1, PREFIX_VEX_0F3849_X86_64_L_0_W_0_M_0, PREFIX_VEX_0F3849_X86_64_L_0_W_0_M_1, - PREFIX_VEX_0F384B_X86_64_L_0_W_0_M_0, + PREFIX_VEX_0F384B_X86_64_L_0_W_0, PREFIX_VEX_0F3850_W_0, PREFIX_VEX_0F3851_W_0, PREFIX_VEX_0F385C_X86_64_M_1_L_0_W_0, @@ -1370,20 +1332,20 @@ enum VEX_LEN_0F93, VEX_LEN_0F98, VEX_LEN_0F99, - VEX_LEN_0FAE_R_2_M_0, - VEX_LEN_0FAE_R_3_M_0, + VEX_LEN_0FAE_R_2, + VEX_LEN_0FAE_R_3, VEX_LEN_0FC4, VEX_LEN_0FC5, VEX_LEN_0FD6, VEX_LEN_0FF7, VEX_LEN_0F3816, VEX_LEN_0F3819, - VEX_LEN_0F381A_M_0, + VEX_LEN_0F381A, VEX_LEN_0F3836, VEX_LEN_0F3841, VEX_LEN_0F3849_X86_64, VEX_LEN_0F384B_X86_64, - VEX_LEN_0F385A_M_0, + VEX_LEN_0F385A, VEX_LEN_0F385C_X86_64_M_1, VEX_LEN_0F385E_X86_64_M_1, VEX_LEN_0F386C_X86_64_M_1, @@ -1483,13 +1445,13 @@ enum { EVEX_LEN_0F3816 = 0, EVEX_LEN_0F3819, - EVEX_LEN_0F381A_M_0, - EVEX_LEN_0F381B_M_0, + EVEX_LEN_0F381A, + EVEX_LEN_0F381B, EVEX_LEN_0F3836, - EVEX_LEN_0F385A_M_0, - EVEX_LEN_0F385B_M_0, - EVEX_LEN_0F38C6_M_0, - EVEX_LEN_0F38C7_M_0, + EVEX_LEN_0F385A, + EVEX_LEN_0F385B, + EVEX_LEN_0F38C6, + EVEX_LEN_0F38C7, EVEX_LEN_0F3A00, EVEX_LEN_0F3A01, EVEX_LEN_0F3A18, @@ -1528,11 +1490,11 @@ enum VEX_W_0F3816_L_1, VEX_W_0F3818, VEX_W_0F3819_L_1, - VEX_W_0F381A_M_0_L_1, - VEX_W_0F382C_M_0, - VEX_W_0F382D_M_0, - VEX_W_0F382E_M_0, - VEX_W_0F382F_M_0, + VEX_W_0F381A_L_1, + VEX_W_0F382C, + VEX_W_0F382D, + VEX_W_0F382E, + VEX_W_0F382F, VEX_W_0F3836, VEX_W_0F3846, VEX_W_0F3849_X86_64_L_0, @@ -1543,7 +1505,7 @@ enum VEX_W_0F3853, VEX_W_0F3858, VEX_W_0F3859, - VEX_W_0F385A_M_0_L_0, + VEX_W_0F385A_L_0, VEX_W_0F385C_X86_64_M_1_L_0, VEX_W_0F385E_X86_64_M_1_L_0, VEX_W_0F386C_X86_64_M_1_L_0, @@ -1669,8 +1631,8 @@ enum EVEX_W_0F3814_P_1, EVEX_W_0F3815_P_1, EVEX_W_0F3819_L_n, - EVEX_W_0F381A_M_0_L_n, - EVEX_W_0F381B_M_0_L_2, + EVEX_W_0F381A_L_n, + EVEX_W_0F381B_L_2, EVEX_W_0F381E, EVEX_W_0F381F, EVEX_W_0F3820_P_1, @@ -1695,8 +1657,8 @@ enum EVEX_W_0F3837, EVEX_W_0F383A_P_1, EVEX_W_0F3859, - EVEX_W_0F385A_M_0_L_n, - EVEX_W_0F385B_M_0_L_2, + EVEX_W_0F385A_L_n, + EVEX_W_0F385B_L_2, EVEX_W_0F3870, EVEX_W_0F3872_P_2, EVEX_W_0F387A, @@ -1966,7 +1928,7 @@ static const struct dis386 dis386[] = { { "movB", { Gb, EbS }, 0 }, { "movS", { Gv, EvS }, 0 }, { "movD", { Sv, Sw }, 0 }, - { MOD_TABLE (MOD_8D) }, + { "leaS", { Gv, M }, 0 }, { "movD", { Sw, Sv }, 0 }, { REG_TABLE (REG_8F) }, /* 90 */ @@ -2120,11 +2082,11 @@ static const struct dis386 dis386_twobyt { PREFIX_TABLE (PREFIX_0F10) }, { PREFIX_TABLE (PREFIX_0F11) }, { PREFIX_TABLE (PREFIX_0F12) }, - { MOD_TABLE (MOD_0F13) }, + { "movlpX", { Mq, XM }, PREFIX_OPCODE }, { "unpcklpX", { XM, EXx }, PREFIX_OPCODE }, { "unpckhpX", { XM, EXx }, PREFIX_OPCODE }, { PREFIX_TABLE (PREFIX_0F16) }, - { MOD_TABLE (MOD_0F17) }, + { "movhpX", { Mq, XM }, PREFIX_OPCODE }, /* 18 */ { REG_TABLE (REG_0F18) }, { "nopQ", { Ev }, 0 }, @@ -2299,10 +2261,10 @@ static const struct dis386 dis386_twobyt /* b0 */ { "cmpxchgB", { Ebh1, Gb }, 0 }, { "cmpxchgS", { Evh1, Gv }, 0 }, - { MOD_TABLE (MOD_0FB2) }, + { "lssS", { Gv, Mp }, 0 }, { "btrS", { Evh1, Gv }, 0 }, - { MOD_TABLE (MOD_0FB4) }, - { MOD_TABLE (MOD_0FB5) }, + { "lfsS", { Gv, Mp }, 0 }, + { "lgsS", { Gv, Mp }, 0 }, { "movz{bR|x}", { Gv, Eb }, 0 }, { "movz{wR|x}", { Gv, Ew }, 0 }, /* yes, there really is movzww ! */ /* b8 */ @@ -2700,9 +2662,9 @@ static const struct dis386 reg_table[][8 { "incQ", { Evh1 }, 0 }, { "decQ", { Evh1 }, 0 }, { "call{@|}", { NOTRACK, indirEv, BND }, 0 }, - { MOD_TABLE (MOD_FF_REG_3) }, + { "{l|}call^", { indirEp }, 0 }, { "jmp{@|}", { NOTRACK, indirEv, BND }, 0 }, - { MOD_TABLE (MOD_FF_REG_5) }, + { "{l|}jmp^", { indirEp }, 0 }, { "push{P|}", { stackEv }, 0 }, { Bad_Opcode }, }, @@ -2856,9 +2818,9 @@ static const struct dis386 reg_table[][8 { Bad_Opcode }, { "cmpxchg8b", { { CMPXCHG8B_Fixup, q_mode } }, 0 }, { Bad_Opcode }, - { MOD_TABLE (MOD_0FC7_REG_3) }, - { MOD_TABLE (MOD_0FC7_REG_4) }, - { MOD_TABLE (MOD_0FC7_REG_5) }, + { "xrstors", { FXSAVE }, 0 }, + { "xsavec", { FXSAVE }, 0 }, + { "xsaves", { FXSAVE }, 0 }, { MOD_TABLE (MOD_0FC7_REG_6) }, { MOD_TABLE (MOD_0FC7_REG_7) }, }, @@ -2897,8 +2859,8 @@ static const struct dis386 reg_table[][8 { { Bad_Opcode }, { Bad_Opcode }, - { MOD_TABLE (MOD_VEX_0FAE_REG_2) }, - { MOD_TABLE (MOD_VEX_0FAE_REG_3) }, + { VEX_LEN_TABLE (VEX_LEN_0FAE_R_2) }, + { VEX_LEN_TABLE (VEX_LEN_0FAE_R_3) }, }, /* REG_VEX_0F3849_X86_64_L_0_W_0_M_1_P_0 */ { @@ -3124,16 +3086,16 @@ static const struct dis386 prefix_table[ /* PREFIX_0F12 */ { { MOD_TABLE (MOD_0F12_PREFIX_0) }, - { "movsldup", { XM, EXx }, PREFIX_OPCODE }, - { MOD_TABLE (MOD_0F12_PREFIX_2) }, - { "movddup", { XM, EXq }, PREFIX_OPCODE }, + { "movsldup", { XM, EXx }, 0 }, + { "%XEVmovlpYX", { XM, Vex, Mq }, 0 }, + { "movddup", { XM, EXq }, 0 }, }, /* PREFIX_0F16 */ { { MOD_TABLE (MOD_0F16_PREFIX_0) }, - { "movshdup", { XM, EXx }, PREFIX_OPCODE }, - { MOD_TABLE (MOD_0F16_PREFIX_2) }, + { "movshdup", { XM, EXx }, 0 }, + { "%XEVmovhpYX", { XM, Vex, Mq }, 0 }, }, /* PREFIX_0F18_REG_6_MOD_0_X86_64 */ @@ -3570,21 +3532,21 @@ static const struct dis386 prefix_table[ /* PREFIX_0F38DD */ { { Bad_Opcode }, - { MOD_TABLE (MOD_0F38DD_PREFIX_1) }, + { "aesdec128kl", { XM, M }, 0 }, { "aesenclast", { XM, EXx }, 0 }, }, /* PREFIX_0F38DE */ { { Bad_Opcode }, - { MOD_TABLE (MOD_0F38DE_PREFIX_1) }, + { "aesenc256kl", { XM, M }, 0 }, { "aesdec", { XM, EXx }, 0 }, }, /* PREFIX_0F38DF */ { { Bad_Opcode }, - { MOD_TABLE (MOD_0F38DF_PREFIX_1) }, + { "aesdec256kl", { XM, M }, 0 }, { "aesdeclast", { XM, EXx }, 0 }, }, @@ -3606,18 +3568,18 @@ static const struct dis386 prefix_table[ /* PREFIX_0F38F6 */ { - { MOD_TABLE (MOD_0F38F6_PREFIX_0) }, - { "adoxS", { Gdq, Edq}, PREFIX_OPCODE }, - { "adcxS", { Gdq, Edq}, PREFIX_OPCODE }, + { "wrssK", { M, Gdq }, 0 }, + { "adoxS", { Gdq, Edq}, 0 }, + { "adcxS", { Gdq, Edq}, 0 }, { Bad_Opcode }, }, /* PREFIX_0F38F8 */ { { Bad_Opcode }, - { MOD_TABLE (MOD_0F38F8_PREFIX_1) }, - { MOD_TABLE (MOD_0F38F8_PREFIX_2) }, - { MOD_TABLE (MOD_0F38F8_PREFIX_3) }, + { "enqcmds", { Gva, M }, 0 }, + { "movdir64b", { Gva, M }, 0 }, + { "enqcmd", { Gva, M }, 0 }, }, /* PREFIX_0F38FA */ { @@ -3926,7 +3888,7 @@ static const struct dis386 prefix_table[ { RM_TABLE (RM_VEX_0F3849_X86_64_L_0_W_0_M_1_P_3) }, }, - /* PREFIX_VEX_0F384B_X86_64_L_0_W_0_M_0 */ + /* PREFIX_VEX_0F384B_X86_64_L_0_W_0 */ { { Bad_Opcode }, { "tilestored", { MVexSIBMEM, TMM }, 0 }, @@ -4740,12 +4702,12 @@ static const struct dis386 three_byte_ta { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { MOD_TABLE (MOD_0F38F5) }, + { "wrussK", { M, Gdq }, PREFIX_DATA }, { PREFIX_TABLE (PREFIX_0F38F6) }, { Bad_Opcode }, /* f8 */ { PREFIX_TABLE (PREFIX_0F38F8) }, - { MOD_TABLE (MOD_0F38F9) }, + { "movdiri", { Mdq, Gdq }, PREFIX_OPCODE }, { PREFIX_TABLE (PREFIX_0F38FA) }, { PREFIX_TABLE (PREFIX_0F38FB) }, { PREFIX_TABLE (PREFIX_0F38FC) }, @@ -6246,7 +6208,7 @@ static const struct dis386 vex_table[][2 /* 18 */ { VEX_W_TABLE (VEX_W_0F3818) }, { VEX_LEN_TABLE (VEX_LEN_0F3819) }, - { MOD_TABLE (MOD_VEX_0F381A) }, + { VEX_LEN_TABLE (VEX_LEN_0F381A) }, { Bad_Opcode }, { "vpabsb", { XM, EXx }, PREFIX_DATA }, { "vpabsw", { XM, EXx }, PREFIX_DATA }, @@ -6266,10 +6228,10 @@ static const struct dis386 vex_table[][2 { "vpcmpeqq", { XM, Vex, EXx }, PREFIX_DATA }, { "vmovntdqa", { XM, Mx }, PREFIX_DATA }, { "vpackusdw", { XM, Vex, EXx }, PREFIX_DATA }, - { MOD_TABLE (MOD_VEX_0F382C) }, - { MOD_TABLE (MOD_VEX_0F382D) }, - { MOD_TABLE (MOD_VEX_0F382E) }, - { MOD_TABLE (MOD_VEX_0F382F) }, + { VEX_W_TABLE (VEX_W_0F382C) }, + { VEX_W_TABLE (VEX_W_0F382D) }, + { VEX_W_TABLE (VEX_W_0F382E) }, + { VEX_W_TABLE (VEX_W_0F382F) }, /* 30 */ { "vpmovzxbw", { XM, EXxmmq }, PREFIX_DATA }, { "vpmovzxbd", { XM, EXxmmqd }, PREFIX_DATA }, @@ -6318,7 +6280,7 @@ static const struct dis386 vex_table[][2 /* 58 */ { VEX_W_TABLE (VEX_W_0F3858) }, { VEX_W_TABLE (VEX_W_0F3859) }, - { MOD_TABLE (MOD_VEX_0F385A) }, + { VEX_LEN_TABLE (VEX_LEN_0F385A) }, { Bad_Opcode }, { X86_64_TABLE (X86_64_VEX_0F385C) }, { Bad_Opcode }, @@ -6374,9 +6336,9 @@ static const struct dis386 vex_table[][2 { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { MOD_TABLE (MOD_VEX_0F388C) }, + { "vpmaskmov%DQ", { XM, Vex, Mx }, PREFIX_DATA }, { Bad_Opcode }, - { MOD_TABLE (MOD_VEX_0F388E) }, + { "vpmaskmov%DQ", { Mx, Vex, XM }, PREFIX_DATA }, { Bad_Opcode }, /* 90 */ { "vpgatherd%DQ", { XM, MVexVSIBDWpX, VexGatherD }, PREFIX_DATA }, @@ -6808,12 +6770,12 @@ static const struct dis386 vex_len_table /* VEX_LEN_0F12_P_2 */ { - { MOD_TABLE (MOD_0F12_PREFIX_2) }, + { "%XEVmovlpYX", { XM, Vex, Mq }, 0 }, }, /* VEX_LEN_0F13 */ { - { MOD_TABLE (MOD_0F13) }, + { "%XEVmovlpYX", { Mq, XM }, PREFIX_OPCODE }, }, /* VEX_LEN_0F16_P_0 */ @@ -6823,12 +6785,12 @@ static const struct dis386 vex_len_table /* VEX_LEN_0F16_P_2 */ { - { MOD_TABLE (MOD_0F16_PREFIX_2) }, + { "%XEVmovhpYX", { XM, Vex, Mq }, 0 }, }, /* VEX_LEN_0F17 */ { - { MOD_TABLE (MOD_0F17) }, + { "%XEVmovhpYX", { Mq, XM }, PREFIX_OPCODE }, }, /* VEX_LEN_0F41 */ @@ -6929,12 +6891,12 @@ static const struct dis386 vex_len_table { MOD_TABLE (MOD_VEX_0F99_L_0) }, }, - /* VEX_LEN_0FAE_R_2_M_0 */ + /* VEX_LEN_0FAE_R_2 */ { { "vldmxcsr", { Md }, 0 }, }, - /* VEX_LEN_0FAE_R_3_M_0 */ + /* VEX_LEN_0FAE_R_3 */ { { "vstmxcsr", { Md }, 0 }, }, @@ -6971,10 +6933,10 @@ static const struct dis386 vex_len_table { VEX_W_TABLE (VEX_W_0F3819_L_1) }, }, - /* VEX_LEN_0F381A_M_0 */ + /* VEX_LEN_0F381A */ { { Bad_Opcode }, - { VEX_W_TABLE (VEX_W_0F381A_M_0_L_1) }, + { VEX_W_TABLE (VEX_W_0F381A_L_1) }, }, /* VEX_LEN_0F3836 */ @@ -6998,10 +6960,10 @@ static const struct dis386 vex_len_table { VEX_W_TABLE (VEX_W_0F384B_X86_64_L_0) }, }, - /* VEX_LEN_0F385A_M_0 */ + /* VEX_LEN_0F385A */ { { Bad_Opcode }, - { VEX_W_TABLE (VEX_W_0F385A_M_0_L_0) }, + { VEX_W_TABLE (VEX_W_0F385A_L_0) }, }, /* VEX_LEN_0F385C_X86_64_M_1 */ @@ -7584,23 +7546,23 @@ static const struct dis386 vex_w_table[] { "vbroadcastsd", { XM, EXq }, PREFIX_DATA }, }, { - /* VEX_W_0F381A_M_0_L_1 */ + /* VEX_W_0F381A_L_1 */ { "vbroadcastf128", { XM, Mxmm }, PREFIX_DATA }, }, { - /* VEX_W_0F382C_M_0 */ + /* VEX_W_0F382C */ { "vmaskmovps", { XM, Vex, Mx }, PREFIX_DATA }, }, { - /* VEX_W_0F382D_M_0 */ + /* VEX_W_0F382D */ { "vmaskmovpd", { XM, Vex, Mx }, PREFIX_DATA }, }, { - /* VEX_W_0F382E_M_0 */ + /* VEX_W_0F382E */ { "vmaskmovps", { Mx, Vex, XM }, PREFIX_DATA }, }, { - /* VEX_W_0F382F_M_0 */ + /* VEX_W_0F382F */ { "vmaskmovpd", { Mx, Vex, XM }, PREFIX_DATA }, }, { @@ -7617,7 +7579,7 @@ static const struct dis386 vex_w_table[] }, { /* VEX_W_0F384B_X86_64_L_0 */ - { MOD_TABLE (MOD_VEX_0F384B_X86_64_L_0_W_0) }, + { PREFIX_TABLE (PREFIX_VEX_0F384B_X86_64_L_0_W_0) }, }, { /* VEX_W_0F3850 */ @@ -7644,7 +7606,7 @@ static const struct dis386 vex_w_table[] { "vpbroadcastq", { XM, EXq }, PREFIX_DATA }, }, { - /* VEX_W_0F385A_M_0_L_0 */ + /* VEX_W_0F385A_L_0 */ { "vbroadcasti128", { XM, Mxmm }, PREFIX_DATA }, }, { @@ -7948,10 +7910,6 @@ static const struct dis386 mod_table[][2 { EVEX_TABLE (EVEX_0F) }, }, { - /* MOD_8D */ - { "leaS", { Gv, M }, 0 }, - }, - { /* MOD_C4_32BIT */ { "lesS", { Gv, Mp }, 0 }, { VEX_C4_TABLE (VEX_0F) }, @@ -7972,14 +7930,6 @@ static const struct dis386 mod_table[][2 { RM_TABLE (RM_C7_REG_7) }, }, { - /* MOD_FF_REG_3 */ - { "{l|}call^", { indirEp }, 0 }, - }, - { - /* MOD_FF_REG_5 */ - { "{l|}jmp^", { indirEp }, 0 }, - }, - { /* MOD_0F01_REG_0 */ { X86_64_TABLE (X86_64_0F01_REG_0) }, { RM_TABLE (RM_0F01_REG_0) }, @@ -8025,27 +7975,11 @@ static const struct dis386 mod_table[][2 { "%XEVmovhlpY%XS", { XM, Vex, EXq }, 0 }, }, { - /* MOD_0F12_PREFIX_2 */ - { "%XEVmovlpYX", { XM, Vex, EXq }, 0 }, - }, - { - /* MOD_0F13 */ - { "%XEVmovlpYX", { EXq, XM }, PREFIX_OPCODE }, - }, - { /* MOD_0F16_PREFIX_0 */ { "%XEVmovhpYX", { XM, Vex, EXq }, 0 }, { "%XEVmovlhpY%XS", { XM, Vex, EXq }, 0 }, }, { - /* MOD_0F16_PREFIX_2 */ - { "%XEVmovhpYX", { XM, Vex, EXq }, 0 }, - }, - { - /* MOD_0F17 */ - { "%XEVmovhpYX", { EXq, XM }, PREFIX_OPCODE }, - }, - { /* MOD_0F18_REG_0 */ { "prefetchnta", { Mb }, 0 }, { "nopQ", { Ev }, 0 }, @@ -8161,30 +8095,6 @@ static const struct dis386 mod_table[][2 { RM_TABLE (RM_0FAE_REG_7_MOD_3) }, }, { - /* MOD_0FB2 */ - { "lssS", { Gv, Mp }, 0 }, - }, - { - /* MOD_0FB4 */ - { "lfsS", { Gv, Mp }, 0 }, - }, - { - /* MOD_0FB5 */ - { "lgsS", { Gv, Mp }, 0 }, - }, - { - /* MOD_0FC7_REG_3 */ - { "xrstors", { FXSAVE }, 0 }, - }, - { - /* MOD_0FC7_REG_4 */ - { "xsavec", { FXSAVE }, 0 }, - }, - { - /* MOD_0FC7_REG_5 */ - { "xsaves", { FXSAVE }, 0 }, - }, - { /* MOD_0FC7_REG_6 */ { PREFIX_TABLE (PREFIX_0FC7_REG_6_MOD_0) }, { PREFIX_TABLE (PREFIX_0FC7_REG_6_MOD_3) } @@ -8205,42 +8115,6 @@ static const struct dis386 mod_table[][2 { "loadiwkey", { XM, EXx }, 0 }, }, { - /* MOD_0F38DD_PREFIX_1 */ - { "aesdec128kl", { XM, M }, 0 }, - }, - { - /* MOD_0F38DE_PREFIX_1 */ - { "aesenc256kl", { XM, M }, 0 }, - }, - { - /* MOD_0F38DF_PREFIX_1 */ - { "aesdec256kl", { XM, M }, 0 }, - }, - { - /* MOD_0F38F5 */ - { "wrussK", { M, Gdq }, PREFIX_DATA }, - }, - { - /* MOD_0F38F6_PREFIX_0 */ - { "wrssK", { M, Gdq }, PREFIX_OPCODE }, - }, - { - /* MOD_0F38F8_PREFIX_1 */ - { "enqcmds", { Gva, M }, PREFIX_OPCODE }, - }, - { - /* MOD_0F38F8_PREFIX_2 */ - { "movdir64b", { Gva, M }, PREFIX_OPCODE }, - }, - { - /* MOD_0F38F8_PREFIX_3 */ - { "enqcmd", { Gva, M }, PREFIX_OPCODE }, - }, - { - /* MOD_0F38F9 */ - { "movdiri", { Edq, Gdq }, PREFIX_OPCODE }, - }, - { /* MOD_0F38FA_PREFIX_1 */ { Bad_Opcode }, { "encodekey128", { Gd, Ed }, 0 }, @@ -8335,52 +8209,16 @@ static const struct dis386 mod_table[][2 { VEX_W_TABLE (VEX_W_0F99_L_0_M_1) }, }, { - /* MOD_VEX_0FAE_REG_2 */ - { VEX_LEN_TABLE (VEX_LEN_0FAE_R_2_M_0) }, - }, - { - /* MOD_VEX_0FAE_REG_3 */ - { VEX_LEN_TABLE (VEX_LEN_0FAE_R_3_M_0) }, - }, - { /* MOD_VEX_0FD7 */ { Bad_Opcode }, { "vpmovmskb", { Gdq, XS }, PREFIX_DATA }, }, { - /* MOD_VEX_0F381A */ - { VEX_LEN_TABLE (VEX_LEN_0F381A_M_0) }, - }, - { - /* MOD_VEX_0F382C */ - { VEX_W_TABLE (VEX_W_0F382C_M_0) }, - }, - { - /* MOD_VEX_0F382D */ - { VEX_W_TABLE (VEX_W_0F382D_M_0) }, - }, - { - /* MOD_VEX_0F382E */ - { VEX_W_TABLE (VEX_W_0F382E_M_0) }, - }, - { - /* MOD_VEX_0F382F */ - { VEX_W_TABLE (VEX_W_0F382F_M_0) }, - }, - { /* MOD_VEX_0F3849_X86_64_L_0_W_0 */ { PREFIX_TABLE (PREFIX_VEX_0F3849_X86_64_L_0_W_0_M_0) }, { PREFIX_TABLE (PREFIX_VEX_0F3849_X86_64_L_0_W_0_M_1) }, }, { - /* MOD_VEX_0F384B_X86_64_L_0_W_0 */ - { PREFIX_TABLE (PREFIX_VEX_0F384B_X86_64_L_0_W_0_M_0) }, - }, - { - /* MOD_VEX_0F385A */ - { VEX_LEN_TABLE (VEX_LEN_0F385A_M_0) }, - }, - { /* MOD_VEX_0F385C_X86_64 */ { Bad_Opcode }, { VEX_LEN_TABLE (VEX_LEN_0F385C_X86_64_M_1) }, @@ -8396,14 +8234,6 @@ static const struct dis386 mod_table[][2 { VEX_LEN_TABLE (VEX_LEN_0F386C_X86_64_M_1) }, }, { - /* MOD_VEX_0F388C */ - { "vpmaskmov%DQ", { XM, Vex, Mx }, PREFIX_DATA }, - }, - { - /* MOD_VEX_0F388E */ - { "vpmaskmov%DQ", { Mx, Vex, XM }, PREFIX_DATA }, - }, - { /* MOD_VEX_0F3A30_L_0 */ { Bad_Opcode }, { "kshiftr%BW", { MaskG, MaskE, Ib }, PREFIX_DATA }, @@ -11034,14 +10864,6 @@ append_seg (instr_info *ins) oappend_char (ins, ':'); } -static bool -OP_indirE (instr_info *ins, int bytemode, int sizeflag) -{ - if (!ins->intel_syntax) - oappend (ins, "*"); - return OP_E (ins, bytemode, sizeflag); -} - static void print_operand_value (instr_info *ins, bfd_vma disp, enum disassembler_style style) @@ -12116,6 +11938,17 @@ OP_E (instr_info *ins, int bytemode, int } static bool +OP_indirE (instr_info *ins, int bytemode, int sizeflag) +{ + if (ins->modrm.mod == 3 && bytemode == f_mode) + /* bad lcall/ljmp */ + return BadOp (ins); + if (!ins->intel_syntax) + oappend (ins, "*"); + return OP_E (ins, bytemode, sizeflag); +} + +static bool OP_G (instr_info *ins, int bytemode, int sizeflag) { if (ins->vex.evex && !ins->vex.r && ins->address_mode == mode_64bit) --- a/opcodes/i386-dis-evex.h +++ b/opcodes/i386-dis-evex.h @@ -322,8 +322,8 @@ static const struct dis386 evex_table[][ /* 18 */ { VEX_W_TABLE (VEX_W_0F3818) }, { EVEX_LEN_TABLE (EVEX_LEN_0F3819) }, - { MOD_TABLE (MOD_EVEX_0F381A) }, - { MOD_TABLE (MOD_EVEX_0F381B) }, + { EVEX_LEN_TABLE (EVEX_LEN_0F381A) }, + { EVEX_LEN_TABLE (EVEX_LEN_0F381B) }, { "%XEvpabsb", { XM, EXx }, PREFIX_DATA }, { "%XEvpabsw", { XM, EXx }, PREFIX_DATA }, { VEX_W_TABLE (EVEX_W_0F381E) }, @@ -394,8 +394,8 @@ static const struct dis386 evex_table[][ /* 58 */ { VEX_W_TABLE (VEX_W_0F3858) }, { VEX_W_TABLE (EVEX_W_0F3859) }, - { MOD_TABLE (MOD_EVEX_0F385A) }, - { MOD_TABLE (MOD_EVEX_0F385B) }, + { EVEX_LEN_TABLE (EVEX_LEN_0F385A) }, + { EVEX_LEN_TABLE (EVEX_LEN_0F385B) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -515,8 +515,8 @@ static const struct dis386 evex_table[][ { Bad_Opcode }, { "vpconflict%DQ", { XM, EXx }, PREFIX_DATA }, { Bad_Opcode }, - { MOD_TABLE (MOD_EVEX_0F38C6) }, - { MOD_TABLE (MOD_EVEX_0F38C7) }, + { EVEX_LEN_TABLE (EVEX_LEN_0F38C6) }, + { EVEX_LEN_TABLE (EVEX_LEN_0F38C7) }, /* C8 */ { "vexp2p%XW", { XM, EXx, EXxEVexS }, PREFIX_DATA }, { Bad_Opcode }, --- a/opcodes/i386-dis-evex-len.h +++ b/opcodes/i386-dis-evex-len.h @@ -13,18 +13,18 @@ static const struct dis386 evex_len_tabl { VEX_W_TABLE (EVEX_W_0F3819_L_n) }, }, - /* EVEX_LEN_0F381A_M_0 */ + /* EVEX_LEN_0F381A */ { { Bad_Opcode }, - { VEX_W_TABLE (EVEX_W_0F381A_M_0_L_n) }, - { VEX_W_TABLE (EVEX_W_0F381A_M_0_L_n) }, + { VEX_W_TABLE (EVEX_W_0F381A_L_n) }, + { VEX_W_TABLE (EVEX_W_0F381A_L_n) }, }, - /* EVEX_LEN_0F381B_M_0 */ + /* EVEX_LEN_0F381B */ { { Bad_Opcode }, { Bad_Opcode }, - { VEX_W_TABLE (EVEX_W_0F381B_M_0_L_2) }, + { VEX_W_TABLE (EVEX_W_0F381B_L_2) }, }, /* EVEX_LEN_0F3836 */ @@ -34,32 +34,32 @@ static const struct dis386 evex_len_tabl { "vperm%DQ", { XM, Vex, EXx }, PREFIX_DATA }, }, - /* EVEX_LEN_0F385A_M_0 */ + /* EVEX_LEN_0F385A */ { { Bad_Opcode }, - { VEX_W_TABLE (EVEX_W_0F385A_M_0_L_n) }, - { VEX_W_TABLE (EVEX_W_0F385A_M_0_L_n) }, + { VEX_W_TABLE (EVEX_W_0F385A_L_n) }, + { VEX_W_TABLE (EVEX_W_0F385A_L_n) }, }, - /* EVEX_LEN_0F385B_M_0 */ + /* EVEX_LEN_0F385B */ { { Bad_Opcode }, { Bad_Opcode }, - { VEX_W_TABLE (EVEX_W_0F385B_M_0_L_2) }, + { VEX_W_TABLE (EVEX_W_0F385B_L_2) }, }, - /* EVEX_LEN_0F38C6_M_0 */ + /* EVEX_LEN_0F38C6 */ { { Bad_Opcode }, { Bad_Opcode }, - { REG_TABLE (REG_EVEX_0F38C6_M_0_L_2) }, + { REG_TABLE (REG_EVEX_0F38C6_L_2) }, }, - /* EVEX_LEN_0F38C7_M_0 */ + /* EVEX_LEN_0F38C7 */ { { Bad_Opcode }, { Bad_Opcode }, - { REG_TABLE (REG_EVEX_0F38C7_M_0_L_2) }, + { REG_TABLE (REG_EVEX_0F38C7_L_2) }, }, /* EVEX_LEN_0F3A00 */ --- a/opcodes/i386-dis-evex-mod.h +++ b/opcodes/i386-dis-evex-mod.h @@ -1,11 +1,3 @@ - /* MOD_EVEX_0F381A */ - { - { EVEX_LEN_TABLE (EVEX_LEN_0F381A_M_0) }, - }, - /* MOD_EVEX_0F381B */ - { - { EVEX_LEN_TABLE (EVEX_LEN_0F381B_M_0) }, - }, /* MOD_EVEX_0F3828_P_1 */ { { Bad_Opcode }, @@ -26,14 +18,6 @@ { Bad_Opcode }, { "vpbroadcastmw2dY", { XM, MaskE }, 0 }, }, - /* MOD_EVEX_0F385A */ - { - { EVEX_LEN_TABLE (EVEX_LEN_0F385A_M_0) }, - }, - /* MOD_EVEX_0F385B */ - { - { EVEX_LEN_TABLE (EVEX_LEN_0F385B_M_0) }, - }, /* MOD_EVEX_0F387A_W_0 */ { { Bad_Opcode }, @@ -49,11 +33,3 @@ { Bad_Opcode }, { "vpbroadcastK", { XM, Edq }, PREFIX_DATA }, }, - { - /* MOD_EVEX_0F38C6 */ - { EVEX_LEN_TABLE (EVEX_LEN_0F38C6_M_0) }, - }, - { - /* MOD_EVEX_0F38C7 */ - { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_M_0) }, - }, --- a/opcodes/i386-dis-evex-w.h +++ b/opcodes/i386-dis-evex-w.h @@ -229,15 +229,15 @@ { "vbroadcastf32x2", { XM, EXq }, PREFIX_DATA }, { "%XEvbroadcastsd", { XM, EXq }, PREFIX_DATA }, }, - /* EVEX_W_0F381A_M_0_L_n */ + /* EVEX_W_0F381A_L_n */ { - { "vbroadcastf32x4", { XM, EXxmm }, PREFIX_DATA }, - { "vbroadcastf64x2", { XM, EXxmm }, PREFIX_DATA }, + { "vbroadcastf32x4", { XM, Mxmm }, PREFIX_DATA }, + { "vbroadcastf64x2", { XM, Mxmm }, PREFIX_DATA }, }, - /* EVEX_W_0F381B_M_0_L_2 */ + /* EVEX_W_0F381B_L_2 */ { - { "vbroadcastf32x8", { XM, EXymm }, PREFIX_DATA }, - { "vbroadcastf64x4", { XM, EXymm }, PREFIX_DATA }, + { "vbroadcastf32x8", { XM, Mymm }, PREFIX_DATA }, + { "vbroadcastf64x4", { XM, Mymm }, PREFIX_DATA }, }, /* EVEX_W_0F381E */ { @@ -341,15 +341,15 @@ { "vbroadcasti32x2", { XM, EXq }, PREFIX_DATA }, { "%XEvpbroadcastq", { XM, EXq }, PREFIX_DATA }, }, - /* EVEX_W_0F385A_M_0_L_n */ + /* EVEX_W_0F385A_L_n */ { - { "vbroadcasti32x4", { XM, EXxmm }, PREFIX_DATA }, - { "vbroadcasti64x2", { XM, EXxmm }, PREFIX_DATA }, + { "vbroadcasti32x4", { XM, Mxmm }, PREFIX_DATA }, + { "vbroadcasti64x2", { XM, Mxmm }, PREFIX_DATA }, }, - /* EVEX_W_0F385B_M_0_L_2 */ + /* EVEX_W_0F385B_L_2 */ { - { "vbroadcasti32x8", { XM, EXymm }, PREFIX_DATA }, - { "vbroadcasti64x4", { XM, EXymm }, PREFIX_DATA }, + { "vbroadcasti32x8", { XM, Mymm }, PREFIX_DATA }, + { "vbroadcasti64x4", { XM, Mymm }, PREFIX_DATA }, }, /* EVEX_W_0F3870 */ { --- a/opcodes/i386-dis-evex-reg.h +++ b/opcodes/i386-dis-evex-reg.h @@ -29,7 +29,7 @@ { VEX_W_TABLE (EVEX_W_0F73_R_6) }, { "%XEvpslldqY", { Vex, EXx, Ib }, PREFIX_DATA }, }, - /* REG_EVEX_0F38C6_M_0_L_2 */ + /* REG_EVEX_0F38C6_L_2 */ { { Bad_Opcode }, { "vgatherpf0dp%XW", { MVexVSIBDWpX }, PREFIX_DATA }, @@ -39,7 +39,7 @@ { "vscatterpf0dp%XW", { MVexVSIBDWpX }, PREFIX_DATA }, { "vscatterpf1dp%XW", { MVexVSIBDWpX }, PREFIX_DATA }, }, - /* REG_EVEX_0F38C7_M_0_L_2_W_0 */ + /* REG_EVEX_0F38C7_L_2 */ { { Bad_Opcode }, { "vgatherpf0qp%XW", { MVexVSIBQWpX }, PREFIX_DATA }, From patchwork Tue Jul 4 15:21:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 115832 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f45:0:b0:3ea:f831:8777 with SMTP id v5csp1296631vqx; Tue, 4 Jul 2023 08:22:49 -0700 (PDT) X-Google-Smtp-Source: APBJJlGGiLjwHHK3II3OYuIayC+I8GWoPAgfJ70oKrBsAjtWnTfzzFFVIZNaINq2VhrQvZXH+HMY X-Received: by 2002:a05:6512:3b85:b0:4fb:7447:e71a with SMTP id g5-20020a0565123b8500b004fb7447e71amr12276920lfv.63.1688484169443; Tue, 04 Jul 2023 08:22:49 -0700 (PDT) Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id k14-20020aa7c38e000000b0051e065c1573si3962754edq.612.2023.07.04.08.22.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jul 2023 08:22:49 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b="Owri/NGn"; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 248603856DCE for ; Tue, 4 Jul 2023 15:22:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 248603856DCE DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688484144; bh=n249pK8jGi4xFDrdpKhOxoKDCyhcIcQ2FzAQDs8VA4U=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=Owri/NGnZnY3MTnTha7z04V1kHb/dalOMpHWvJfcGMKCNgyArJVMWnSBUE4IquwVx YksHmLomamNf+eEJp94QVmIF3T6tvqawQPt0uQvIsQ6b8zs/Ruv1SZfqs9uGZryjQy H6YnybXcFy1Dc1k0xQusOV/jG/PXx8uACFe/NtCw= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02on2058.outbound.protection.outlook.com [40.107.249.58]) by sourceware.org (Postfix) with ESMTPS id E22E23855593 for ; Tue, 4 Jul 2023 15:21:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E22E23855593 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KFf/jWVJJXEtm8iNOgLwAxPG5i4QlK1hvJW3SBO/OUVH/QqZt9hjZqjJormFroHB7Fbw5wdxYFRgXuJn4qoGLsHkcNJzUJfcfSpMvrRzJpbO3ZgEnAFSiKnNTNCKeS9RS9cPKX2E8sLshGl1NdtzGIoOQ81SH64hEGun68gxUCzxHYBy75NW61GlccEj5riuVeTcLq0IpPjk8lfR7ZaVkHP6Xejy9qPUKnJiTqP18Mkilk6q6TlIwT1aspNwUD8crJOxAvYcqoH6VrZJP+cRLFTcL/mQwWsPvBP2IR+rcGqhiiiWXy4lohKQ5Abw+Z2FL5OB+A7ANvKGAem45IQkrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=n249pK8jGi4xFDrdpKhOxoKDCyhcIcQ2FzAQDs8VA4U=; b=Z4B0Z2r/KFcgjjwuaFKhDw/3o0OnYMJxy3KITWBFrPcBb+YiQvq2nfFE5jYbzeue6lo7I48+zU14kQO1wnAuOMkOjXBOjEwkHGgnzi7+Ya4MnZHhTx4WNc7rweE6VOZnruo+xIxPUSmEjFr5FVsR1GCz+9AzOH8NmlD7yF9ixlxbG+sFWpNf34RRhfWJv8SAhv7nw80kNJN6IiOIFSaAHKDRoWTWmVE22YoB00kw92jIK4vPGqAb1uiEPZ5jOM93QOYEmhCfsSfNr5Syp7ZHz7ruL6Qt5k5ThOa5nvCag5u0nMAZ6oRMFQCIu4jKPGKIizQbxOR8zno/A3MYgqzTeQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by AS8PR04MB8692.eurprd04.prod.outlook.com (2603:10a6:20b:42b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Tue, 4 Jul 2023 15:21:30 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880%4]) with mapi id 15.20.6544.024; Tue, 4 Jul 2023 15:21:30 +0000 Message-ID: <96a500b4-1b68-520b-bccc-01d78f8e6f6c@suse.com> Date: Tue, 4 Jul 2023 17:21:38 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: [PATCH 05/10] x86: SIMD shift-by-immediate don't need to go through mod_table[] Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: In-Reply-To: X-ClientProxiedBy: FR0P281CA0256.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b5::9) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AS8PR04MB8692:EE_ X-MS-Office365-Filtering-Correlation-Id: 8a78b9a5-5a83-4a14-1979-08db7ca2581d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: F5EEhllGLWXFEM7MK5LSsgA7wg5eQ+8W52l44diswzp7/wfbRhIrgjjKV1V7MgF3+diOjjnQLZ14v2W3HIzavhm56BwwnYYqGlFnRZk9Zs+igyqmxNnBQbdKDK5L4z/hoyiMOR48FhJpxxUnRwLyY3ACnfPHiuCzZROcXd5wk0PjoFc0XJr2oqKzM6Rjm2yp5YkIG+COs5VIzp2j5BuvFjINkIg6OSJdJ2QJyBqLi8eDFrgatApMjp4mElHa801udLwPK2LSdaBZ8x8Ynp6oEOgH3j0qbb46dN3fLGOb2cKg8std043LS6msJPJTUrEDVVVjJmVLH7w+08nEhxxdqLFWXjYaNpRAk46Szv/0VH0nbBA8H2e/cbNRoRR6A6gNsEm2wzV4/j0o8ETN7e8ooV9FIfCC+EOZhtyHJno8sl29eB9cuMoFS1C0nzVLCz5aR1GEQPWOTv8MiV0X31a5lqKH5aXG/80LHoT35liAUNUeWdVCt1caG2L0jV8gQwSUtjkL2vwwID90RhrH1kHx76eW6V8YOcfI7/NvD2Bu+4jj6I2XXUv18XilzacWWb8wpX98IFDIPXbxTCVBvYtn3pSVj6pWKGqqw1rc7JPztkhAU1VjNmnSHDi1iiZkmhePLT0/I14wpO0VK+Y8xuWgHuHKZtUGVlFxyCNl6uPFd1I= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU2PR04MB8790.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(136003)(39850400004)(376002)(346002)(366004)(396003)(451199021)(478600001)(5660300002)(8676002)(36756003)(8936002)(31696002)(86362001)(2906002)(38100700002)(66476007)(4326008)(66946007)(66556008)(6916009)(316002)(41300700001)(26005)(31686004)(186003)(6506007)(2616005)(6486002)(6512007)(14773001)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?4raQXawXlqk4es09nafFADLNlhoF?= =?utf-8?q?cAdOQIxXVCqk630klz/e6hlMAFwQ0zE6o6+g5p1mI7iNc14bcWyui67OPRW4QU5Tq?= =?utf-8?q?07llHCygXR5IIrTVpWEvHF4Ct4sAP/NYaSls2PKilpw4Hm3beOjAWm/OgfDeCaCd/?= =?utf-8?q?vi42GKE8MKZSDO2pYKXt76RMxQiqZuW/k6o2htVDgSem0PkLJprMpSAG/MklNagPP?= =?utf-8?q?QGnU+d7CP5Du/4pXRopvU+CXBlsFgjFwUm7Aja1hFm3fGn0P3zEBuzHx5JCHyvZZ0?= =?utf-8?q?ye29YoPAFnUdE5Wj3vp6Je62cxD1wHLS6QR0shkyF8Pvf5z5C+5dLwco40MFliAwd?= =?utf-8?q?3vt+pSNHH+rKox+FLTOnAYrrYfqqBUElhXcvqSDmDKgg31P4SfrCL/OT6toBTKO2G?= =?utf-8?q?fFkq6pChTIaznV5dDrSOUK0CnD6aedKPeIu2tjsXKGHaIQfP1wzMJ/Ql1clnq6gE8?= =?utf-8?q?6Yx1myzbvWEyLa570svv6vPOeRESOGOnnoj9vHJOvKxkDGbKQeq1mMdt+GtFBPnHW?= =?utf-8?q?ACJ7Q7vwW5lE9n/RudToWdkRJyng+UUzIEU+pn7gagd8hJPiAkCDlvR1AYZzs7vyP?= =?utf-8?q?R4BveRDwNte2QT3l/QZhVzgKnzGIYSGUpmIZ+MsdQTemEK+kxvyTh7VJ7iPG9VVVP?= =?utf-8?q?kFRMuUKs/fB/koRVc7o0EfiVIadUza2xcrhYJ2BmGgv5o+tOlxzfIVxsPEVo4FuOB?= =?utf-8?q?xH/m45WwG644TFzo/5jC7EhUxHfT4SHOb/LURbYxmAqAcCMYhpq4h+TN6sUcxocEE?= =?utf-8?q?NroGjEnDf1PwO8wRFCkXhD2Uo1PVefCJ0Gc+UZ2zH3ta9KYFUkmlz6Rd8c/cylN31?= =?utf-8?q?jwsQOKP/3u/C9DaZe98Q/8XCD0rpLcykhmHu6TL1PyWMQOgEDfV5ZQvYzQHbVLNrB?= =?utf-8?q?YlTfOKedxa/nU2vxwrsKDAVU8HqAb0Zih3q1/Bd/9KetcZL2763Ak4O8Kj2jZvKyN?= =?utf-8?q?LoOtYdnhAA13sbOTTYCDvz6Jsgo1nesL/Yg0zYAbZaErEM37ScOJ1rqBZwwl5IDhc?= =?utf-8?q?AzNnsBX0CAH5OxUkZAzFl70hYBJnwJC9mPgFxe4hWXRw7DRoUsuQq0vY97YoiHPx+?= =?utf-8?q?I0GjPMb6gfBzj2cjFxZdS8vO/pAGR3qbhQ55tVtg7wuwmsGDgjz62rNKO0vcwh2Od?= =?utf-8?q?lOsJY76quOuEzJTFFj0+fC3bP3yWuiaXfj8B7N+bry6OyrISHJewdMNOl5bZUKZ4o?= =?utf-8?q?S0GFnm8abvTdqmYa168Gk7I8RwmB6qMduCQ50w+hewVsFkiyPMWW6d6TEeYF5ZInm?= =?utf-8?q?6YjUwjBonZ/tssBV1cg/KwAHTFyI5NfPcLy/fU3nDrriUixMxQuixshu6abC7EjGa?= =?utf-8?q?FYKbJMAqcFgSCjdVcxthqd3ycSMFoSJY2n8Ao2f1yjNXWUEddJgNnWUiap4BC6FKd?= =?utf-8?q?dhzUL/pPFmV637nyNI46iCMNGP+Xl67Gc17hIVbr8L0iKraIEbSd/YxSDMyVGeZ2X?= =?utf-8?q?rKD1+JrviWbO3W8ik5aYiq9IQvax/RQe4XISZW/1sl6tc6EEvzmEJGJ3OW32qn730?= =?utf-8?q?sADf1k20RlbM?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8a78b9a5-5a83-4a14-1979-08db7ca2581d X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2023 15:21:30.8921 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Jp0AM8QCuEQdjWsASLKw4c7jZ+x4CTZkugNigq1SmOCwN9C5sBixEErEYqj0auAZd+nVdlLDmDwdIPmJmNykUA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8692 X-Spam-Status: No, score=-3027.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770503976270462351?= X-GMAIL-MSGID: =?utf-8?q?1770503976270462351?= OP_MS() and OP_XS() reject memory forms of insns quite fine. This then also eliminates mis-named enumerators (we use M_1 for register forms). --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -828,17 +828,17 @@ enum REG_0F1E_P_1_MOD_3, REG_0F38D8_PREFIX_1, REG_0F3A0F_PREFIX_1_MOD_3, - REG_0F71_MOD_0, - REG_0F72_MOD_0, - REG_0F73_MOD_0, + REG_0F71, + REG_0F72, + REG_0F73, REG_0FA6, REG_0FA7, REG_0FAE, REG_0FBA, REG_0FC7, - REG_VEX_0F71_M_0, - REG_VEX_0F72_M_0, - REG_VEX_0F73_M_0, + REG_VEX_0F71, + REG_VEX_0F72, + REG_VEX_0F73, REG_VEX_0FAE, REG_VEX_0F3849_X86_64_L_0_W_0_M_1_P_0, REG_VEX_0F38F3_L_0, @@ -884,9 +884,6 @@ enum MOD_0F1C_PREFIX_0, MOD_0F1E_PREFIX_1, MOD_0F50, - MOD_0F71, - MOD_0F72, - MOD_0F73, MOD_0FAE_REG_0, MOD_0FAE_REG_1, MOD_0FAE_REG_2, @@ -911,9 +908,6 @@ enum MOD_VEX_0F47_L_1, MOD_VEX_0F4A_L_1, MOD_VEX_0F4B_L_1, - MOD_VEX_0F71, - MOD_VEX_0F72, - MOD_VEX_0F73, MOD_VEX_0F91_L_0, MOD_VEX_0F92_L_0, MOD_VEX_0F93_L_0, @@ -2188,9 +2182,9 @@ static const struct dis386 dis386_twobyt { PREFIX_TABLE (PREFIX_0F6F) }, /* 70 */ { PREFIX_TABLE (PREFIX_0F70) }, - { MOD_TABLE (MOD_0F71) }, - { MOD_TABLE (MOD_0F72) }, - { MOD_TABLE (MOD_0F73) }, + { REG_TABLE (REG_0F71) }, + { REG_TABLE (REG_0F72) }, + { REG_TABLE (REG_0F73) }, { "pcmpeqb", { MX, EM }, PREFIX_OPCODE }, { "pcmpeqw", { MX, EM }, PREFIX_OPCODE }, { "pcmpeqd", { MX, EM }, PREFIX_OPCODE }, @@ -2745,7 +2739,7 @@ static const struct dis386 reg_table[][8 { { RM_TABLE (RM_0F3A0F_P_1_MOD_3_REG_0) }, }, - /* REG_0F71_MOD_0 */ + /* REG_0F71 */ { { Bad_Opcode }, { Bad_Opcode }, @@ -2755,7 +2749,7 @@ static const struct dis386 reg_table[][8 { Bad_Opcode }, { "psllw", { MS, Ib }, PREFIX_OPCODE }, }, - /* REG_0F72_MOD_0 */ + /* REG_0F72 */ { { Bad_Opcode }, { Bad_Opcode }, @@ -2765,7 +2759,7 @@ static const struct dis386 reg_table[][8 { Bad_Opcode }, { "pslld", { MS, Ib }, PREFIX_OPCODE }, }, - /* REG_0F73_MOD_0 */ + /* REG_0F73 */ { { Bad_Opcode }, { Bad_Opcode }, @@ -2824,7 +2818,7 @@ static const struct dis386 reg_table[][8 { MOD_TABLE (MOD_0FC7_REG_6) }, { MOD_TABLE (MOD_0FC7_REG_7) }, }, - /* REG_VEX_0F71_M_0 */ + /* REG_VEX_0F71 */ { { Bad_Opcode }, { Bad_Opcode }, @@ -2834,7 +2828,7 @@ static const struct dis386 reg_table[][8 { Bad_Opcode }, { "vpsllw", { Vex, XS, Ib }, PREFIX_DATA }, }, - /* REG_VEX_0F72_M_0 */ + /* REG_VEX_0F72 */ { { Bad_Opcode }, { Bad_Opcode }, @@ -2844,7 +2838,7 @@ static const struct dis386 reg_table[][8 { Bad_Opcode }, { "vpslld", { Vex, XS, Ib }, PREFIX_DATA }, }, - /* REG_VEX_0F73_M_0 */ + /* REG_VEX_0F73 */ { { Bad_Opcode }, { Bad_Opcode }, @@ -6015,9 +6009,9 @@ static const struct dis386 vex_table[][2 { PREFIX_TABLE (PREFIX_VEX_0F6F) }, /* 70 */ { PREFIX_TABLE (PREFIX_VEX_0F70) }, - { MOD_TABLE (MOD_VEX_0F71) }, - { MOD_TABLE (MOD_VEX_0F72) }, - { MOD_TABLE (MOD_VEX_0F73) }, + { REG_TABLE (REG_VEX_0F71) }, + { REG_TABLE (REG_VEX_0F72) }, + { REG_TABLE (REG_VEX_0F73) }, { "vpcmpeqb", { XM, Vex, EXx }, PREFIX_DATA }, { "vpcmpeqw", { XM, Vex, EXx }, PREFIX_DATA }, { "vpcmpeqd", { XM, Vex, EXx }, PREFIX_DATA }, @@ -8040,21 +8034,6 @@ static const struct dis386 mod_table[][2 { "VmovmskpX", { Gdq, XS }, PREFIX_OPCODE }, }, { - /* MOD_0F71 */ - { Bad_Opcode }, - { REG_TABLE (REG_0F71_MOD_0) }, - }, - { - /* MOD_0F72 */ - { Bad_Opcode }, - { REG_TABLE (REG_0F72_MOD_0) }, - }, - { - /* MOD_0F73 */ - { Bad_Opcode }, - { REG_TABLE (REG_0F73_MOD_0) }, - }, - { /* MOD_0FAE_REG_0 */ { "fxsave", { FXSAVE }, 0 }, { PREFIX_TABLE (PREFIX_0FAE_REG_0_MOD_3) }, @@ -8170,21 +8149,6 @@ static const struct dis386 mod_table[][2 { VEX_W_TABLE (VEX_W_0F4B_L_1_M_1) }, }, { - /* MOD_VEX_0F71 */ - { Bad_Opcode }, - { REG_TABLE (REG_VEX_0F71_M_0) }, - }, - { - /* MOD_VEX_0F72 */ - { Bad_Opcode }, - { REG_TABLE (REG_VEX_0F72_M_0) }, - }, - { - /* MOD_VEX_0F73 */ - { Bad_Opcode }, - { REG_TABLE (REG_VEX_0F73_M_0) }, - }, - { /* MOD_VEX_0F91_L_0 */ { VEX_W_TABLE (VEX_W_0F91_L_0_M_0) }, }, From patchwork Tue Jul 4 15:22:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 115834 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f45:0:b0:3ea:f831:8777 with SMTP id v5csp1297427vqx; Tue, 4 Jul 2023 08:24:01 -0700 (PDT) X-Google-Smtp-Source: APBJJlEwFUXTwyTrx4rTRFpZ74l8xXsnB4r+Wehn6wtmenIYi8yUZoBMhHT+sUh/vldGqrybBQYH X-Received: by 2002:a2e:91c5:0:b0:2b5:85a9:7e9b with SMTP id u5-20020a2e91c5000000b002b585a97e9bmr11136829ljg.33.1688484240931; Tue, 04 Jul 2023 08:24:00 -0700 (PDT) Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id ck19-20020a170906c45300b00992d281e886si6125803ejb.411.2023.07.04.08.24.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jul 2023 08:24:00 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=wMnj8UqN; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 5971D385781F for ; Tue, 4 Jul 2023 15:23:31 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5971D385781F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688484211; bh=skdW6F99peWEhthrC//nltMYQqZoCn20Q8VzyGVz4n8=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=wMnj8UqNgJQX/E4hY0Mf5WfhD5CSVUXHK7aHHt6jOmNwTsCnee/ExBsl86kcm9m3c /BGuvm99k/ZNN/urHmsJOsPBsSzQtyFJnaCKmGfzWEim1j0UbhyM85b97TPwWqpB8V NSJkGpvh8jqx7PTZGg/ovwf1ENhZt7QhJ4whGzoI= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02on2046.outbound.protection.outlook.com [40.107.249.46]) by sourceware.org (Postfix) with ESMTPS id 1E6AD385771F for ; Tue, 4 Jul 2023 15:22:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1E6AD385771F ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VSRZZSEHOug49THelN+B6GkjVPiLYyn3OKF5dA5Oj0TZJBjOqy7CCyuglxTbIG5+l5lNxhKJcScVj29/LXVKvKAAHm8Tpx/P5URtYhwWnzK25v2gFPukTe2YkNRTARfYWC3vhkxgh6qLuKTE56L8AxxCsMgSAL2FuhfgSKpyVY34ObuW/iniIpH184d4zrDAySwuqddxr8LFWnLiA1dl+a+iyDSjVtSFp6S4ElFjcG0byll0t3BVTGgA4ebyE1pYK4iIoOjS0kYn/avq9vpisRkv72T+Ib4DzIFuutBa7GF7nfXU5swBDQtAzJ7JiLtvQtMNKNfL8jEvO/stvcw9gQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=skdW6F99peWEhthrC//nltMYQqZoCn20Q8VzyGVz4n8=; b=D7t6JSrbIPAWM/WRxF1TSz8JG0fOVI7U9dO7tiZA1pcNYxZLkRVAzkN5uRVJhjsbeaved5i2Bn/oufTnLHhQLkROvlP/rCyLsFXgnEomuqau4wN98yo//7FKMGLWOF5D3yh1GDB4XuRlvsLrYx/2gKsoQ4tLWIVB35QKvjdxpBmxa6zSL8gM82M82aP/7mfcYewAsMCshz4rNs4cqyOekHGBLJLaujRlxp6jUldP68WakYbnYcspbZMcfTZsr1lU/X1Ckaxe4AEYuwJUj4p1Ba3+BmiZkCYfyorPn5qbqUhht5AN6kxtZcD2Kf0vtSaPdaKFZdBzJDhH4DWdvhOgdA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by AS8PR04MB8692.eurprd04.prod.outlook.com (2603:10a6:20b:42b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Tue, 4 Jul 2023 15:21:59 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880%4]) with mapi id 15.20.6544.024; Tue, 4 Jul 2023 15:21:59 +0000 Message-ID: Date: Tue, 4 Jul 2023 17:22:06 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: [PATCH 06/10] x86: slightly rework handling of some register-only insns Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: In-Reply-To: X-ClientProxiedBy: FR0P281CA0115.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a8::14) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AS8PR04MB8692:EE_ X-MS-Office365-Filtering-Correlation-Id: a8b5e9d8-6654-437c-2527-08db7ca2690d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: q8rVil14iWN0U7ts3x3K+k9hcV7o9a51UJLFu3ZTotHI+Fz5x9tRCMYUpJ7hZY8s2Pmho5yqSAHZ10QPypH+p79ZmXzHg06rHl82j1hbWmLg4/1NR4f+YE301iB1JIKdbLd/hxrQqfzEw54o+EV7O9N2C/qbOcFl8vT/53+uxcT9g7MFrZI8s9dFclecLz3f0uQpF2UI54JEypqV8Vrim6zNr/Tf9hhGJnOKQqz/6dYgzehdRN4JviyfgdSM4x13qRPblpxlHVETvHmmWpoTVDa5/J1xMFtsuPELwd/ViI/bBkc1cHOgk92Y3rKT1WpAyQZQSFk6LKMy/Jw5GmM/MtrO6p6dehpxtrRNK+MARowTK/cKsuHpHLfeFi9pN8c59l6NXUpwxnRGvln+x6vFa6ymg9nb2XHMBIUtxg0OjqWobyksuVdsYfaD/g5OyVSrRNYITodoRti2mE97hdu+zE1BIRsUY1Yq3/L7KaQQgdHBtG7gaIdioorFGB7vrL/9H9ND3LlZmoax6SitjZauF5pB1JYRe2owR5QPOHiY1YZTqRzOYI0aNDH+W3BDslkTuM44cqgx0I0dYVFsrH1r987yS1h01t8qii3GYEyPhzL0GwKdnrD2mesAn+6zTMCzHThwXE3uZQ0tQ36r1plMug== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU2PR04MB8790.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(136003)(39850400004)(376002)(346002)(366004)(396003)(451199021)(478600001)(6666004)(5660300002)(8676002)(36756003)(8936002)(31696002)(86362001)(2906002)(38100700002)(66476007)(4326008)(66946007)(66556008)(6916009)(316002)(41300700001)(26005)(31686004)(186003)(6506007)(2616005)(6486002)(6512007)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?zi1E6RgOjk4d1kKmlNbe8C6AzG1w?= =?utf-8?q?1xUAc2n105Lgkk5S0/Wrh0budqjV7cN5plcqsT2vYX+jbqdUwe89eZcq6d09uHFw8?= =?utf-8?q?eDUQjmABXIzlI2aW3V4eTba4cwfOK/OgOk2nYzzaCCaGWDOypB14E3zcZs8niCHWy?= =?utf-8?q?ajMAhGQyHSqb2PNeaxC7mH/I+H/uD6UWVXcPOhcKTBKfoB1eubOym6oDgXH1ix4GW?= =?utf-8?q?GyxDJbDrrAoSVNpP352LOGhLJmZRGX0npQZIymTy0RE4UR8ZmDxZ88hzW+BPQNxJx?= =?utf-8?q?VpZtpVolxBPfPW47CmRAFSbstzy35KoUQMJjsJFvdnkMbRITc//EC0BxECbunfRLg?= =?utf-8?q?LYuKDJAhkdiaVDpKasrZGwPgzxDMsAvzWI6zpzJrjlD1W6EoygAz+M1zm/KpVNamH?= =?utf-8?q?NbGuz1d065ArntnEmgicfkDlsQmLXlNmQ1C+aw8wqUBuKqVsQ+pYNdljD2rlz/cZt?= =?utf-8?q?9UQprNPdqcrOJNoU0JgXV01wmfGTOpiHTUw3IZ4xImQvbeH0R3xRslCtI2aOegweO?= =?utf-8?q?enxPvRaoNMJ+CQJ1ejGuwTUnc4A+07aH9j/J+QAOKxIX1V2nqQEibbpjACIp4ltcc?= =?utf-8?q?RzCOhbcLiD612qAQ9cKT9OCoBtbsRUu6Ud4NHmcXt1eKYWPlsCPywatHkghBlI4U4?= =?utf-8?q?zGTxpIeNCK1ABZBhyaljhBVLseKFCUAYCVX5dKtpKnpLfJBB+THj619VPNTAZr/sI?= =?utf-8?q?/X31SMzO2i6hIrjlMR9rGVh2uhC5Klyw0xhzhYUewrc4bIXwMnYoTiRUhdqE6a5Ek?= =?utf-8?q?LclrEX7u1rkD47lPwihIvH2JQ1RnktoJe9fcvUeKeI+sW3MRm5vSj5ebqNmR06h2b?= =?utf-8?q?lyUbWYHbJP3NA1BCFbYGQP+SzrqLkFF3sVW3uwNoMhdwX57XDrafl3ABszHhfE9OF?= =?utf-8?q?ES0dRVsu3gwuIvDt4Dzy7MGk8PCZ8UGVXhV1jRad1t0ADsv3c2RT3Uq6tMt261DbF?= =?utf-8?q?SEu6RQjhvCDpTz0yiluqSoB9mcf+8ljHb6GM3tsXdWq3QmQauuvg4vMsCEmGdmpL5?= =?utf-8?q?2GsguGyhohs26jXGGhAA0Su0/YsZDbtasFvrnDyaw01NK1ZwS7q/eUH9gecOTjVzX?= =?utf-8?q?DycteKJhO6FJLMp1Yr188H/Z1r7cjxygRgLOuOAHHtiujU8z+7S1g3AYIh3LeqcSH?= =?utf-8?q?U+VFvl3FePpG93lgFnM5BIdXuwUdYSUoUvenyLwFwN9yE+t3eW6ClVrF4AUCMgUo5?= =?utf-8?q?v664xYQjoVtE3rCj4dHMhwD/xz+epdnqPBqvi9oM1DT/WSGfhkOZ2k0Kiy4eF2CNp?= =?utf-8?q?SfGnnA1YXbXNIULJZVRV3S6wFdxQEZk7KN7+Z7CUI53fS0G1S6SGlU61RQHC+6sNk?= =?utf-8?q?CaTIsfVtlxa8RRnX+TtHsGqaIc/ZGKJl1IVkhrHpFBHbLJ8U2051TqRdtC/gkMlPm?= =?utf-8?q?fLxzrUYlUGQZY1ZGwRnFjX1CNI5aZz8IbcDjRwioPICayflNB20dFDQAjpVnQ3zIE?= =?utf-8?q?wkM2uLnvRtLVDrNtZKRb2C2Fdw5DR0yiIbkj1ivocTzdA4/Ynv03E6fVVbPWd8Z01?= =?utf-8?q?H+SRzh+h2NO8?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: a8b5e9d8-6654-437c-2527-08db7ca2690d X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2023 15:21:59.2777 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: q+RG2Uyufrg/a2MFZfBu7iHPt7JAgRKBQhJRDXUz2qfnFB3/UoW+LZijnMHfk+pJqVqnpEe0jE7/gJ5DXorvZg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8692 X-Spam-Status: No, score=-3027.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770504051883172130?= X-GMAIL-MSGID: =?utf-8?q?1770504051883172130?= Fold OP_MS() and OP_XS() into OP_R(), paralleling OP_M(). Use operand names (largely) matching those in the SDM. For 128-bit-only forms use Uxmm though, marking 256-bit forms as bad. This then allows no longer going through vex_len_table[] for two of the insns. Specifically _do not_ continue to mis-use v_mode. --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -74,8 +74,7 @@ static bool OP_EM (instr_info *, int, in static bool OP_EX (instr_info *, int, int); static bool OP_EMC (instr_info *, int,int); static bool OP_MXC (instr_info *, int,int); -static bool OP_MS (instr_info *, int, int); -static bool OP_XS (instr_info *, int, int); +static bool OP_R (instr_info *, int, int); static bool OP_M (instr_info *, int, int); static bool OP_VEX (instr_info *, int, int); static bool OP_VexR (instr_info *, int, int); @@ -527,8 +526,9 @@ fetch_error (const instr_info *ins) #define EXymmq { OP_EX, ymmq_mode } #define EXEvexXGscat { OP_EX, evex_x_gscat_mode } #define EXEvexXNoBcst { OP_EX, evex_x_nobcst_mode } -#define MS { OP_MS, v_mode } -#define XS { OP_XS, v_mode } +#define Nq { OP_R, q_mode } +#define Ux { OP_R, x_mode } +#define Uxmm { OP_R, xmm_mode } #define EMCq { OP_EMC, q_mode } #define MXC { OP_MXC, 0 } #define OPSUF { OP_3DNowSuffix, 0 } @@ -1329,9 +1329,7 @@ enum VEX_LEN_0FAE_R_2, VEX_LEN_0FAE_R_3, VEX_LEN_0FC4, - VEX_LEN_0FC5, VEX_LEN_0FD6, - VEX_LEN_0FF7, VEX_LEN_0F3816, VEX_LEN_0F3819, VEX_LEN_0F381A, @@ -2276,7 +2274,7 @@ static const struct dis386 dis386_twobyt { PREFIX_TABLE (PREFIX_0FC2) }, { "movntiS", { Mdq, Gdq }, PREFIX_OPCODE }, { "pinsrw", { MX, Edw, Ib }, PREFIX_OPCODE }, - { "pextrw", { Gd, MS, Ib }, PREFIX_OPCODE }, + { "pextrw", { Gd, Nq, Ib }, PREFIX_OPCODE }, { "shufpX", { XM, EXx, Ib }, PREFIX_OPCODE }, { REG_TABLE (REG_0FC7) }, /* c8 */ @@ -2743,32 +2741,32 @@ static const struct dis386 reg_table[][8 { { Bad_Opcode }, { Bad_Opcode }, - { "psrlw", { MS, Ib }, PREFIX_OPCODE }, + { "psrlw", { Nq, Ib }, PREFIX_OPCODE }, { Bad_Opcode }, - { "psraw", { MS, Ib }, PREFIX_OPCODE }, + { "psraw", { Nq, Ib }, PREFIX_OPCODE }, { Bad_Opcode }, - { "psllw", { MS, Ib }, PREFIX_OPCODE }, + { "psllw", { Nq, Ib }, PREFIX_OPCODE }, }, /* REG_0F72 */ { { Bad_Opcode }, { Bad_Opcode }, - { "psrld", { MS, Ib }, PREFIX_OPCODE }, + { "psrld", { Nq, Ib }, PREFIX_OPCODE }, { Bad_Opcode }, - { "psrad", { MS, Ib }, PREFIX_OPCODE }, + { "psrad", { Nq, Ib }, PREFIX_OPCODE }, { Bad_Opcode }, - { "pslld", { MS, Ib }, PREFIX_OPCODE }, + { "pslld", { Nq, Ib }, PREFIX_OPCODE }, }, /* REG_0F73 */ { { Bad_Opcode }, { Bad_Opcode }, - { "psrlq", { MS, Ib }, PREFIX_OPCODE }, - { "psrldq", { XS, Ib }, PREFIX_DATA }, + { "psrlq", { Nq, Ib }, PREFIX_OPCODE }, + { "psrldq", { Ux, Ib }, PREFIX_DATA }, { Bad_Opcode }, { Bad_Opcode }, - { "psllq", { MS, Ib }, PREFIX_OPCODE }, - { "pslldq", { XS, Ib }, PREFIX_DATA }, + { "psllq", { Nq, Ib }, PREFIX_OPCODE }, + { "pslldq", { Ux, Ib }, PREFIX_DATA }, }, /* REG_0FA6 */ { @@ -2822,32 +2820,32 @@ static const struct dis386 reg_table[][8 { { Bad_Opcode }, { Bad_Opcode }, - { "vpsrlw", { Vex, XS, Ib }, PREFIX_DATA }, + { "vpsrlw", { Vex, Ux, Ib }, PREFIX_DATA }, { Bad_Opcode }, - { "vpsraw", { Vex, XS, Ib }, PREFIX_DATA }, + { "vpsraw", { Vex, Ux, Ib }, PREFIX_DATA }, { Bad_Opcode }, - { "vpsllw", { Vex, XS, Ib }, PREFIX_DATA }, + { "vpsllw", { Vex, Ux, Ib }, PREFIX_DATA }, }, /* REG_VEX_0F72 */ { { Bad_Opcode }, { Bad_Opcode }, - { "vpsrld", { Vex, XS, Ib }, PREFIX_DATA }, + { "vpsrld", { Vex, Ux, Ib }, PREFIX_DATA }, { Bad_Opcode }, - { "vpsrad", { Vex, XS, Ib }, PREFIX_DATA }, + { "vpsrad", { Vex, Ux, Ib }, PREFIX_DATA }, { Bad_Opcode }, - { "vpslld", { Vex, XS, Ib }, PREFIX_DATA }, + { "vpslld", { Vex, Ux, Ib }, PREFIX_DATA }, }, /* REG_VEX_0F73 */ { { Bad_Opcode }, { Bad_Opcode }, - { "vpsrlq", { Vex, XS, Ib }, PREFIX_DATA }, - { "vpsrldq", { Vex, XS, Ib }, PREFIX_DATA }, + { "vpsrlq", { Vex, Ux, Ib }, PREFIX_DATA }, + { "vpsrldq", { Vex, Ux, Ib }, PREFIX_DATA }, { Bad_Opcode }, { Bad_Opcode }, - { "vpsllq", { Vex, XS, Ib }, PREFIX_DATA }, - { "vpslldq", { Vex, XS, Ib }, PREFIX_DATA }, + { "vpsllq", { Vex, Ux, Ib }, PREFIX_DATA }, + { "vpslldq", { Vex, Ux, Ib }, PREFIX_DATA }, }, /* REG_VEX_0FAE */ { @@ -3309,16 +3307,16 @@ static const struct dis386 prefix_table[ { {"vmread", { Em, Gm }, 0 }, { Bad_Opcode }, - {"extrq", { XS, Ib, Ib }, 0 }, - {"insertq", { XM, XS, Ib, Ib }, 0 }, + {"extrq", { Uxmm, Ib, Ib }, 0 }, + {"insertq", { XM, Uxmm, Ib, Ib }, 0 }, }, /* PREFIX_0F79 */ { {"vmwrite", { Gm, Em }, 0 }, { Bad_Opcode }, - {"extrq", { XM, XS }, 0 }, - {"insertq", { XM, XS }, 0 }, + {"extrq", { XM, Uxmm }, 0 }, + {"insertq", { XM, Uxmm }, 0 }, }, /* PREFIX_0F7C */ @@ -3475,9 +3473,9 @@ static const struct dis386 prefix_table[ /* PREFIX_0FD6 */ { { Bad_Opcode }, - { "movq2dq",{ XM, MS }, 0 }, + { "movq2dq",{ XM, Nq }, 0 }, { "movq", { EXqS, XM }, 0 }, - { "movdq2q",{ MX, XS }, 0 }, + { "movdq2q",{ MX, Ux }, 0 }, }, /* PREFIX_0FE6 */ @@ -3505,9 +3503,9 @@ static const struct dis386 prefix_table[ /* PREFIX_0FF7 */ { - { "maskmovq", { MX, MS }, PREFIX_OPCODE }, + { "maskmovq", { MX, Nq }, PREFIX_OPCODE }, { Bad_Opcode }, - { "maskmovdqu", { XM, XS }, PREFIX_OPCODE }, + { "maskmovdqu", { XM, Ux }, PREFIX_OPCODE }, }, /* PREFIX_0F38D8 */ @@ -6103,7 +6101,7 @@ static const struct dis386 vex_table[][2 { PREFIX_TABLE (PREFIX_0FC2) }, { Bad_Opcode }, { VEX_LEN_TABLE (VEX_LEN_0FC4) }, - { VEX_LEN_TABLE (VEX_LEN_0FC5) }, + { "vpextrw", { Gd, Uxmm, Ib }, PREFIX_DATA }, { "vshufpX", { XM, Vex, EXx, Ib }, PREFIX_OPCODE }, { Bad_Opcode }, /* c8 */ @@ -6159,7 +6157,7 @@ static const struct dis386 vex_table[][2 { "vpmuludq", { XM, Vex, EXx }, PREFIX_DATA }, { "vpmaddwd", { XM, Vex, EXx }, PREFIX_DATA }, { "vpsadbw", { XM, Vex, EXx }, PREFIX_DATA }, - { VEX_LEN_TABLE (VEX_LEN_0FF7) }, + { "vmaskmovdqu", { XM, Uxmm }, PREFIX_DATA }, /* f8 */ { "vpsubb", { XM, Vex, EXx }, PREFIX_DATA }, { "vpsubw", { XM, Vex, EXx }, PREFIX_DATA }, @@ -6900,21 +6898,11 @@ static const struct dis386 vex_len_table { "%XEvpinsrwY", { XM, Vex, Edw, Ib }, PREFIX_DATA }, }, - /* VEX_LEN_0FC5 */ - { - { "%XEvpextrw", { Gd, XS, Ib }, PREFIX_DATA }, - }, - /* VEX_LEN_0FD6 */ { { "%XEvmovqY", { EXqS, XMScalar }, PREFIX_DATA }, }, - /* VEX_LEN_0FF7 */ - { - { "vmaskmovdqu", { XM, XS }, PREFIX_DATA }, - }, - /* VEX_LEN_0F3816 */ { { Bad_Opcode }, @@ -8031,7 +8019,7 @@ static const struct dis386 mod_table[][2 { /* MOD_0F50 */ { Bad_Opcode }, - { "VmovmskpX", { Gdq, XS }, PREFIX_OPCODE }, + { "VmovmskpX", { Gdq, Ux }, PREFIX_OPCODE }, }, { /* MOD_0FAE_REG_0 */ @@ -8086,7 +8074,7 @@ static const struct dis386 mod_table[][2 { /* MOD_0FD7 */ { Bad_Opcode }, - { "pmovmskb", { Gdq, MS }, 0 }, + { "pmovmskb", { Gdq, Nq }, 0 }, }, { /* MOD_0F38DC_PREFIX_1 */ @@ -8175,7 +8163,7 @@ static const struct dis386 mod_table[][2 { /* MOD_VEX_0FD7 */ { Bad_Opcode }, - { "vpmovmskb", { Gdq, XS }, PREFIX_DATA }, + { "vpmovmskb", { Gdq, Ux }, PREFIX_DATA }, }, { /* MOD_VEX_0F3849_X86_64_L_0_W_0 */ @@ -12674,19 +12662,22 @@ OP_EX (instr_info *ins, int bytemode, in } static bool -OP_MS (instr_info *ins, int bytemode, int sizeflag) +OP_R (instr_info *ins, int bytemode, int sizeflag) { - if (ins->modrm.mod == 3) - return OP_EM (ins, bytemode, sizeflag); - return BadOp (ins); -} + if (ins->modrm.mod != 3) + return BadOp (ins); -static bool -OP_XS (instr_info *ins, int bytemode, int sizeflag) -{ - if (ins->modrm.mod == 3) - return OP_EX (ins, bytemode, sizeflag); - return BadOp (ins); + switch (bytemode) + { + case q_mode: + return OP_EM (ins, x_mode, sizeflag); + case xmm_mode: + if (ins->vex.length <= 128) + break; + return BadOp (ins); + } + + return OP_EX (ins, bytemode, sizeflag); } static bool --- a/opcodes/i386-dis-evex.h +++ b/opcodes/i386-dis-evex.h @@ -223,7 +223,7 @@ static const struct dis386 evex_table[][ { PREFIX_TABLE (PREFIX_EVEX_0FC2) }, { Bad_Opcode }, { VEX_LEN_TABLE (VEX_LEN_0FC4) }, - { VEX_LEN_TABLE (VEX_LEN_0FC5) }, + { "%XEvpextrw", { Gd, Uxmm, Ib }, PREFIX_DATA }, { "%XEvshufpX", { XM, Vex, EXx, Ib }, PREFIX_OPCODE }, { Bad_Opcode }, /* C8 */ From patchwork Tue Jul 4 15:22:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 115835 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f45:0:b0:3ea:f831:8777 with SMTP id v5csp1298977vqx; Tue, 4 Jul 2023 08:26:21 -0700 (PDT) X-Google-Smtp-Source: APBJJlE4ixlNfLpR65BIHZkCFUunyMkMnMz0RQ1+P9LeM90UnMLwXdzWtl1LlCagnS007gDeJdmi X-Received: by 2002:aa7:c983:0:b0:51e:2274:beaa with SMTP id c3-20020aa7c983000000b0051e2274beaamr1591675edt.36.1688484381549; Tue, 04 Jul 2023 08:26:21 -0700 (PDT) Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id e22-20020aa7d7d6000000b0051df3ae38b4si5565722eds.573.2023.07.04.08.26.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jul 2023 08:26:21 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b="K6ABU/p8"; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 11B193857BB3 for ; Tue, 4 Jul 2023 15:24:44 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 11B193857BB3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688484284; bh=nbp/AFCgop+uQ+FvUvrwYXdKqxGrjcc9NcXojAjYwIU=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=K6ABU/p8NV+QkkgUfHQAR9gk/4WkJBZzK6bz4fsryUM2lj9niOflr+Iika/4HHxvn DHw7NXf22CJzr0lidah8PK9VDkMhSHmtaBwvM0N2/NzfTSCjPC3y/qzqO8Ma+5nI1n cwKDfuvqjQxK4lEsr5Vthwy23q2iiI2n2q8ydW1o= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2087.outbound.protection.outlook.com [40.107.7.87]) by sourceware.org (Postfix) with ESMTPS id 877423856DD5 for ; Tue, 4 Jul 2023 15:22:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 877423856DD5 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Eg/ft5cP00U5x3IQFcpoFwi+zHR581vazbTfLKNzSN5k8WkAxSvFP/t9HXE+azw0rC5O/0balRAS3irik7A1yMuC7jicdT4mtEGQGKhymnfLYUkeKSxkCDC+3ovHOcGqyfcZ3X/Y7KUYVBpI7VN+GHg67+zkVzmDCIvwUjx7rFbIcemKG5OzbVk/gW/W8Oyixd1Vz3oRCqkWXfhUm/SvifYq51cLIfBzhoJ6hbIX2d3+6F7xAulfC392o02zGxypZ+VAB6hRdKsjyVgkHTuBp4Ij54pOMx3HD6kjCNrhNUCQNnvmF8GxOXW4c24ui97yfA8n1kRsVPT5dctlLvYctg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=nbp/AFCgop+uQ+FvUvrwYXdKqxGrjcc9NcXojAjYwIU=; b=IQAv/kWlfG30acpU9UNmIy49Fvv005ah+CMxbcw0qtRch3fPXoJpFjtZBFdGvLfi+0F4ilFRJd26HO1zn94UY/eYYpqoSkKHV5ZnV6eZ5Cfb89EOFRTyZMCcd+lB19tHATfkX7nBuTCm8bXZ7xD24E6G01jaB6J+5khIn6DLMhYsa9vluwx7y90Vc95FQ5dCCOQ6foIkr3BDyI5+iw4yVJ8jLEIKTJsivRjB82I+00wv8ZJcPeoy8jfvw/xnlHEROJvkpcitlHzfhPrjHIM03MRZizvth2CaBXuHqikGgNMK0BuDZLDhbQ7ruF5Qw46dNU2cB7vaDORUCPPnp4cg8Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by AS8PR04MB8692.eurprd04.prod.outlook.com (2603:10a6:20b:42b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Tue, 4 Jul 2023 15:22:24 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880%4]) with mapi id 15.20.6544.024; Tue, 4 Jul 2023 15:22:24 +0000 Message-ID: <25535360-ad14-8ed2-bd86-b96f97306e43@suse.com> Date: Tue, 4 Jul 2023 17:22:31 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: [PATCH 07/10] x86: various operations on mask registers can avoid going through mod_table[] Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: In-Reply-To: X-ClientProxiedBy: FR0P281CA0188.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ab::9) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AS8PR04MB8692:EE_ X-MS-Office365-Filtering-Correlation-Id: 821ecbf9-2a1a-4aa2-206c-08db7ca27831 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NXK+AXLp+lchVbGMnm5XIbCX3zVXDjHJIKKauXz+tnr3msJ0t06Cbpgh/d6VCd1aB1YIKbWDeDs+AktSUAwHQHkpZ+gsmDjO9qgIy0BfhiLmWpPMGXbP41vIOZhoemLFAT4yRalNhRttWJomL3wZP0Do1qg3RPFbrNNCAH9+k24uVoxlxrptOi50sDBg4iPxtCCRP5ODpGrdQ4rnKek6TgOvdYn/gtXxyYezQISSB0n636+70b7CfwbghL1rCYy+Fb61vZrgYoeuP/m++6ayOqAONpKXzQ0zbgAwRK1mtC301CEMk4ewtZR5SbpFzXcTScOrMU1sLGL1kElApPULP7C+1dCF7He1WBzO6EH1ZBiNSZgSGSJMt2bqnC6H3rYsNeI4CL52rzxgQ5MLALybUx47N9K08hFrTwPQNmTrbe9aqjk+32KgDoapnTGNO+dITFYdpDfqLu4KEy1ceOrrDJhTfXgbK3085fkg0O4TP7cy5ouhfvA2fr6DkeR7q3Jlm7IAQmALDUMLniNSTnbxLhe1qWSwIgCu6oRDUdA+4pvl/KxMcvi17z/kZIYPiITZFnTeXZ1TqxPxbwWCqP5LpRZ7Jlr86mHkOizpBs0WCHr8OMQ2lqAEXFrWJyJKFgJXEX4Apd3Kvg7/J+1n8Y7puw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU2PR04MB8790.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(136003)(39850400004)(376002)(346002)(366004)(396003)(451199021)(478600001)(6666004)(5660300002)(8676002)(36756003)(8936002)(30864003)(31696002)(86362001)(2906002)(38100700002)(66476007)(4326008)(66946007)(66556008)(6916009)(316002)(41300700001)(83380400001)(26005)(31686004)(186003)(6506007)(2616005)(6486002)(6512007)(43740500002)(45980500001)(579004)(559001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?gE6iRPGee31rB68LSmzovkqbcn/v?= =?utf-8?q?H7SX+WHsDtA0ZES1zeZ6mAIUJ52UlXWDoVMfPQMLcrJm8pisFsGM/O0/7x8B/AXHC?= =?utf-8?q?P1OKyLVj0upxUcNUSPrEFXPTana5cnMW9/gXT8y80TES8MVicbiPzkjDhPPvdcSj7?= =?utf-8?q?bv0NnnQPsyZNQuQR+78pkkmBR126eRM1Mo7Xvaqy3oh8xf1jokznNas2HyBK0/UlX?= =?utf-8?q?a+mbZel/rLPWhe88z9FWHle8QXsY9lHKHADWqR+TLKFV8ZTWbFn0kbo9c0e6TxhU5?= =?utf-8?q?3igHMJhYPcQHxh36w6iQYLikQZRu6DVvh/bxFM7Pmf47ZhkvRfMbRZpkeFqhawLpk?= =?utf-8?q?buyzQoRbfK15CFHPVLDAdxfNYoEMP/EsXPk0hfImdxszh0AsHGVQYOp8wAIsZANkW?= =?utf-8?q?nj1iM/Yyv3BimvZ2pYG6ha221wR1ae9bxtFnrc9Gbzu6Bge0XT+Hmc937Pji+9/n8?= =?utf-8?q?KlGCFWkfdeTuNaJCZ26HjstqdghI7zDPDRjD8iE48Wdt3RSJ07pXY39wjPNEw0dwh?= =?utf-8?q?9D4KLRKXItXlil4VrKTb5b2WljYiFB6UEpGa6KFAKyzSgyo3sNnfkK1I/LAgENl7V?= =?utf-8?q?JmF//qAU/KH19V65JNJuxwj1yCEOeXnEcGWFF0toEIcI8XIi1lZXTTLaCOWqYUUfk?= =?utf-8?q?WoR0Yc5fl4E0prm9qQLN+P3bW75ZmqUcjScXq/zf/1tOQXSy6NCcaDyXpN+JHO2H4?= =?utf-8?q?LYU53Pmy7BDGFD/RiUSVi/EtpsqTbt3DSFWd+sDY9qp8Fke4EBoNLNRtjJ0ZUU/hF?= =?utf-8?q?X2N8Ha57i8R1Rgy+TDXbyzKP9O1JxTeRfliXD0xEuyQ5DhfmHs3Xal1gkxp/CEts4?= =?utf-8?q?S9AoI160ZS+D3lQU5OY2hwdAvP/X99vhAU/mFGQVSbX6DpQh1nEz6eliQ1U/TkOV2?= =?utf-8?q?fS6GIHrhZg73JRALqyBkcFryQN/XhSPbObZl73bQdTl0tYEI2McJEZlvT3LhTrdMp?= =?utf-8?q?BdMS04rojtF+mj8vqlIPJwzYntnpKrNC1nJdC6X6IEKOMqORshNn9nPGOIhFL6xqp?= =?utf-8?q?HSV29jT/2BlNkbP79IDxVoOkX9RyuYg0trVzcycZCKpd8gAHBaY2cJnk+bmafFtyO?= =?utf-8?q?g/rKGvjT3i/MVhDLOHJ48wUtDY9Q1mLz5cC8bxD8uhAECkA0VqVb9Pz/xW8bp0a4X?= =?utf-8?q?Om0bJcuw2jlA9/GX4iQPbgYQFAS/yTgUFUc8pQ3iwgXaVkBhDYYUJYBQ0ZtIMtR3r?= =?utf-8?q?aQWv7rVJniD7L5IGt83bK+qKw3LRYSVXdYWLFV80qeJdxf8L9bjxt6BsEqisVWLI/?= =?utf-8?q?XQYwSDE5VqwvxIr6lYSJdH1juiQQb6C7VIbGX+O0XONlOEvpXKUJJvuLIIIr+7U9X?= =?utf-8?q?DeDxmbDklLkv/gQejqKKrD5ZwPTAXkr58QxX5eDQvoFZetOLeI3bBIrbijIJTgInp?= =?utf-8?q?dbyuKQpec/z+fZgzXlbhPOuBAywe2Ya+vzcpuZLgKm7FEUKw096M2j8tZIaFKDLpL?= =?utf-8?q?PejABeuGPicB06+G4kmFvGRFVEvvGaQmtZ/Ea3xvPylUMAV3vYRwL9T2ds8AwrMhT?= =?utf-8?q?hx6sR1utvBfS?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 821ecbf9-2a1a-4aa2-206c-08db7ca27831 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2023 15:22:24.7397 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: uPh+bNT3WomO5vTxKKXmMQU9X9yjRX5R+YeW9LLQGNQSKcunN0Mxjz3dhIuBnNs9V1Swrx8Tm5eDIJ6rv9eq5w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8692 X-Spam-Status: No, score=-3027.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770504198990131758?= X-GMAIL-MSGID: =?utf-8?q?1770504198990131758?= Now that we have OP_R(), use it here as well, while wiring memory-only operands to OP_M() at the same time. To keep the number of consumed opcode bytes similar to before, make BadOp() also account for VEX/XOP/ EVEX prefix bytes. To keep that change simple, convert need_vex to an actual count of prefix bytes (keeping intact all prior boolean uses of the field). Note how this improves disassembly of such bad encodings, by at least leaving a hint towards what a "nearby" instruction is. (For KSHIFT* change the immediates test testcases use, such that disassembly remains sufficiently in sync.) While there also use Ux for VPMOV{B,W,D,Q}2M, where decoding through mod_table[] was missing in the earlier scheme. --- a/gas/testsuite/gas/i386/disassem.d +++ b/gas/testsuite/gas/i386/disassem.d @@ -12,305 +12,305 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*ef[ ]*out %eax,\(%dx\) [ ]*[a-f0-9]+:[ ]*ff[ ]+lcall[ ]*\(bad\) [ ]*[a-f0-9]+:[ ]*d8 90 90 90 90 90[ ]*fcoms -0x6f6f6f70\(%eax\) -[ ]*[a-f0-9]+:[ ]*c5 ec 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 4a[ ]+kaddw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ec 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 4a[ ]+kaddw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ec 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 4a[ ]+kaddw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 ed 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 4a[ ]+kaddb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ed 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 4a[ ]+kaddb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ed 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 4a[ ]+kaddb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4a[ ]+kaddq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4a[ ]+kaddq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4a[ ]+kaddq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 4a[ ]+kaddd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 4a[ ]+kaddd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 4a[ ]+kaddd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 ec 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 41[ ]+kandw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ec 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 41[ ]+kandw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ec 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 41[ ]+kandw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 ed 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 41[ ]+kandb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ed 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 41[ ]+kandb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ed 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 41[ ]+kandb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 41[ ]+kandq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 41[ ]+kandq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 41[ ]+kandq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 41[ ]+kandd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 41[ ]+kandd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 41[ ]+kandd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 ec 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 42[ ]+kandnw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ec 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 42[ ]+kandnw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ec 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 42[ ]+kandnw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 ed 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 42[ ]+kandnb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ed 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 42[ ]+kandnb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ed 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 42[ ]+kandnb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 42[ ]+kandnq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 42[ ]+kandnq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 42[ ]+kandnq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 42[ ]+kandnd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 42[ ]+kandnd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 42[ ]+kandnd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 ec 4b[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 4b[ ]+kunpckwd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ec 4b[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 4b[ ]+kunpckwd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ec 4b[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 4b[ ]+kunpckwd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 ed 4b[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 4b[ ]+kunpckbw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ed 4b[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 4b[ ]+kunpckbw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ed 4b[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 4b[ ]+kunpckbw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4b[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4b[ ]+kunpckdq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4b[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4b[ ]+kunpckdq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4b[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4b[ ]+kunpckdq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 f8 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 44[ ]+knotw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f8 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 44[ ]+knotw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f8 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 44[ ]+knotw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 f9 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 44[ ]+knotb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f9 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 44[ ]+knotb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f9 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 44[ ]+knotb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 f8 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f8 44[ ]+knotq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 f8 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f8 44[ ]+knotq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 f8 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f8 44[ ]+knotq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 f9 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f9 44[ ]+knotd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 f9 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f9 44[ ]+knotd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 f9 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f9 44[ ]+knotd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 ec 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 45[ ]+korw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ec 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 45[ ]+korw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ec 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 45[ ]+korw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 ed 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 45[ ]+korb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ed 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 45[ ]+korb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ed 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 45[ ]+korb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 45[ ]+korq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 45[ ]+korq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 45[ ]+korq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 45[ ]+kord[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 45[ ]+kord[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 45[ ]+kord[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 f8 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 98[ ]+kortestw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f8 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 98[ ]+kortestw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f8 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 98[ ]+kortestw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 f9 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 98[ ]+kortestb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f9 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 98[ ]+kortestb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f9 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 98[ ]+kortestb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 f8 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f8 98[ ]+kortestq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 f8 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f8 98[ ]+kortestq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 f8 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f8 98[ ]+kortestq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 f9 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f9 98[ ]+kortestd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 f9 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f9 98[ ]+kortestd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 f9 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f9 98[ ]+kortestd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 ec 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 46[ ]+kxnorw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ec 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 46[ ]+kxnorw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ec 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 46[ ]+kxnorw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 ed 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 46[ ]+kxnorb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ed 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 46[ ]+kxnorb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ed 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 46[ ]+kxnorb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 46[ ]+kxnorq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 46[ ]+kxnorq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 46[ ]+kxnorq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 46[ ]+kxnord[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 46[ ]+kxnord[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 46[ ]+kxnord[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 ec 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 47[ ]+kxorw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ec 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 47[ ]+kxorw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ec 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 47[ ]+kxorw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 ed 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 47[ ]+kxorb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ed 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 47[ ]+kxorb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ed 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 47[ ]+kxorb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 47[ ]+kxorq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 47[ ]+kxorq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 47[ ]+kxorq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 47[ ]+kxord[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 47[ ]+kxord[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 47[ ]+kxord[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 f8 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 99[ ]+ktestw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f8 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 99[ ]+ktestw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f8 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 99[ ]+ktestw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 f9 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 99[ ]+ktestb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f9 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 99[ ]+ktestb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f9 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 99[ ]+ktestb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 f8 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f8 99[ ]+ktestq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 f8 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f8 99[ ]+ktestq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 f8 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f8 99[ ]+ktestq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e1 f9 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f9 99[ ]+ktestd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 f9 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f9 99[ ]+ktestd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 f9 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f9 99[ ]+ktestd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 30[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*8f 01[ ]*pop \(%ecx\) -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 30[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*6a 01[ ]*push \$0x1 -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 30[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*04 01[ ]*add \$0x1,%al -[ ]*[a-f0-9]+:[ ]*c4 e3 79 30[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*8f 01[ ]*pop \(%ecx\) -[ ]*[a-f0-9]+:[ ]*c4 e3 79 30[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*6a 01[ ]*push \$0x1 -[ ]*[a-f0-9]+:[ ]*c4 e3 79 30[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*04 01[ ]*add \$0x1,%al -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 31[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*8f 01[ ]*pop \(%ecx\) -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 31[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*6a 01[ ]*push \$0x1 -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 31[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*04 01[ ]*add \$0x1,%al -[ ]*[a-f0-9]+:[ ]*c4 e3 79 31[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*8f 01[ ]*pop \(%ecx\) -[ ]*[a-f0-9]+:[ ]*c4 e3 79 31[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*6a 01[ ]*push \$0x1 -[ ]*[a-f0-9]+:[ ]*c4 e3 79 31[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*04 01[ ]*add \$0x1,%al -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 32[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*8f 01[ ]*pop \(%ecx\) -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 32[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*6a 01[ ]*push \$0x1 -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 32[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*04 01[ ]*add \$0x1,%al -[ ]*[a-f0-9]+:[ ]*c4 e3 79 32[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*8f 01[ ]*pop \(%ecx\) -[ ]*[a-f0-9]+:[ ]*c4 e3 79 32[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*6a 01[ ]*push \$0x1 -[ ]*[a-f0-9]+:[ ]*c4 e3 79 32[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*04 01[ ]*add \$0x1,%al -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 33[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*8f 01[ ]*pop \(%ecx\) -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 33[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*6a 01[ ]*push \$0x1 -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 33[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*04 01[ ]*add \$0x1,%al -[ ]*[a-f0-9]+:[ ]*c4 e3 79 33[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*8f 01[ ]*pop \(%ecx\) -[ ]*[a-f0-9]+:[ ]*c4 e3 79 33[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*6a 01[ ]*push \$0x1 -[ ]*[a-f0-9]+:[ ]*c4 e3 79 33[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*04 01[ ]*add \$0x1,%al -[ ]*[a-f0-9]+:[ ]*c5 f8 92[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 30 8f[ ]+kshiftrw[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 30 6a[ ]+kshiftrw[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 30 04[ ]+kshiftrw[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 79 30 8f[ ]+kshiftrb[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 79 30 6a[ ]+kshiftrb[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 79 30 04[ ]+kshiftrb[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 31 8f[ ]+kshiftrq[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 31 6a[ ]+kshiftrq[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 31 04[ ]+kshiftrq[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 79 31 8f[ ]+kshiftrd[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 79 31 6a[ ]+kshiftrd[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 79 31 04[ ]+kshiftrd[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 32 8f[ ]+kshiftlw[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 32 6a[ ]+kshiftlw[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 32 04[ ]+kshiftlw[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 79 32 8f[ ]+kshiftlb[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 79 32 6a[ ]+kshiftlb[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 79 32 04[ ]+kshiftlb[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 33 8f[ ]+kshiftlq[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 33 6a[ ]+kshiftlq[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 33 04[ ]+kshiftlq[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 79 33 8f[ ]+kshiftld[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 79 33 6a[ ]+kshiftld[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c4 e3 79 33 04[ ]+kshiftld[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]+pop[ ]+%es +[ ]*[a-f0-9]+:[ ]*c5 f8 92[ ]+kmovw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f8 92[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 92[ ]+kmovw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f8 92[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 92[ ]+kmovw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 f9 92[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 92[ ]+kmovb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f9 92[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 92[ ]+kmovb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f9 92[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 92[ ]+kmovb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 fb 92[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 fb 92[ ]+kmovd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 fb 92[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 fb 92[ ]+kmovd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 fb 92[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 fb 92[ ]+kmovd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas [ ]*[a-f0-9]+:[ ]*c4 e1 f9 92[ ]*\(bad\) [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait @@ -318,23 +318,23 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) [ ]*[a-f0-9]+:[ ]*c4 e1 f9 92[ ]*\(bad\) [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 f8 93[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 93[ ]+kmovw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f8 93[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 93[ ]+kmovw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f8 93[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 93[ ]+kmovw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 f9 93[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 93[ ]+kmovb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f9 93[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 93[ ]+kmovb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f9 93[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 93[ ]+kmovb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas -[ ]*[a-f0-9]+:[ ]*c5 fb 93[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 fb 93[ ]+kmovd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 fb 93[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 fb 93[ ]+kmovd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%esi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 fb 93[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 fb 93[ ]+kmovd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*aas [ ]*[a-f0-9]+:[ ]*c4 e1 f9 93[ ]*\(bad\) [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait --- a/gas/testsuite/gas/i386/disassem.s +++ b/gas/testsuite/gas/i386/disassem.s @@ -119,30 +119,30 @@ .byte 0xC4, 0xE1, 0xF9, 0x99, 0x9B .byte 0xC4, 0xE1, 0xF9, 0x99, 0x6F .insn VEX.L0.66.0f.W1 0x99, (%edi), %k7 -.byte 0xC4, 0xE3, 0xF9, 0x30, 0x8F, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x30, 0x6A, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x30, 0x04, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x30, 0x8F, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x30, 0x6A, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x30, 0x04, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x31, 0x8F, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x31, 0x6A, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x31, 0x04, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x31, 0x8F, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x31, 0x6A, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x31, 0x04, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x32, 0x8F, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x32, 0x6A, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x32, 0x04, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x32, 0x8F, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x32, 0x6A, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x32, 0x04, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x33, 0x8F, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x33, 0x6A, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x33, 0x04, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x33, 0x8F, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x33, 0x6A, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x33, 0x04, 0x01 +.byte 0xC4, 0xE3, 0xF9, 0x30, 0x8F, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x30, 0x6A, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x30, 0x04, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x30, 0x8F, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x30, 0x6A, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x30, 0x04, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x31, 0x8F, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x31, 0x6A, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x31, 0x04, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x31, 0x8F, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x31, 0x6A, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x31, 0x04, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x32, 0x8F, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x32, 0x6A, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x32, 0x04, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x32, 0x8F, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x32, 0x6A, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x32, 0x04, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x33, 0x8F, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x33, 0x6A, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x33, 0x04, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x33, 0x8F, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x33, 0x6A, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x33, 0x04, 0x07 .byte 0xC5, 0xF8, 0x92, 0x9B .byte 0xC5, 0xF8, 0x92, 0x6F .insn VEX.L0.NP.0f.W0 0x92, (%edi), %k7 --- a/gas/testsuite/gas/i386/x86-64-disassem.d +++ b/gas/testsuite/gas/i386/x86-64-disassem.d @@ -12,305 +12,305 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*ef[ ]*out %eax,\(%dx\) [ ]*[a-f0-9]+:[ ]*ff[ ]+lcall[ ]*\(bad\) [ ]*[a-f0-9]+:[ ]*d8 90 90 90 90 90[ ]*fcoms -0x6f6f6f70\(%rax\) -[ ]*[a-f0-9]+:[ ]*c5 ec 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 4a[ ]+kaddw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ec 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 4a[ ]+kaddw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ec 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 4a[ ]+kaddw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 ed 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 4a[ ]+kaddb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ed 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 4a[ ]+kaddb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ed 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 4a[ ]+kaddb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4a[ ]+kaddq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4a[ ]+kaddq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4a[ ]+kaddq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 4a[ ]+kaddd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 4a[ ]+kaddd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 4a[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 4a[ ]+kaddd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 ec 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 41[ ]+kandw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ec 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 41[ ]+kandw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ec 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 41[ ]+kandw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 ed 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 41[ ]+kandb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ed 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 41[ ]+kandb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ed 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 41[ ]+kandb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 41[ ]+kandq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 41[ ]+kandq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 41[ ]+kandq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 41[ ]+kandd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 41[ ]+kandd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 41[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 41[ ]+kandd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 ec 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 42[ ]+kandnw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ec 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 42[ ]+kandnw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ec 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 42[ ]+kandnw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 ed 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 42[ ]+kandnb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ed 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 42[ ]+kandnb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ed 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 42[ ]+kandnb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 42[ ]+kandnq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 42[ ]+kandnq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 42[ ]+kandnq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 42[ ]+kandnd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 42[ ]+kandnd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 42[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 42[ ]+kandnd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 ec 4b[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 4b[ ]+kunpckwd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ec 4b[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 4b[ ]+kunpckwd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ec 4b[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 4b[ ]+kunpckwd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 ed 4b[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 4b[ ]+kunpckbw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ed 4b[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 4b[ ]+kunpckbw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ed 4b[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 4b[ ]+kunpckbw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4b[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4b[ ]+kunpckdq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4b[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4b[ ]+kunpckdq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4b[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 4b[ ]+kunpckdq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 f8 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 44[ ]+knotw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f8 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 44[ ]+knotw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f8 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 44[ ]+knotw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 f9 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 44[ ]+knotb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f9 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 44[ ]+knotb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f9 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 44[ ]+knotb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 f8 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f8 44[ ]+knotq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 f8 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f8 44[ ]+knotq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 f8 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f8 44[ ]+knotq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 f9 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f9 44[ ]+knotd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 f9 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f9 44[ ]+knotd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 f9 44[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f9 44[ ]+knotd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 ec 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 45[ ]+korw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ec 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 45[ ]+korw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ec 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 45[ ]+korw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 ed 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 45[ ]+korb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ed 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 45[ ]+korb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ed 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 45[ ]+korb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 45[ ]+korq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 45[ ]+korq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 45[ ]+korq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 45[ ]+kord[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 45[ ]+kord[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 45[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 45[ ]+kord[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 f8 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 98[ ]+kortestw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f8 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 98[ ]+kortestw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f8 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 98[ ]+kortestw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 f9 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 98[ ]+kortestb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f9 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 98[ ]+kortestb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f9 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 98[ ]+kortestb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 f8 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f8 98[ ]+kortestq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 f8 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f8 98[ ]+kortestq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 f8 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f8 98[ ]+kortestq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 f9 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f9 98[ ]+kortestd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 f9 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f9 98[ ]+kortestd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 f9 98[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f9 98[ ]+kortestd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 ec 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 46[ ]+kxnorw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ec 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 46[ ]+kxnorw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ec 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 46[ ]+kxnorw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 ed 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 46[ ]+kxnorb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ed 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 46[ ]+kxnorb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ed 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 46[ ]+kxnorb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 46[ ]+kxnorq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 46[ ]+kxnorq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 46[ ]+kxnorq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 46[ ]+kxnord[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 46[ ]+kxnord[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 46[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 46[ ]+kxnord[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 ec 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 47[ ]+kxorw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ec 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 47[ ]+kxorw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ec 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ec 47[ ]+kxorw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 ed 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 47[ ]+kxorb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 ed 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 47[ ]+kxorb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 ed 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 ed 47[ ]+kxorb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 47[ ]+kxorq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 47[ ]+kxorq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ec 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ec 47[ ]+kxorq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 47[ ]+kxord[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 47[ ]+kxord[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 ed 47[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 ed 47[ ]+kxord[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 f8 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 99[ ]+ktestw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f8 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 99[ ]+ktestw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f8 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 99[ ]+ktestw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 f9 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 99[ ]+ktestb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f9 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 99[ ]+ktestb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f9 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 99[ ]+ktestb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 f8 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f8 99[ ]+ktestq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 f8 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f8 99[ ]+ktestq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 f8 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f8 99[ ]+ktestq[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e1 f9 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f9 99[ ]+ktestd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c4 e1 f9 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f9 99[ ]+ktestd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c4 e1 f9 99[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e1 f9 99[ ]+ktestd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 30[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*8f 01[ ]*pop \(%rcx\) -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 30[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*6a 01[ ]*push \$0x1 -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 30[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*04 01[ ]*add \$0x1,%al -[ ]*[a-f0-9]+:[ ]*c4 e3 79 30[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*8f 01[ ]*pop \(%rcx\) -[ ]*[a-f0-9]+:[ ]*c4 e3 79 30[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*6a 01[ ]*push \$0x1 -[ ]*[a-f0-9]+:[ ]*c4 e3 79 30[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*04 01[ ]*add \$0x1,%al -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 31[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*8f 01[ ]*pop \(%rcx\) -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 31[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*6a 01[ ]*push \$0x1 -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 31[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*04 01[ ]*add \$0x1,%al -[ ]*[a-f0-9]+:[ ]*c4 e3 79 31[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*8f 01[ ]*pop \(%rcx\) -[ ]*[a-f0-9]+:[ ]*c4 e3 79 31[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*6a 01[ ]*push \$0x1 -[ ]*[a-f0-9]+:[ ]*c4 e3 79 31[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*04 01[ ]*add \$0x1,%al -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 32[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*8f 01[ ]*pop \(%rcx\) -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 32[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*6a 01[ ]*push \$0x1 -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 32[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*04 01[ ]*add \$0x1,%al -[ ]*[a-f0-9]+:[ ]*c4 e3 79 32[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*8f 01[ ]*pop \(%rcx\) -[ ]*[a-f0-9]+:[ ]*c4 e3 79 32[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*6a 01[ ]*push \$0x1 -[ ]*[a-f0-9]+:[ ]*c4 e3 79 32[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*04 01[ ]*add \$0x1,%al -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 33[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*8f 01[ ]*pop \(%rcx\) -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 33[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*6a 01[ ]*push \$0x1 -[ ]*[a-f0-9]+:[ ]*c4 e3 f9 33[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*04 01[ ]*add \$0x1,%al -[ ]*[a-f0-9]+:[ ]*c4 e3 79 33[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*8f 01[ ]*pop \(%rcx\) -[ ]*[a-f0-9]+:[ ]*c4 e3 79 33[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*6a 01[ ]*push \$0x1 -[ ]*[a-f0-9]+:[ ]*c4 e3 79 33[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*04 01[ ]*add \$0x1,%al -[ ]*[a-f0-9]+:[ ]*c5 f8 92[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 30 8f[ ]+kshiftrw[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 30 6a[ ]+kshiftrw[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 30 04[ ]+kshiftrw[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 79 30 8f[ ]+kshiftrb[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 79 30 6a[ ]+kshiftrb[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 79 30 04[ ]+kshiftrb[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 31 8f[ ]+kshiftrq[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 31 6a[ ]+kshiftrq[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 31 04[ ]+kshiftrq[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 79 31 8f[ ]+kshiftrd[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 79 31 6a[ ]+kshiftrd[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 79 31 04[ ]+kshiftrd[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 32 8f[ ]+kshiftlw[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 32 6a[ ]+kshiftlw[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 32 04[ ]+kshiftlw[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 79 32 8f[ ]+kshiftlb[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 79 32 6a[ ]+kshiftlb[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 79 32 04[ ]+kshiftlb[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 33 8f[ ]+kshiftlq[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 33 6a[ ]+kshiftlq[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 f9 33 04[ ]+kshiftlq[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 79 33 8f[ ]+kshiftld[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 79 33 6a[ ]+kshiftld[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c4 e3 79 33 04[ ]+kshiftld[ ]*\$0x[0-9a-f]*,\(bad\),.* +[ ]*[a-f0-9]+:[ ]*07[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 92[ ]+kmovw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f8 92[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 92[ ]+kmovw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f8 92[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 92[ ]+kmovw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 f9 92[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 92[ ]+kmovb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f9 92[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 92[ ]+kmovb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f9 92[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 92[ ]+kmovb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 fb 92[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 fb 92[ ]+kmovd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 fb 92[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 fb 92[ ]+kmovd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 fb 92[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 fb 92[ ]+kmovd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) [ ]*[a-f0-9]+:[ ]*c4 e1 f9 92[ ]*\(bad\) [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait @@ -318,23 +318,23 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) [ ]*[a-f0-9]+:[ ]*c4 e1 f9 92[ ]*\(bad\) [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 f8 93[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 93[ ]+kmovw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f8 93[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 93[ ]+kmovw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f8 93[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f8 93[ ]+kmovw[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 f9 93[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 93[ ]+kmovb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 f9 93[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 93[ ]+kmovb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 f9 93[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 f9 93[ ]+kmovb[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) -[ ]*[a-f0-9]+:[ ]*c5 fb 93[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 fb 93[ ]+kmovd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait -[ ]*[a-f0-9]+:[ ]*c5 fb 93[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 fb 93[ ]+kmovd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*6f[ ]*outsl %ds:\(%rsi\),\(%dx\) -[ ]*[a-f0-9]+:[ ]*c5 fb 93[ ]*\(bad\) +[ ]*[a-f0-9]+:[ ]*c5 fb 93[ ]+kmovd[ ]*\(bad\),.* [ ]*[a-f0-9]+:[ ]*3f[ ]*\(bad\) [ ]*[a-f0-9]+:[ ]*c4 e1 f9 93[ ]*\(bad\) [ ]*[a-f0-9]+:[ ]*9b[ ]*fwait --- a/gas/testsuite/gas/i386/x86-64-disassem.s +++ b/gas/testsuite/gas/i386/x86-64-disassem.s @@ -119,30 +119,30 @@ .byte 0xC4, 0xE1, 0xF9, 0x99, 0x9B .byte 0xC4, 0xE1, 0xF9, 0x99, 0x6F .insn VEX.L0.66.0f.W1 0x99, (%rdi), %k7 -.byte 0xC4, 0xE3, 0xF9, 0x30, 0x8F, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x30, 0x6A, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x30, 0x04, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x30, 0x8F, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x30, 0x6A, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x30, 0x04, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x31, 0x8F, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x31, 0x6A, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x31, 0x04, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x31, 0x8F, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x31, 0x6A, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x31, 0x04, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x32, 0x8F, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x32, 0x6A, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x32, 0x04, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x32, 0x8F, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x32, 0x6A, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x32, 0x04, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x33, 0x8F, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x33, 0x6A, 0x01 -.byte 0xC4, 0xE3, 0xF9, 0x33, 0x04, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x33, 0x8F, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x33, 0x6A, 0x01 -.byte 0xC4, 0xE3, 0x79, 0x33, 0x04, 0x01 +.byte 0xC4, 0xE3, 0xF9, 0x30, 0x8F, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x30, 0x6A, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x30, 0x04, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x30, 0x8F, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x30, 0x6A, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x30, 0x04, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x31, 0x8F, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x31, 0x6A, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x31, 0x04, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x31, 0x8F, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x31, 0x6A, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x31, 0x04, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x32, 0x8F, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x32, 0x6A, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x32, 0x04, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x32, 0x8F, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x32, 0x6A, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x32, 0x04, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x33, 0x8F, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x33, 0x6A, 0x07 +.byte 0xC4, 0xE3, 0xF9, 0x33, 0x04, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x33, 0x8F, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x33, 0x6A, 0x07 +.byte 0xC4, 0xE3, 0x79, 0x33, 0x04, 0x07 .byte 0xC5, 0xF8, 0x92, 0x9B .byte 0xC5, 0xF8, 0x92, 0x6F .insn VEX.L0.NP.0f.W0 0x92, (%rdi), %k7 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -145,7 +145,7 @@ struct instr_info uint8_t rex_used; bool need_modrm; - bool need_vex; + unsigned char need_vex; bool has_sib; /* Flags for ins->prefixes which we somehow handled when printing the @@ -526,6 +526,7 @@ fetch_error (const instr_info *ins) #define EXymmq { OP_EX, ymmq_mode } #define EXEvexXGscat { OP_EX, evex_x_gscat_mode } #define EXEvexXNoBcst { OP_EX, evex_x_nobcst_mode } +#define Rdq { OP_R, dq_mode } #define Nq { OP_R, q_mode } #define Ux { OP_R, x_mode } #define Uxmm { OP_R, xmm_mode } @@ -558,6 +559,7 @@ fetch_error (const instr_info *ins) #define MaskG { OP_G, mask_mode } #define MaskE { OP_E, mask_mode } +#define MaskR { OP_R, mask_mode } #define MaskBDE { OP_E, mask_bd_mode } #define MaskVex { OP_VEX, mask_mode } @@ -900,35 +902,14 @@ enum MOD_0F38FB_PREFIX_1, MOD_0F3A0F_PREFIX_1, - MOD_VEX_0F41_L_1, - MOD_VEX_0F42_L_1, - MOD_VEX_0F44_L_0, - MOD_VEX_0F45_L_1, - MOD_VEX_0F46_L_1, - MOD_VEX_0F47_L_1, - MOD_VEX_0F4A_L_1, - MOD_VEX_0F4B_L_1, - MOD_VEX_0F91_L_0, - MOD_VEX_0F92_L_0, - MOD_VEX_0F93_L_0, - MOD_VEX_0F98_L_0, - MOD_VEX_0F99_L_0, MOD_VEX_0FD7, MOD_VEX_0F3849_X86_64_L_0_W_0, MOD_VEX_0F385C_X86_64, MOD_VEX_0F385E_X86_64, MOD_VEX_0F386C_X86_64, - MOD_VEX_0F3A30_L_0, - MOD_VEX_0F3A31_L_0, - MOD_VEX_0F3A32_L_0, - MOD_VEX_0F3A33_L_0, MOD_XOP_09_12, - MOD_EVEX_0F3828_P_1, - MOD_EVEX_0F382A_P_1_W_1, - MOD_EVEX_0F3838_P_1, - MOD_EVEX_0F383A_P_1_W_0, MOD_EVEX_0F387A_W_0, MOD_EVEX_0F387B_W_0, MOD_EVEX_0F387C, @@ -1056,38 +1037,38 @@ enum PREFIX_VEX_0F2A, PREFIX_VEX_0F2C, PREFIX_VEX_0F2D, - PREFIX_VEX_0F41_L_1_M_1_W_0, - PREFIX_VEX_0F41_L_1_M_1_W_1, - PREFIX_VEX_0F42_L_1_M_1_W_0, - PREFIX_VEX_0F42_L_1_M_1_W_1, - PREFIX_VEX_0F44_L_0_M_1_W_0, - PREFIX_VEX_0F44_L_0_M_1_W_1, - PREFIX_VEX_0F45_L_1_M_1_W_0, - PREFIX_VEX_0F45_L_1_M_1_W_1, - PREFIX_VEX_0F46_L_1_M_1_W_0, - PREFIX_VEX_0F46_L_1_M_1_W_1, - PREFIX_VEX_0F47_L_1_M_1_W_0, - PREFIX_VEX_0F47_L_1_M_1_W_1, - PREFIX_VEX_0F4A_L_1_M_1_W_0, - PREFIX_VEX_0F4A_L_1_M_1_W_1, - PREFIX_VEX_0F4B_L_1_M_1_W_0, - PREFIX_VEX_0F4B_L_1_M_1_W_1, + PREFIX_VEX_0F41_L_1_W_0, + PREFIX_VEX_0F41_L_1_W_1, + PREFIX_VEX_0F42_L_1_W_0, + PREFIX_VEX_0F42_L_1_W_1, + PREFIX_VEX_0F44_L_0_W_0, + PREFIX_VEX_0F44_L_0_W_1, + PREFIX_VEX_0F45_L_1_W_0, + PREFIX_VEX_0F45_L_1_W_1, + PREFIX_VEX_0F46_L_1_W_0, + PREFIX_VEX_0F46_L_1_W_1, + PREFIX_VEX_0F47_L_1_W_0, + PREFIX_VEX_0F47_L_1_W_1, + PREFIX_VEX_0F4A_L_1_W_0, + PREFIX_VEX_0F4A_L_1_W_1, + PREFIX_VEX_0F4B_L_1_W_0, + PREFIX_VEX_0F4B_L_1_W_1, PREFIX_VEX_0F6F, PREFIX_VEX_0F70, PREFIX_VEX_0F7E, PREFIX_VEX_0F7F, PREFIX_VEX_0F90_L_0_W_0, PREFIX_VEX_0F90_L_0_W_1, - PREFIX_VEX_0F91_L_0_M_0_W_0, - PREFIX_VEX_0F91_L_0_M_0_W_1, - PREFIX_VEX_0F92_L_0_M_1_W_0, - PREFIX_VEX_0F92_L_0_M_1_W_1, - PREFIX_VEX_0F93_L_0_M_1_W_0, - PREFIX_VEX_0F93_L_0_M_1_W_1, - PREFIX_VEX_0F98_L_0_M_1_W_0, - PREFIX_VEX_0F98_L_0_M_1_W_1, - PREFIX_VEX_0F99_L_0_M_1_W_0, - PREFIX_VEX_0F99_L_0_M_1_W_1, + PREFIX_VEX_0F91_L_0_W_0, + PREFIX_VEX_0F91_L_0_W_1, + PREFIX_VEX_0F92_L_0_W_0, + PREFIX_VEX_0F92_L_0_W_1, + PREFIX_VEX_0F93_L_0_W_0, + PREFIX_VEX_0F93_L_0_W_1, + PREFIX_VEX_0F98_L_0_W_0, + PREFIX_VEX_0F98_L_0_W_1, + PREFIX_VEX_0F99_L_0_W_0, + PREFIX_VEX_0F99_L_0_W_1, PREFIX_VEX_0F3849_X86_64_L_0_W_0_M_0, PREFIX_VEX_0F3849_X86_64_L_0_W_0_M_1, PREFIX_VEX_0F384B_X86_64_L_0_W_0, @@ -1460,20 +1441,20 @@ enum enum { - VEX_W_0F41_L_1_M_1 = 0, - VEX_W_0F42_L_1_M_1, - VEX_W_0F44_L_0_M_1, - VEX_W_0F45_L_1_M_1, - VEX_W_0F46_L_1_M_1, - VEX_W_0F47_L_1_M_1, - VEX_W_0F4A_L_1_M_1, - VEX_W_0F4B_L_1_M_1, + VEX_W_0F41_L_1 = 0, + VEX_W_0F42_L_1, + VEX_W_0F44_L_0, + VEX_W_0F45_L_1, + VEX_W_0F46_L_1, + VEX_W_0F47_L_1, + VEX_W_0F4A_L_1, + VEX_W_0F4B_L_1, VEX_W_0F90_L_0, - VEX_W_0F91_L_0_M_0, - VEX_W_0F92_L_0_M_1, - VEX_W_0F93_L_0_M_1, - VEX_W_0F98_L_0_M_1, - VEX_W_0F99_L_0_M_1, + VEX_W_0F91_L_0, + VEX_W_0F92_L_0, + VEX_W_0F93_L_0, + VEX_W_0F98_L_0, + VEX_W_0F99_L_0, VEX_W_0F380C, VEX_W_0F380D, VEX_W_0F380E, @@ -3638,114 +3619,114 @@ static const struct dis386 prefix_table[ { "%XEvcvtsd2si", { Gdq, EXq, EXxEVexR }, 0 }, }, - /* PREFIX_VEX_0F41_L_1_M_1_W_0 */ + /* PREFIX_VEX_0F41_L_1_W_0 */ { - { "kandw", { MaskG, MaskVex, MaskE }, 0 }, + { "kandw", { MaskG, MaskVex, MaskR }, 0 }, { Bad_Opcode }, - { "kandb", { MaskG, MaskVex, MaskE }, 0 }, + { "kandb", { MaskG, MaskVex, MaskR }, 0 }, }, - /* PREFIX_VEX_0F41_L_1_M_1_W_1 */ + /* PREFIX_VEX_0F41_L_1_W_1 */ { - { "kandq", { MaskG, MaskVex, MaskE }, 0 }, + { "kandq", { MaskG, MaskVex, MaskR }, 0 }, { Bad_Opcode }, - { "kandd", { MaskG, MaskVex, MaskE }, 0 }, + { "kandd", { MaskG, MaskVex, MaskR }, 0 }, }, - /* PREFIX_VEX_0F42_L_1_M_1_W_0 */ + /* PREFIX_VEX_0F42_L_1_W_0 */ { - { "kandnw", { MaskG, MaskVex, MaskE }, 0 }, + { "kandnw", { MaskG, MaskVex, MaskR }, 0 }, { Bad_Opcode }, - { "kandnb", { MaskG, MaskVex, MaskE }, 0 }, + { "kandnb", { MaskG, MaskVex, MaskR }, 0 }, }, - /* PREFIX_VEX_0F42_L_1_M_1_W_1 */ + /* PREFIX_VEX_0F42_L_1_W_1 */ { - { "kandnq", { MaskG, MaskVex, MaskE }, 0 }, + { "kandnq", { MaskG, MaskVex, MaskR }, 0 }, { Bad_Opcode }, - { "kandnd", { MaskG, MaskVex, MaskE }, 0 }, + { "kandnd", { MaskG, MaskVex, MaskR }, 0 }, }, - /* PREFIX_VEX_0F44_L_0_M_1_W_0 */ + /* PREFIX_VEX_0F44_L_0_W_0 */ { - { "knotw", { MaskG, MaskE }, 0 }, + { "knotw", { MaskG, MaskR }, 0 }, { Bad_Opcode }, - { "knotb", { MaskG, MaskE }, 0 }, + { "knotb", { MaskG, MaskR }, 0 }, }, - /* PREFIX_VEX_0F44_L_0_M_1_W_1 */ + /* PREFIX_VEX_0F44_L_0_W_1 */ { - { "knotq", { MaskG, MaskE }, 0 }, + { "knotq", { MaskG, MaskR }, 0 }, { Bad_Opcode }, - { "knotd", { MaskG, MaskE }, 0 }, + { "knotd", { MaskG, MaskR }, 0 }, }, - /* PREFIX_VEX_0F45_L_1_M_1_W_0 */ + /* PREFIX_VEX_0F45_L_1_W_0 */ { - { "korw", { MaskG, MaskVex, MaskE }, 0 }, + { "korw", { MaskG, MaskVex, MaskR }, 0 }, { Bad_Opcode }, - { "korb", { MaskG, MaskVex, MaskE }, 0 }, + { "korb", { MaskG, MaskVex, MaskR }, 0 }, }, - /* PREFIX_VEX_0F45_L_1_M_1_W_1 */ + /* PREFIX_VEX_0F45_L_1_W_1 */ { - { "korq", { MaskG, MaskVex, MaskE }, 0 }, + { "korq", { MaskG, MaskVex, MaskR }, 0 }, { Bad_Opcode }, - { "kord", { MaskG, MaskVex, MaskE }, 0 }, + { "kord", { MaskG, MaskVex, MaskR }, 0 }, }, - /* PREFIX_VEX_0F46_L_1_M_1_W_0 */ + /* PREFIX_VEX_0F46_L_1_W_0 */ { - { "kxnorw", { MaskG, MaskVex, MaskE }, 0 }, + { "kxnorw", { MaskG, MaskVex, MaskR }, 0 }, { Bad_Opcode }, - { "kxnorb", { MaskG, MaskVex, MaskE }, 0 }, + { "kxnorb", { MaskG, MaskVex, MaskR }, 0 }, }, - /* PREFIX_VEX_0F46_L_1_M_1_W_1 */ + /* PREFIX_VEX_0F46_L_1_W_1 */ { - { "kxnorq", { MaskG, MaskVex, MaskE }, 0 }, + { "kxnorq", { MaskG, MaskVex, MaskR }, 0 }, { Bad_Opcode }, - { "kxnord", { MaskG, MaskVex, MaskE }, 0 }, + { "kxnord", { MaskG, MaskVex, MaskR }, 0 }, }, - /* PREFIX_VEX_0F47_L_1_M_1_W_0 */ + /* PREFIX_VEX_0F47_L_1_W_0 */ { - { "kxorw", { MaskG, MaskVex, MaskE }, 0 }, + { "kxorw", { MaskG, MaskVex, MaskR }, 0 }, { Bad_Opcode }, - { "kxorb", { MaskG, MaskVex, MaskE }, 0 }, + { "kxorb", { MaskG, MaskVex, MaskR }, 0 }, }, - /* PREFIX_VEX_0F47_L_1_M_1_W_1 */ + /* PREFIX_VEX_0F47_L_1_W_1 */ { - { "kxorq", { MaskG, MaskVex, MaskE }, 0 }, + { "kxorq", { MaskG, MaskVex, MaskR }, 0 }, { Bad_Opcode }, - { "kxord", { MaskG, MaskVex, MaskE }, 0 }, + { "kxord", { MaskG, MaskVex, MaskR }, 0 }, }, - /* PREFIX_VEX_0F4A_L_1_M_1_W_0 */ + /* PREFIX_VEX_0F4A_L_1_W_0 */ { - { "kaddw", { MaskG, MaskVex, MaskE }, 0 }, + { "kaddw", { MaskG, MaskVex, MaskR }, 0 }, { Bad_Opcode }, - { "kaddb", { MaskG, MaskVex, MaskE }, 0 }, + { "kaddb", { MaskG, MaskVex, MaskR }, 0 }, }, - /* PREFIX_VEX_0F4A_L_1_M_1_W_1 */ + /* PREFIX_VEX_0F4A_L_1_W_1 */ { - { "kaddq", { MaskG, MaskVex, MaskE }, 0 }, + { "kaddq", { MaskG, MaskVex, MaskR }, 0 }, { Bad_Opcode }, - { "kaddd", { MaskG, MaskVex, MaskE }, 0 }, + { "kaddd", { MaskG, MaskVex, MaskR }, 0 }, }, - /* PREFIX_VEX_0F4B_L_1_M_1_W_0 */ + /* PREFIX_VEX_0F4B_L_1_W_0 */ { - { "kunpckwd", { MaskG, MaskVex, MaskE }, 0 }, + { "kunpckwd", { MaskG, MaskVex, MaskR }, 0 }, { Bad_Opcode }, - { "kunpckbw", { MaskG, MaskVex, MaskE }, 0 }, + { "kunpckbw", { MaskG, MaskVex, MaskR }, 0 }, }, - /* PREFIX_VEX_0F4B_L_1_M_1_W_1 */ + /* PREFIX_VEX_0F4B_L_1_W_1 */ { - { "kunpckdq", { MaskG, MaskVex, MaskE }, 0 }, + { "kunpckdq", { MaskG, MaskVex, MaskR }, 0 }, }, /* PREFIX_VEX_0F6F */ @@ -3791,78 +3772,78 @@ static const struct dis386 prefix_table[ { "kmovd", { MaskG, MaskBDE }, 0 }, }, - /* PREFIX_VEX_0F91_L_0_M_0_W_0 */ + /* PREFIX_VEX_0F91_L_0_W_0 */ { - { "kmovw", { Ew, MaskG }, 0 }, + { "kmovw", { Mw, MaskG }, 0 }, { Bad_Opcode }, - { "kmovb", { Eb, MaskG }, 0 }, + { "kmovb", { Mb, MaskG }, 0 }, }, - /* PREFIX_VEX_0F91_L_0_M_0_W_1 */ + /* PREFIX_VEX_0F91_L_0_W_1 */ { - { "kmovq", { Eq, MaskG }, 0 }, + { "kmovq", { Mq, MaskG }, 0 }, { Bad_Opcode }, - { "kmovd", { Ed, MaskG }, 0 }, + { "kmovd", { Md, MaskG }, 0 }, }, - /* PREFIX_VEX_0F92_L_0_M_1_W_0 */ + /* PREFIX_VEX_0F92_L_0_W_0 */ { - { "kmovw", { MaskG, Edq }, 0 }, + { "kmovw", { MaskG, Rdq }, 0 }, { Bad_Opcode }, - { "kmovb", { MaskG, Edq }, 0 }, - { "kmovd", { MaskG, Edq }, 0 }, + { "kmovb", { MaskG, Rdq }, 0 }, + { "kmovd", { MaskG, Rdq }, 0 }, }, - /* PREFIX_VEX_0F92_L_0_M_1_W_1 */ + /* PREFIX_VEX_0F92_L_0_W_1 */ { { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { "kmovK", { MaskG, Edq }, 0 }, + { "kmovK", { MaskG, Rdq }, 0 }, }, - /* PREFIX_VEX_0F93_L_0_M_1_W_0 */ + /* PREFIX_VEX_0F93_L_0_W_0 */ { - { "kmovw", { Gdq, MaskE }, 0 }, + { "kmovw", { Gdq, MaskR }, 0 }, { Bad_Opcode }, - { "kmovb", { Gdq, MaskE }, 0 }, - { "kmovd", { Gdq, MaskE }, 0 }, + { "kmovb", { Gdq, MaskR }, 0 }, + { "kmovd", { Gdq, MaskR }, 0 }, }, - /* PREFIX_VEX_0F93_L_0_M_1_W_1 */ + /* PREFIX_VEX_0F93_L_0_W_1 */ { { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { "kmovK", { Gdq, MaskE }, 0 }, + { "kmovK", { Gdq, MaskR }, 0 }, }, - /* PREFIX_VEX_0F98_L_0_M_1_W_0 */ + /* PREFIX_VEX_0F98_L_0_W_0 */ { - { "kortestw", { MaskG, MaskE }, 0 }, + { "kortestw", { MaskG, MaskR }, 0 }, { Bad_Opcode }, - { "kortestb", { MaskG, MaskE }, 0 }, + { "kortestb", { MaskG, MaskR }, 0 }, }, - /* PREFIX_VEX_0F98_L_0_M_1_W_1 */ + /* PREFIX_VEX_0F98_L_0_W_1 */ { - { "kortestq", { MaskG, MaskE }, 0 }, + { "kortestq", { MaskG, MaskR }, 0 }, { Bad_Opcode }, - { "kortestd", { MaskG, MaskE }, 0 }, + { "kortestd", { MaskG, MaskR }, 0 }, }, - /* PREFIX_VEX_0F99_L_0_M_1_W_0 */ + /* PREFIX_VEX_0F99_L_0_W_0 */ { - { "ktestw", { MaskG, MaskE }, 0 }, + { "ktestw", { MaskG, MaskR }, 0 }, { Bad_Opcode }, - { "ktestb", { MaskG, MaskE }, 0 }, + { "ktestb", { MaskG, MaskR }, 0 }, }, - /* PREFIX_VEX_0F99_L_0_M_1_W_1 */ + /* PREFIX_VEX_0F99_L_0_W_1 */ { - { "ktestq", { MaskG, MaskE }, 0 }, + { "ktestq", { MaskG, MaskR }, 0 }, { Bad_Opcode }, - { "ktestd", { MaskG, MaskE }, 0 }, + { "ktestd", { MaskG, MaskR }, 0 }, }, /* PREFIX_VEX_0F3849_X86_64_L_0_W_0_M_0 */ @@ -6788,48 +6769,48 @@ static const struct dis386 vex_len_table /* VEX_LEN_0F41 */ { { Bad_Opcode }, - { MOD_TABLE (MOD_VEX_0F41_L_1) }, + { VEX_W_TABLE (VEX_W_0F41_L_1) }, }, /* VEX_LEN_0F42 */ { { Bad_Opcode }, - { MOD_TABLE (MOD_VEX_0F42_L_1) }, + { VEX_W_TABLE (VEX_W_0F42_L_1) }, }, /* VEX_LEN_0F44 */ { - { MOD_TABLE (MOD_VEX_0F44_L_0) }, + { VEX_W_TABLE (VEX_W_0F44_L_0) }, }, /* VEX_LEN_0F45 */ { { Bad_Opcode }, - { MOD_TABLE (MOD_VEX_0F45_L_1) }, + { VEX_W_TABLE (VEX_W_0F45_L_1) }, }, /* VEX_LEN_0F46 */ { { Bad_Opcode }, - { MOD_TABLE (MOD_VEX_0F46_L_1) }, + { VEX_W_TABLE (VEX_W_0F46_L_1) }, }, /* VEX_LEN_0F47 */ { { Bad_Opcode }, - { MOD_TABLE (MOD_VEX_0F47_L_1) }, + { VEX_W_TABLE (VEX_W_0F47_L_1) }, }, /* VEX_LEN_0F4A */ { { Bad_Opcode }, - { MOD_TABLE (MOD_VEX_0F4A_L_1) }, + { VEX_W_TABLE (VEX_W_0F4A_L_1) }, }, /* VEX_LEN_0F4B */ { { Bad_Opcode }, - { MOD_TABLE (MOD_VEX_0F4B_L_1) }, + { VEX_W_TABLE (VEX_W_0F4B_L_1) }, }, /* VEX_LEN_0F6E */ @@ -6860,27 +6841,27 @@ static const struct dis386 vex_len_table /* VEX_LEN_0F91 */ { - { MOD_TABLE (MOD_VEX_0F91_L_0) }, + { VEX_W_TABLE (VEX_W_0F91_L_0) }, }, /* VEX_LEN_0F92 */ { - { MOD_TABLE (MOD_VEX_0F92_L_0) }, + { VEX_W_TABLE (VEX_W_0F92_L_0) }, }, /* VEX_LEN_0F93 */ { - { MOD_TABLE (MOD_VEX_0F93_L_0) }, + { VEX_W_TABLE (VEX_W_0F93_L_0) }, }, /* VEX_LEN_0F98 */ { - { MOD_TABLE (MOD_VEX_0F98_L_0) }, + { VEX_W_TABLE (VEX_W_0F98_L_0) }, }, /* VEX_LEN_0F99 */ { - { MOD_TABLE (MOD_VEX_0F99_L_0) }, + { VEX_W_TABLE (VEX_W_0F99_L_0) }, }, /* VEX_LEN_0FAE_R_2 */ @@ -7060,22 +7041,22 @@ static const struct dis386 vex_len_table /* VEX_LEN_0F3A30 */ { - { MOD_TABLE (MOD_VEX_0F3A30_L_0) }, + { "kshiftr%BW", { MaskG, MaskR, Ib }, PREFIX_DATA }, }, /* VEX_LEN_0F3A31 */ { - { MOD_TABLE (MOD_VEX_0F3A31_L_0) }, + { "kshiftr%DQ", { MaskG, MaskR, Ib }, PREFIX_DATA }, }, /* VEX_LEN_0F3A32 */ { - { MOD_TABLE (MOD_VEX_0F3A32_L_0) }, + { "kshiftl%BW", { MaskG, MaskR, Ib }, PREFIX_DATA }, }, /* VEX_LEN_0F3A33 */ { - { MOD_TABLE (MOD_VEX_0F3A33_L_0) }, + { "kshiftl%DQ", { MaskG, MaskR, Ib }, PREFIX_DATA }, }, /* VEX_LEN_0F3A38 */ @@ -7427,43 +7408,43 @@ static const struct dis386 vex_len_table static const struct dis386 vex_w_table[][2] = { { /* VEX_W_0F41_L_1_M_1 */ - { PREFIX_TABLE (PREFIX_VEX_0F41_L_1_M_1_W_0) }, - { PREFIX_TABLE (PREFIX_VEX_0F41_L_1_M_1_W_1) }, + { PREFIX_TABLE (PREFIX_VEX_0F41_L_1_W_0) }, + { PREFIX_TABLE (PREFIX_VEX_0F41_L_1_W_1) }, }, { /* VEX_W_0F42_L_1_M_1 */ - { PREFIX_TABLE (PREFIX_VEX_0F42_L_1_M_1_W_0) }, - { PREFIX_TABLE (PREFIX_VEX_0F42_L_1_M_1_W_1) }, + { PREFIX_TABLE (PREFIX_VEX_0F42_L_1_W_0) }, + { PREFIX_TABLE (PREFIX_VEX_0F42_L_1_W_1) }, }, { /* VEX_W_0F44_L_0_M_1 */ - { PREFIX_TABLE (PREFIX_VEX_0F44_L_0_M_1_W_0) }, - { PREFIX_TABLE (PREFIX_VEX_0F44_L_0_M_1_W_1) }, + { PREFIX_TABLE (PREFIX_VEX_0F44_L_0_W_0) }, + { PREFIX_TABLE (PREFIX_VEX_0F44_L_0_W_1) }, }, { /* VEX_W_0F45_L_1_M_1 */ - { PREFIX_TABLE (PREFIX_VEX_0F45_L_1_M_1_W_0) }, - { PREFIX_TABLE (PREFIX_VEX_0F45_L_1_M_1_W_1) }, + { PREFIX_TABLE (PREFIX_VEX_0F45_L_1_W_0) }, + { PREFIX_TABLE (PREFIX_VEX_0F45_L_1_W_1) }, }, { /* VEX_W_0F46_L_1_M_1 */ - { PREFIX_TABLE (PREFIX_VEX_0F46_L_1_M_1_W_0) }, - { PREFIX_TABLE (PREFIX_VEX_0F46_L_1_M_1_W_1) }, + { PREFIX_TABLE (PREFIX_VEX_0F46_L_1_W_0) }, + { PREFIX_TABLE (PREFIX_VEX_0F46_L_1_W_1) }, }, { /* VEX_W_0F47_L_1_M_1 */ - { PREFIX_TABLE (PREFIX_VEX_0F47_L_1_M_1_W_0) }, - { PREFIX_TABLE (PREFIX_VEX_0F47_L_1_M_1_W_1) }, + { PREFIX_TABLE (PREFIX_VEX_0F47_L_1_W_0) }, + { PREFIX_TABLE (PREFIX_VEX_0F47_L_1_W_1) }, }, { /* VEX_W_0F4A_L_1_M_1 */ - { PREFIX_TABLE (PREFIX_VEX_0F4A_L_1_M_1_W_0) }, - { PREFIX_TABLE (PREFIX_VEX_0F4A_L_1_M_1_W_1) }, + { PREFIX_TABLE (PREFIX_VEX_0F4A_L_1_W_0) }, + { PREFIX_TABLE (PREFIX_VEX_0F4A_L_1_W_1) }, }, { /* VEX_W_0F4B_L_1_M_1 */ - { PREFIX_TABLE (PREFIX_VEX_0F4B_L_1_M_1_W_0) }, - { PREFIX_TABLE (PREFIX_VEX_0F4B_L_1_M_1_W_1) }, + { PREFIX_TABLE (PREFIX_VEX_0F4B_L_1_W_0) }, + { PREFIX_TABLE (PREFIX_VEX_0F4B_L_1_W_1) }, }, { /* VEX_W_0F90_L_0 */ @@ -7472,28 +7453,28 @@ static const struct dis386 vex_w_table[] }, { /* VEX_W_0F91_L_0_M_0 */ - { PREFIX_TABLE (PREFIX_VEX_0F91_L_0_M_0_W_0) }, - { PREFIX_TABLE (PREFIX_VEX_0F91_L_0_M_0_W_1) }, + { PREFIX_TABLE (PREFIX_VEX_0F91_L_0_W_0) }, + { PREFIX_TABLE (PREFIX_VEX_0F91_L_0_W_1) }, }, { /* VEX_W_0F92_L_0_M_1 */ - { PREFIX_TABLE (PREFIX_VEX_0F92_L_0_M_1_W_0) }, - { PREFIX_TABLE (PREFIX_VEX_0F92_L_0_M_1_W_1) }, + { PREFIX_TABLE (PREFIX_VEX_0F92_L_0_W_0) }, + { PREFIX_TABLE (PREFIX_VEX_0F92_L_0_W_1) }, }, { /* VEX_W_0F93_L_0_M_1 */ - { PREFIX_TABLE (PREFIX_VEX_0F93_L_0_M_1_W_0) }, - { PREFIX_TABLE (PREFIX_VEX_0F93_L_0_M_1_W_1) }, + { PREFIX_TABLE (PREFIX_VEX_0F93_L_0_W_0) }, + { PREFIX_TABLE (PREFIX_VEX_0F93_L_0_W_1) }, }, { /* VEX_W_0F98_L_0_M_1 */ - { PREFIX_TABLE (PREFIX_VEX_0F98_L_0_M_1_W_0) }, - { PREFIX_TABLE (PREFIX_VEX_0F98_L_0_M_1_W_1) }, + { PREFIX_TABLE (PREFIX_VEX_0F98_L_0_W_0) }, + { PREFIX_TABLE (PREFIX_VEX_0F98_L_0_W_1) }, }, { /* VEX_W_0F99_L_0_M_1 */ - { PREFIX_TABLE (PREFIX_VEX_0F99_L_0_M_1_W_0) }, - { PREFIX_TABLE (PREFIX_VEX_0F99_L_0_M_1_W_1) }, + { PREFIX_TABLE (PREFIX_VEX_0F99_L_0_W_0) }, + { PREFIX_TABLE (PREFIX_VEX_0F99_L_0_W_1) }, }, { /* VEX_W_0F380C */ @@ -8097,70 +8078,6 @@ static const struct dis386 mod_table[][2 { REG_TABLE (REG_0F3A0F_PREFIX_1_MOD_3) }, }, { - /* MOD_VEX_0F41_L_1 */ - { Bad_Opcode }, - { VEX_W_TABLE (VEX_W_0F41_L_1_M_1) }, - }, - { - /* MOD_VEX_0F42_L_1 */ - { Bad_Opcode }, - { VEX_W_TABLE (VEX_W_0F42_L_1_M_1) }, - }, - { - /* MOD_VEX_0F44_L_0 */ - { Bad_Opcode }, - { VEX_W_TABLE (VEX_W_0F44_L_0_M_1) }, - }, - { - /* MOD_VEX_0F45_L_1 */ - { Bad_Opcode }, - { VEX_W_TABLE (VEX_W_0F45_L_1_M_1) }, - }, - { - /* MOD_VEX_0F46_L_1 */ - { Bad_Opcode }, - { VEX_W_TABLE (VEX_W_0F46_L_1_M_1) }, - }, - { - /* MOD_VEX_0F47_L_1 */ - { Bad_Opcode }, - { VEX_W_TABLE (VEX_W_0F47_L_1_M_1) }, - }, - { - /* MOD_VEX_0F4A_L_1 */ - { Bad_Opcode }, - { VEX_W_TABLE (VEX_W_0F4A_L_1_M_1) }, - }, - { - /* MOD_VEX_0F4B_L_1 */ - { Bad_Opcode }, - { VEX_W_TABLE (VEX_W_0F4B_L_1_M_1) }, - }, - { - /* MOD_VEX_0F91_L_0 */ - { VEX_W_TABLE (VEX_W_0F91_L_0_M_0) }, - }, - { - /* MOD_VEX_0F92_L_0 */ - { Bad_Opcode }, - { VEX_W_TABLE (VEX_W_0F92_L_0_M_1) }, - }, - { - /* MOD_VEX_0F93_L_0 */ - { Bad_Opcode }, - { VEX_W_TABLE (VEX_W_0F93_L_0_M_1) }, - }, - { - /* MOD_VEX_0F98_L_0 */ - { Bad_Opcode }, - { VEX_W_TABLE (VEX_W_0F98_L_0_M_1) }, - }, - { - /* MOD_VEX_0F99_L_0 */ - { Bad_Opcode }, - { VEX_W_TABLE (VEX_W_0F99_L_0_M_1) }, - }, - { /* MOD_VEX_0FD7 */ { Bad_Opcode }, { "vpmovmskb", { Gdq, Ux }, PREFIX_DATA }, @@ -8186,26 +8103,6 @@ static const struct dis386 mod_table[][2 { VEX_LEN_TABLE (VEX_LEN_0F386C_X86_64_M_1) }, }, { - /* MOD_VEX_0F3A30_L_0 */ - { Bad_Opcode }, - { "kshiftr%BW", { MaskG, MaskE, Ib }, PREFIX_DATA }, - }, - { - /* MOD_VEX_0F3A31_L_0 */ - { Bad_Opcode }, - { "kshiftr%DQ", { MaskG, MaskE, Ib }, PREFIX_DATA }, - }, - { - /* MOD_VEX_0F3A32_L_0 */ - { Bad_Opcode }, - { "kshiftl%BW", { MaskG, MaskE, Ib }, PREFIX_DATA }, - }, - { - /* MOD_VEX_0F3A33_L_0 */ - { Bad_Opcode }, - { "kshiftl%DQ", { MaskG, MaskE, Ib }, PREFIX_DATA }, - }, - { /* MOD_XOP_09_12 */ { Bad_Opcode }, { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_12_M_1) }, @@ -8786,7 +8683,7 @@ get_valid_dis386 (const struct dis386 *d ins->vex.prefix = REPNE_PREFIX_OPCODE; break; } - ins->need_vex = true; + ins->need_vex = 3; ins->codep++; vindex = *ins->codep++; dp = &xop_table[vex_table_index][vindex]; @@ -8851,7 +8748,7 @@ get_valid_dis386 (const struct dis386 *d ins->vex.prefix = REPNE_PREFIX_OPCODE; break; } - ins->need_vex = true; + ins->need_vex = 3; ins->codep++; vindex = *ins->codep++; dp = &vex_table[vex_table_index][vindex]; @@ -8886,7 +8783,7 @@ get_valid_dis386 (const struct dis386 *d ins->vex.prefix = REPNE_PREFIX_OPCODE; break; } - ins->need_vex = true; + ins->need_vex = 2; ins->codep++; vindex = *ins->codep++; dp = &vex_table[dp->op[1].bytemode][vindex]; @@ -8978,7 +8875,7 @@ get_valid_dis386 (const struct dis386 *d ins->vex.r = true; } - ins->need_vex = true; + ins->need_vex = 4; ins->codep++; vindex = *ins->codep++; dp = &evex_table[vex_table_index][vindex]; @@ -11346,7 +11243,7 @@ BadOp (instr_info *ins) /* Throw away prefixes and 1st. opcode byte. */ struct dis_private *priv = ins->info->private_data; - ins->codep = priv->the_buffer + ins->nr_prefixes + 1; + ins->codep = priv->the_buffer + ins->nr_prefixes + ins->need_vex + 1; ins->obufp = stpcpy (ins->obufp, "(bad)"); return true; } @@ -12669,6 +12566,9 @@ OP_R (instr_info *ins, int bytemode, int switch (bytemode) { + case dq_mode: + case mask_mode: + return OP_E (ins, bytemode, sizeflag); case q_mode: return OP_EM (ins, x_mode, sizeflag); case xmm_mode: --- a/opcodes/i386-dis-evex-mod.h +++ b/opcodes/i386-dis-evex-mod.h @@ -1,23 +1,3 @@ - /* MOD_EVEX_0F3828_P_1 */ - { - { Bad_Opcode }, - { "vpmovm2Y%BW", { XM, MaskE }, 0 }, - }, - /* MOD_EVEX_0F382A_P_1_W_1 */ - { - { Bad_Opcode }, - { "vpbroadcastmb2qY", { XM, MaskE }, 0 }, - }, - /* MOD_EVEX_0F3838_P_1 */ - { - { Bad_Opcode }, - { "vpmovm2Y%DQ", { XM, MaskE }, 0 }, - }, - /* MOD_EVEX_0F383A_P_1_W_0 */ - { - { Bad_Opcode }, - { "vpbroadcastmw2dY", { XM, MaskE }, 0 }, - }, /* MOD_EVEX_0F387A_W_0 */ { { Bad_Opcode }, --- a/opcodes/i386-dis-evex-prefix.h +++ b/opcodes/i386-dis-evex-prefix.h @@ -160,13 +160,13 @@ /* PREFIX_EVEX_0F3828 */ { { Bad_Opcode }, - { MOD_TABLE (MOD_EVEX_0F3828_P_1) }, + { "vpmovm2Y%BW", { XM, MaskR }, 0 }, { VEX_W_TABLE (EVEX_W_0F3828_P_2) }, }, /* PREFIX_EVEX_0F3829 */ { { Bad_Opcode }, - { "vpmov%BW2mY", { MaskG, EXx }, 0 }, + { "vpmov%BW2mY", { MaskG, Ux }, 0 }, { VEX_W_TABLE (EVEX_W_0F3829_P_2) }, }, /* PREFIX_EVEX_0F382A */ @@ -214,13 +214,13 @@ /* PREFIX_EVEX_0F3838 */ { { Bad_Opcode }, - { MOD_TABLE (MOD_EVEX_0F3838_P_1) }, + { "vpmovm2Y%DQ", { XM, MaskR }, 0 }, { "%XEvpminsb", { XM, Vex, EXx }, 0 }, }, /* PREFIX_EVEX_0F3839 */ { { Bad_Opcode }, - { "vpmov%DQ2mY", { MaskG, EXx }, 0 }, + { "vpmov%DQ2mY", { MaskG, Ux }, 0 }, { "%XEvpmins%DQ", { XM, Vex, EXx }, 0 }, }, /* PREFIX_EVEX_0F383A */ --- a/opcodes/i386-dis-evex-w.h +++ b/opcodes/i386-dis-evex-w.h @@ -289,7 +289,7 @@ /* EVEX_W_0F382A_P_1 */ { { Bad_Opcode }, - { MOD_TABLE (MOD_EVEX_0F382A_P_1_W_1) }, + { "vpbroadcastmb2qY", { XM, MaskR }, 0 }, }, /* EVEX_W_0F382A_P_2 */ { @@ -334,7 +334,7 @@ }, /* EVEX_W_0F383A_P_1 */ { - { MOD_TABLE (MOD_EVEX_0F383A_P_1_W_0) }, + { "vpbroadcastmw2dY", { XM, MaskR }, 0 }, }, /* EVEX_W_0F3859 */ { From patchwork Tue Jul 4 15:22:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 115833 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f45:0:b0:3ea:f831:8777 with SMTP id v5csp1296974vqx; Tue, 4 Jul 2023 08:23:19 -0700 (PDT) X-Google-Smtp-Source: APBJJlHF0x7+d04UA4hS49pULrJJykXdg+WUZqb2MiD9qqz/F46PaROyHyq309AEY+siawI6XG9H X-Received: by 2002:ac2:5e3a:0:b0:4fb:bc46:7c09 with SMTP id o26-20020ac25e3a000000b004fbbc467c09mr1720758lfg.6.1688484198820; Tue, 04 Jul 2023 08:23:18 -0700 (PDT) Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id a3-20020aa7d743000000b0051e0f836ddesi2702575eds.57.2023.07.04.08.23.18 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jul 2023 08:23:18 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=nGoCqFDE; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D4F2B3856DFE for ; Tue, 4 Jul 2023 15:23:04 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D4F2B3856DFE DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688484184; bh=3Op91fSgt0hrOLjGIatNbavk2eQ6YbrHaYjxn5hqJwY=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=nGoCqFDErf4m8sdccGU3PYlOkIUPJNZW1DmjFtv1io41pbCRnSp40LSvzspepZGmG qYiRpss/UpEpPr8NGXj5QmUlGe8t6G962knYsCsRz6rKuHVa5DD8YLLz48ZgrjE58D oiwW/SIhVV7nOcZMoWbt2283NZ6JPyIjNtqoFfUU= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2049.outbound.protection.outlook.com [40.107.105.49]) by sourceware.org (Postfix) with ESMTPS id E2F383857033 for ; Tue, 4 Jul 2023 15:22:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E2F383857033 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F92WLSS+/gFuWxd4jWkiWV10AL+W2I9zU2/p5VYm8MTnltIGzi/zvOKQ+EOc7sVgVVxJP0iiNbFrbzCJKBQQSRSlqZT3IUkv0p2oi585hCSUCJcvU/Lw94+k6jUkx4qH5WKTAcopeOu6qq9fnNuB5MZq3ZCQqXLDfrWxDd27RGpslbHx05lgbw5CAz7TR9p3MbYg6emaMfcryJx01E8YkqrwPyvWF3qQsDKbDgS/Yp7a0SXGKEGeT+uEgimvDP+8C/XlYOIslo2UdVZ3NeuZpxGPPxyIkk/80aaRp+cc4tOVX5oaVKhZjRRt6VPvXpm5uQ5NS+4XcvReatjB7s3n/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3Op91fSgt0hrOLjGIatNbavk2eQ6YbrHaYjxn5hqJwY=; b=FOSDhru6Ya956eT0Pl0q2GBm7UQ+PHuFqMb+4clFv90ZiKGAWwpmlkl3FjTClzyQK6vEaGLhM2pXAs1nBL4fk0HP8u3RDMcRv6fPHlhSnejEv7QkIk1T3AxB81cZI98hFlE5RYVnqO/44sBdfLVfT9V50c44Mg+K8GvJ7Cxl2Rd1sRheBBWhpkps6J+K7Yt5wdrHA15W8OBeGfNIy+1yfylb/eNYWer0ii86xG8GiAgZMFvY1l1lXmnMbauDmbosB38QMSfBVvqbEpk7OezPlqGJhjTWcCSPpeKTiplGHZJTaaRRknUiDGQYoQyyODgJgw+7PPPnQ0924/CYvfS4UQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by AS8PR04MB8692.eurprd04.prod.outlook.com (2603:10a6:20b:42b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Tue, 4 Jul 2023 15:22:52 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880%4]) with mapi id 15.20.6544.024; Tue, 4 Jul 2023 15:22:52 +0000 Message-ID: <54b1c54f-ddad-4d5a-f5d0-e585cd3aaa3e@suse.com> Date: Tue, 4 Jul 2023 17:22:59 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: [PATCH 08/10] x86: misc further register-only insns don't need to go through mod_table[] Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: In-Reply-To: X-ClientProxiedBy: FR0P281CA0096.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a9::9) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AS8PR04MB8692:EE_ X-MS-Office365-Filtering-Correlation-Id: 85f52cbd-5b8a-4004-8b23-08db7ca28875 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DxIM/nP6hGPUzQeu8grPb1dxufmQwvx1Uxr8BRXzNQ44cWCZMcO1O7MtUayqnbSTV/cLDYf0VSmIEO5keq/Bl+McdyAk1M3NndgiVa5u6g0s4+wcgrrSOF98eGpufG/1FkYMaQrPTTDn9JJHHpJye9mPBIUDY+zG32RB4I5ybw02bDNSaGDZfgRUfBeIq6sU9irQT91As8BWLDQwAs1X/xtPHqfmxXm1wJj8V0HM7hhSm2eUKdlWDLm1qxYQ7D9q9o30B9epet+ougxr+mHqICyyLL5Sd7lf8SsDBLxqZhB2K0t12Du1mFie10WE0t+QkXuZXAg0bEY/wtfWYfTBUhNRjFSsCkU01jZPNLjN6Ta1RWYUxd1vunA4TFfn14nhWQSuTfdNTjjHhewZ5R8l5x7CP/TC0ey8XDwgoH/ZN2SkP7TtP9sTwxXMtSfvh/xgSrB1GRxvmZGijlJZBs31cHCGsCm9e6boOw7XAVRVwbOsUWiKtXm8OAXWTkLogQd+uKSA8eNX8+cT3gGBjoeU+zvL+0u4yL2jTfLoW+axCKWbVuDcgQ6OiUYoStTlPpb5J8P/yMLVwnSTv34Hr7WGNqtozFdJ7YQJb6DjzlEdWgup9my8GytbrQw9oYS6eMaOVdb1rNVdFaIEcRTWrSd0ww== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU2PR04MB8790.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(136003)(39850400004)(376002)(346002)(366004)(396003)(451199021)(478600001)(5660300002)(8676002)(36756003)(8936002)(30864003)(31696002)(86362001)(2906002)(38100700002)(66476007)(4326008)(66946007)(66556008)(6916009)(316002)(41300700001)(26005)(31686004)(186003)(6506007)(2616005)(6486002)(6512007)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?flh0s9OtaIV22xhaSmWYkTIqlPgy?= =?utf-8?q?iIzWwCJjl9KpFJVYMwRDa5b2b5fSJqyuYAeRBlWSE2SlkV1nWG6UhCcgZsL8uT18r?= =?utf-8?q?099scbSkBFnJPulImh4XNUAVx1a8fGURfYGtDXqp5GjXG9xbAYC4gN1k4QknZTyRz?= =?utf-8?q?nL3IY3EnnOAy6GpzgK6mt5Iv+EwsFUxRpoAbz+i2cABaoTVq6ooMVpk11LgCeDpXv?= =?utf-8?q?oOhtH+A0bJ3sHrfkfpwrjFg7c+Vpe2zAwh8zZ1whyIM5VlR6w3p5YAJl4u0KQwOU0?= =?utf-8?q?Ss6fAEzTqkOvwlP9vz9j5MPtH7b33T2GyPE3ea4iRV1v4zE0HIyRz/UVRn3qB49ce?= =?utf-8?q?wnRvOoBojTLLy115lDdbMRjE7+vettm8kCdk5B9hrPXU6ymBP2zhp8SIy7Fykfidj?= =?utf-8?q?24zlR+FGXn4OXX0T9q5tFgv2HMhbbxFAryTmInz1JTCPbn/ucCntAT4o+SjXM1GuK?= =?utf-8?q?Rt/UVZmTnqUxoE+tuAVRTAdGoNt/RjpRKHKIHZtL8vfZJ3ykQSRoiIKkE4q05xY6t?= =?utf-8?q?kNBTZN5qzb0L+dHRPQu0Jr+ZA77dd3+W1+sqtco2BcNsM+esjFrS3JOoMejcQyzg+?= =?utf-8?q?qKPljyits8K/zRbI5VA1eHq6TtARPFFWrhyiKgujUS00Gt58MPBAUwMwyGWL9Y/M0?= =?utf-8?q?+uT+sq4qxGgYelS/iDXi5nsyAKxdGTcoWdyJOkuI2FjY8DWF7DWQkSoQUlcdXdqnC?= =?utf-8?q?XU7/CRfH1cw2aZmwQUFqnj1u6vTEeNzixQ8YDytD34EDzoZnwYc5FdiBD/+dwJdjd?= =?utf-8?q?WaHD/jBhFx9Us+/lq5sk+s3bX/GnHzvCI0DXX1fha9zHoTyNeH2BVZ0VR+xAtUllH?= =?utf-8?q?1mEcMmCJYBnZa5wxCguR0TJZ8y0Hape/yD0rdQHSreLCuZEINRGoOxflaoV513lTe?= =?utf-8?q?ZhPegEyJESJ79skjzNjrCLjL4A5vnWPSSOiwr3GniHF1AhxzRQAmvF1UYvWUhFRHc?= =?utf-8?q?I61D/LD5lRH0dXIGpmFhk6dbpBAzOBGadFSTfCwnYovlbkJt4ItI+8d3vGDoEZqk7?= =?utf-8?q?IKJtR8nE8mWP1hPUIamwjaGV41RipBvd96O5LxEaC2I/3vZ3rg96vLPIy3QH/yP24?= =?utf-8?q?RcmOD7mJcq0hm4tRWvDrMJOPfJ5nT+wr7qzolkPrRUy/FPGJ0cpd6OlzQrCYs0BqF?= =?utf-8?q?c7p2JgcVYQBeKP2TLT6mVeOyk0LYEPIZYIH2O32Z1qg5FmStM7BBK0XtX+U3nI5vf?= =?utf-8?q?+OvwEvUsTIp0Ad3In33dTBSJ3LtS0NgZzpiRj+Zjrkc0rKa2FuBdfKbEqMONvsnYp?= =?utf-8?q?VTB40GVe5k0muaehp62ZfBfaw291c4PMCJFWWT6KLWFZDUyGkfhdSm/3F5tLMlHv1?= =?utf-8?q?9UVJkuKM+4on6+j+jejaCrpQ7EesfuVEqErML7RY4uSwBYnBGiWCXVGekW/NWLVHX?= =?utf-8?q?mO3X6tExaYMZp6hPLZKlOcstGeIuEGu2PdymL9WFjrm8bjxJY7jcDIfQRIAOABD79?= =?utf-8?q?epa3w10KdqySYYsQUrsA4w8dDF1kID88mR9Ko3cY2dTcwaTcD89Gy3vdtwtbcv3Yl?= =?utf-8?q?GqubxYYnVbU7?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 85f52cbd-5b8a-4004-8b23-08db7ca28875 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2023 15:22:52.0847 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Ve+MkR0Wz1rzQtox25TjdjlQ9Jc0eZ2/LoayeguHxZa2wGM8yIWA6iwVKra1EHj2LgVT4givhLstzLbTStvqvg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8692 X-Spam-Status: No, score=-3017.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, UNWANTED_LANGUAGE_BODY 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.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770504007035159709?= X-GMAIL-MSGID: =?utf-8?q?1770504007035159709?= Several already use OP_R(), which rejects the memory forms of insns, and a few others can easily be converted to do so as well. Note that for it to be able to use BadOp() without forward declaration, OP_Skip_MODRM() is moved down. While there add the previously missing PREFIX_OPCODE to legacy opcode 0FD7. --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -516,7 +516,6 @@ fetch_error (const instr_info *ins) #define EXxS { OP_EX, x_swap_mode } #define EXxmm { OP_EX, xmm_mode } #define EXymm { OP_EX, ymm_mode } -#define EXtmm { OP_EX, tmm_mode } #define EXxmmq { OP_EX, xmmq_mode } #define EXxmmqh { OP_EX, evex_half_bcst_xmmqh_mode } #define EXEvexHalfBcstXmmq { OP_EX, evex_half_bcst_xmmq_mode } @@ -526,10 +525,12 @@ fetch_error (const instr_info *ins) #define EXymmq { OP_EX, ymmq_mode } #define EXEvexXGscat { OP_EX, evex_x_gscat_mode } #define EXEvexXNoBcst { OP_EX, evex_x_nobcst_mode } +#define Rd { OP_R, d_mode } #define Rdq { OP_R, dq_mode } #define Nq { OP_R, q_mode } #define Ux { OP_R, x_mode } #define Uxmm { OP_R, xmm_mode } +#define Rtmm { OP_R, tmm_mode } #define EMCq { OP_EMC, q_mode } #define MXC { OP_MXC, 0 } #define OPSUF { OP_3DNowSuffix, 0 } @@ -829,7 +830,7 @@ enum REG_0F1C_P_0_MOD_0, REG_0F1E_P_1_MOD_3, REG_0F38D8_PREFIX_1, - REG_0F3A0F_PREFIX_1_MOD_3, + REG_0F3A0F_P_1, REG_0F71, REG_0F72, REG_0F73, @@ -847,7 +848,7 @@ enum REG_XOP_09_01_L_0, REG_XOP_09_02_L_0, - REG_XOP_09_12_M_1_L_0, + REG_XOP_09_12_L_0, REG_XOP_0A_12_L_0, REG_EVEX_0F71, @@ -862,8 +863,6 @@ enum MOD_62_32BIT = 0, MOD_C4_32BIT, MOD_C5_32BIT, - MOD_C6_REG_7, - MOD_C7_REG_7, MOD_0F01_REG_0, MOD_0F01_REG_1, MOD_0F01_REG_2, @@ -885,7 +884,6 @@ enum MOD_0F1B_PREFIX_1, MOD_0F1C_PREFIX_0, MOD_0F1E_PREFIX_1, - MOD_0F50, MOD_0FAE_REG_0, MOD_0FAE_REG_1, MOD_0FAE_REG_2, @@ -896,23 +894,9 @@ enum MOD_0FAE_REG_7, MOD_0FC7_REG_6, MOD_0FC7_REG_7, - MOD_0FD7, MOD_0F38DC_PREFIX_1, - MOD_0F38FA_PREFIX_1, - MOD_0F38FB_PREFIX_1, - MOD_0F3A0F_PREFIX_1, - MOD_VEX_0FD7, MOD_VEX_0F3849_X86_64_L_0_W_0, - MOD_VEX_0F385C_X86_64, - MOD_VEX_0F385E_X86_64, - MOD_VEX_0F386C_X86_64, - - MOD_XOP_09_12, - - MOD_EVEX_0F387A_W_0, - MOD_EVEX_0F387B_W_0, - MOD_EVEX_0F387C, }; enum @@ -928,7 +912,7 @@ enum RM_0F1E_P_1_MOD_3_REG_7, RM_0FAE_REG_6_MOD_3_P_0, RM_0FAE_REG_7_MOD_3, - RM_0F3A0F_P_1_MOD_3_REG_0, + RM_0F3A0F_P_1_R_0, RM_VEX_0F3849_X86_64_L_0_W_0_M_1_P_0_R_0, RM_VEX_0F3849_X86_64_L_0_W_0_M_1_P_3, @@ -1074,9 +1058,9 @@ enum PREFIX_VEX_0F384B_X86_64_L_0_W_0, PREFIX_VEX_0F3850_W_0, PREFIX_VEX_0F3851_W_0, - PREFIX_VEX_0F385C_X86_64_M_1_L_0_W_0, - PREFIX_VEX_0F385E_X86_64_M_1_L_0_W_0, - PREFIX_VEX_0F386C_X86_64_M_1_L_0_W_0, + PREFIX_VEX_0F385C_X86_64_L_0_W_0, + PREFIX_VEX_0F385E_X86_64_L_0_W_0, + PREFIX_VEX_0F386C_X86_64_L_0_W_0, PREFIX_VEX_0F3872, PREFIX_VEX_0F38B0_W_0, PREFIX_VEX_0F38B1_W_0, @@ -1319,9 +1303,9 @@ enum VEX_LEN_0F3849_X86_64, VEX_LEN_0F384B_X86_64, VEX_LEN_0F385A, - VEX_LEN_0F385C_X86_64_M_1, - VEX_LEN_0F385E_X86_64_M_1, - VEX_LEN_0F386C_X86_64_M_1, + VEX_LEN_0F385C_X86_64, + VEX_LEN_0F385E_X86_64, + VEX_LEN_0F386C_X86_64, VEX_LEN_0F38DB, VEX_LEN_0F38F2, VEX_LEN_0F38F3, @@ -1381,7 +1365,7 @@ enum VEX_LEN_0FXOP_08_EF, VEX_LEN_0FXOP_09_01, VEX_LEN_0FXOP_09_02, - VEX_LEN_0FXOP_09_12_M_1, + VEX_LEN_0FXOP_09_12, VEX_LEN_0FXOP_09_82_W_0, VEX_LEN_0FXOP_09_83_W_0, VEX_LEN_0FXOP_09_90, @@ -1479,9 +1463,9 @@ enum VEX_W_0F3858, VEX_W_0F3859, VEX_W_0F385A_L_0, - VEX_W_0F385C_X86_64_M_1_L_0, - VEX_W_0F385E_X86_64_M_1_L_0, - VEX_W_0F386C_X86_64_M_1_L_0, + VEX_W_0F385C_X86_64_L_0, + VEX_W_0F385E_X86_64_L_0, + VEX_W_0F386C_X86_64_L_0, VEX_W_0F3872_P_1, VEX_W_0F3878, VEX_W_0F3879, @@ -2124,7 +2108,7 @@ static const struct dis386 dis386_twobyt { "cmovleS", { Gv, Ev }, 0 }, { "cmovgS", { Gv, Ev }, 0 }, /* 50 */ - { MOD_TABLE (MOD_0F50) }, + { "movmskpX", { Gdq, Ux }, PREFIX_OPCODE }, { PREFIX_TABLE (PREFIX_0F51) }, { PREFIX_TABLE (PREFIX_0F52) }, { PREFIX_TABLE (PREFIX_0F53) }, @@ -2275,7 +2259,7 @@ static const struct dis386 dis386_twobyt { "paddq", { MX, EM }, PREFIX_OPCODE }, { "pmullw", { MX, EM }, PREFIX_OPCODE }, { PREFIX_TABLE (PREFIX_0FD6) }, - { MOD_TABLE (MOD_0FD7) }, + { "pmovmskb", { Gdq, Nq }, PREFIX_OPCODE }, /* d8 */ { "psubusb", { MX, EM }, PREFIX_OPCODE }, { "psubusw", { MX, EM }, PREFIX_OPCODE }, @@ -2546,7 +2530,7 @@ static const struct dis386 reg_table[][8 { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { MOD_TABLE (MOD_C6_REG_7) }, + { RM_TABLE (RM_C6_REG_7) }, }, /* REG_C7 */ { @@ -2557,7 +2541,7 @@ static const struct dis386 reg_table[][8 { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { MOD_TABLE (MOD_C7_REG_7) }, + { RM_TABLE (RM_C7_REG_7) }, }, /* REG_D0 */ { @@ -2714,9 +2698,9 @@ static const struct dis386 reg_table[][8 { "aesencwide256kl", { M }, 0 }, { "aesdecwide256kl", { M }, 0 }, }, - /* REG_0F3A0F_PREFIX_1_MOD_3 */ + /* REG_0F3A0F_P_1 */ { - { RM_TABLE (RM_0F3A0F_P_1_MOD_3_REG_0) }, + { RM_TABLE (RM_0F3A0F_P_1_R_0) }, }, /* REG_0F71 */ { @@ -2867,10 +2851,10 @@ static const struct dis386 reg_table[][8 { Bad_Opcode }, { "blci", { VexGdq, Edq }, 0 }, }, - /* REG_XOP_09_12_M_1_L_0 */ + /* REG_XOP_09_12_L_0 */ { - { "llwpcb", { Edq }, 0 }, - { "slwpcb", { Edq }, 0 }, + { "llwpcb", { Rdq }, 0 }, + { "slwpcb", { Rdq }, 0 }, }, /* REG_XOP_0A_12_L_0 */ { @@ -3557,13 +3541,13 @@ static const struct dis386 prefix_table[ /* PREFIX_0F38FA */ { { Bad_Opcode }, - { MOD_TABLE (MOD_0F38FA_PREFIX_1) }, + { "encodekey128", { Gd, Rd }, 0 }, }, /* PREFIX_0F38FB */ { { Bad_Opcode }, - { MOD_TABLE (MOD_0F38FB_PREFIX_1) }, + { "encodekey256", { Gd, Rd }, 0 }, }, /* PREFIX_0F38FC */ @@ -3577,7 +3561,7 @@ static const struct dis386 prefix_table[ /* PREFIX_0F3A0F */ { { Bad_Opcode }, - { MOD_TABLE (MOD_0F3A0F_PREFIX_1)}, + { REG_TABLE (REG_0F3A0F_P_1) }, }, /* PREFIX_VEX_0F12 */ @@ -3884,27 +3868,27 @@ static const struct dis386 prefix_table[ { "%XVvpdpbusds", { XM, Vex, EXx }, 0 }, { "vpdpbssds", { XM, Vex, EXx }, 0 }, }, - /* PREFIX_VEX_0F385C_X86_64_M_1_L_0_W_0 */ + /* PREFIX_VEX_0F385C_X86_64_L_0_W_0 */ { { Bad_Opcode }, - { "tdpbf16ps", { TMM, EXtmm, VexTmm }, 0 }, + { "tdpbf16ps", { TMM, Rtmm, VexTmm }, 0 }, { Bad_Opcode }, - { "tdpfp16ps", { TMM, EXtmm, VexTmm }, 0 }, + { "tdpfp16ps", { TMM, Rtmm, VexTmm }, 0 }, }, - /* PREFIX_VEX_0F385E_X86_64_M_1_L_0_W_0 */ + /* PREFIX_VEX_0F385E_X86_64_L_0_W_0 */ { - { "tdpbuud", {TMM, EXtmm, VexTmm }, 0 }, - { "tdpbsud", {TMM, EXtmm, VexTmm }, 0 }, - { "tdpbusd", {TMM, EXtmm, VexTmm }, 0 }, - { "tdpbssd", {TMM, EXtmm, VexTmm }, 0 }, + { "tdpbuud", {TMM, Rtmm, VexTmm }, 0 }, + { "tdpbsud", {TMM, Rtmm, VexTmm }, 0 }, + { "tdpbusd", {TMM, Rtmm, VexTmm }, 0 }, + { "tdpbssd", {TMM, Rtmm, VexTmm }, 0 }, }, - /* PREFIX_VEX_0F386C_X86_64_M_1_L_0_W_0 */ + /* PREFIX_VEX_0F386C_X86_64_L_0_W_0 */ { - { "tcmmrlfp16ps", { TMM, EXtmm, VexTmm }, 0 }, + { "tcmmrlfp16ps", { TMM, Rtmm, VexTmm }, 0 }, { Bad_Opcode }, - { "tcmmimfp16ps", { TMM, EXtmm, VexTmm }, 0 }, + { "tcmmimfp16ps", { TMM, Rtmm, VexTmm }, 0 }, }, /* PREFIX_VEX_0F3872 */ @@ -4283,19 +4267,19 @@ static const struct dis386 x86_64_table[ /* X86_64_VEX_0F385C */ { { Bad_Opcode }, - { MOD_TABLE (MOD_VEX_0F385C_X86_64) }, + { VEX_LEN_TABLE (VEX_LEN_0F385C_X86_64) }, }, /* X86_64_VEX_0F385E */ { { Bad_Opcode }, - { MOD_TABLE (MOD_VEX_0F385E_X86_64) }, + { VEX_LEN_TABLE (VEX_LEN_0F385E_X86_64) }, }, /* X86_64_VEX_0F386C */ { { Bad_Opcode }, - { MOD_TABLE (MOD_VEX_0F386C_X86_64) }, + { VEX_LEN_TABLE (VEX_LEN_0F386C_X86_64) }, }, /* X86_64_VEX_0F38E0 */ @@ -5296,7 +5280,7 @@ static const struct dis386 xop_table[][2 /* 10 */ { Bad_Opcode }, { Bad_Opcode }, - { MOD_TABLE (MOD_XOP_09_12) }, + { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_12) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -5951,7 +5935,7 @@ static const struct dis386 vex_table[][2 { Bad_Opcode }, { Bad_Opcode }, /* 50 */ - { MOD_TABLE (MOD_0F50) }, + { "vmovmskpX", { Gdq, Ux }, PREFIX_OPCODE }, { PREFIX_TABLE (PREFIX_0F51) }, { PREFIX_TABLE (PREFIX_0F52) }, { PREFIX_TABLE (PREFIX_0F53) }, @@ -6102,7 +6086,7 @@ static const struct dis386 vex_table[][2 { "vpaddq", { XM, Vex, EXx }, PREFIX_DATA }, { "vpmullw", { XM, Vex, EXx }, PREFIX_DATA }, { VEX_LEN_TABLE (VEX_LEN_0FD6) }, - { MOD_TABLE (MOD_VEX_0FD7) }, + { "vpmovmskb", { Gdq, Ux }, PREFIX_DATA }, /* d8 */ { "vpsubusb", { XM, Vex, EXx }, PREFIX_DATA }, { "vpsubusw", { XM, Vex, EXx }, PREFIX_DATA }, @@ -6929,19 +6913,19 @@ static const struct dis386 vex_len_table { VEX_W_TABLE (VEX_W_0F385A_L_0) }, }, - /* VEX_LEN_0F385C_X86_64_M_1 */ + /* VEX_LEN_0F385C_X86_64 */ { - { VEX_W_TABLE (VEX_W_0F385C_X86_64_M_1_L_0) }, + { VEX_W_TABLE (VEX_W_0F385C_X86_64_L_0) }, }, - /* VEX_LEN_0F385E_X86_64_M_1 */ + /* VEX_LEN_0F385E_X86_64 */ { - { VEX_W_TABLE (VEX_W_0F385E_X86_64_M_1_L_0) }, + { VEX_W_TABLE (VEX_W_0F385E_X86_64_L_0) }, }, - /* VEX_LEN_0F386C_X86_64_M_1 */ + /* VEX_LEN_0F386C_X86_64 */ { - { VEX_W_TABLE (VEX_W_0F386C_X86_64_M_1_L_0) }, + { VEX_W_TABLE (VEX_W_0F386C_X86_64_L_0) }, }, /* VEX_LEN_0F38DB */ @@ -7247,9 +7231,9 @@ static const struct dis386 vex_len_table { REG_TABLE (REG_XOP_09_02_L_0) }, }, - /* VEX_LEN_0FXOP_09_12_M_1 */ + /* VEX_LEN_0FXOP_09_12 */ { - { REG_TABLE (REG_XOP_09_12_M_1_L_0) }, + { REG_TABLE (REG_XOP_09_12_L_0) }, }, /* VEX_LEN_0FXOP_09_82_W_0 */ @@ -7573,16 +7557,16 @@ static const struct dis386 vex_w_table[] { "vbroadcasti128", { XM, Mxmm }, PREFIX_DATA }, }, { - /* VEX_W_0F385C_X86_64_M_1_L_0 */ - { PREFIX_TABLE (PREFIX_VEX_0F385C_X86_64_M_1_L_0_W_0) }, + /* VEX_W_0F385C_X86_64_L_0 */ + { PREFIX_TABLE (PREFIX_VEX_0F385C_X86_64_L_0_W_0) }, }, { - /* VEX_W_0F385E_X86_64_M_1_L_0 */ - { PREFIX_TABLE (PREFIX_VEX_0F385E_X86_64_M_1_L_0_W_0) }, + /* VEX_W_0F385E_X86_64_L_0 */ + { PREFIX_TABLE (PREFIX_VEX_0F385E_X86_64_L_0_W_0) }, }, { - /* VEX_W_0F386C_X86_64_M_1_L_0 */ - { PREFIX_TABLE (PREFIX_VEX_0F386C_X86_64_M_1_L_0_W_0) }, + /* VEX_W_0F386C_X86_64_L_0 */ + { PREFIX_TABLE (PREFIX_VEX_0F386C_X86_64_L_0_W_0) }, }, { /* VEX_W_0F3872_P_1 */ @@ -7883,16 +7867,6 @@ static const struct dis386 mod_table[][2 { VEX_C5_TABLE (VEX_0F) }, }, { - /* MOD_C6_REG_7 */ - { Bad_Opcode }, - { RM_TABLE (RM_C6_REG_7) }, - }, - { - /* MOD_C7_REG_7 */ - { Bad_Opcode }, - { RM_TABLE (RM_C7_REG_7) }, - }, - { /* MOD_0F01_REG_0 */ { X86_64_TABLE (X86_64_0F01_REG_0) }, { RM_TABLE (RM_0F01_REG_0) }, @@ -7998,11 +7972,6 @@ static const struct dis386 mod_table[][2 { REG_TABLE (REG_0F1E_P_1_MOD_3) }, }, { - /* MOD_0F50 */ - { Bad_Opcode }, - { "VmovmskpX", { Gdq, Ux }, PREFIX_OPCODE }, - }, - { /* MOD_0FAE_REG_0 */ { "fxsave", { FXSAVE }, 0 }, { PREFIX_TABLE (PREFIX_0FAE_REG_0_MOD_3) }, @@ -8053,60 +8022,15 @@ static const struct dis386 mod_table[][2 { PREFIX_TABLE (PREFIX_0FC7_REG_7_MOD_3) } }, { - /* MOD_0FD7 */ - { Bad_Opcode }, - { "pmovmskb", { Gdq, Nq }, 0 }, - }, - { /* MOD_0F38DC_PREFIX_1 */ { "aesenc128kl", { XM, M }, 0 }, { "loadiwkey", { XM, EXx }, 0 }, }, { - /* MOD_0F38FA_PREFIX_1 */ - { Bad_Opcode }, - { "encodekey128", { Gd, Ed }, 0 }, - }, - { - /* MOD_0F38FB_PREFIX_1 */ - { Bad_Opcode }, - { "encodekey256", { Gd, Ed }, 0 }, - }, - { - /* MOD_0F3A0F_PREFIX_1 */ - { Bad_Opcode }, - { REG_TABLE (REG_0F3A0F_PREFIX_1_MOD_3) }, - }, - { - /* MOD_VEX_0FD7 */ - { Bad_Opcode }, - { "vpmovmskb", { Gdq, Ux }, PREFIX_DATA }, - }, - { /* MOD_VEX_0F3849_X86_64_L_0_W_0 */ { PREFIX_TABLE (PREFIX_VEX_0F3849_X86_64_L_0_W_0_M_0) }, { PREFIX_TABLE (PREFIX_VEX_0F3849_X86_64_L_0_W_0_M_1) }, }, - { - /* MOD_VEX_0F385C_X86_64 */ - { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0F385C_X86_64_M_1) }, - }, - { - /* MOD_VEX_0F385E_X86_64 */ - { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0F385E_X86_64_M_1) }, - }, - { - /* MOD_VEX_0F386C_X86_64 */ - { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0F386C_X86_64_M_1) }, - }, - { - /* MOD_XOP_09_12 */ - { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_12_M_1) }, - }, #include "i386-dis-evex-mod.h" }; @@ -8205,7 +8129,7 @@ static const struct dis386 rm_table[][8] { "sfence", { Skip_MODRM }, 0 }, }, { - /* RM_0F3A0F_P_1_MOD_3_REG_0 */ + /* RM_0F3A0F_P_1_R_0 */ { "hreset", { Skip_MODRM, Ib }, 0 }, }, { @@ -9949,16 +9873,6 @@ swap_operand (instr_info *ins) } static bool -OP_Skip_MODRM (instr_info *ins, int bytemode ATTRIBUTE_UNUSED, - int sizeflag ATTRIBUTE_UNUSED) -{ - /* Skip mod/rm byte. */ - MODRM_CHECK; - ins->codep++; - return true; -} - -static bool dofloat (instr_info *ins, int sizeflag) { const struct dis386 *dp; @@ -11249,6 +11163,19 @@ BadOp (instr_info *ins) } static bool +OP_Skip_MODRM (instr_info *ins, int bytemode ATTRIBUTE_UNUSED, + int sizeflag ATTRIBUTE_UNUSED) +{ + if (ins->modrm.mod != 3) + return BadOp (ins); + + /* Skip mod/rm byte. */ + MODRM_CHECK; + ins->codep++; + return true; +} + +static bool OP_E_memory (instr_info *ins, int bytemode, int sizeflag) { int add = (ins->rex & REX_B) ? 8 : 0; @@ -12566,6 +12493,7 @@ OP_R (instr_info *ins, int bytemode, int switch (bytemode) { + case d_mode: case dq_mode: case mask_mode: return OP_E (ins, bytemode, sizeflag); --- a/opcodes/i386-dis-evex-mod.h +++ b/opcodes/i386-dis-evex-mod.h @@ -1,15 +1 @@ - /* MOD_EVEX_0F387A_W_0 */ - { - { Bad_Opcode }, - { "vpbroadcastb", { XM, Ed }, PREFIX_DATA }, - }, - /* MOD_EVEX_0F387B_W_0 */ - { - { Bad_Opcode }, - { "vpbroadcastw", { XM, Ed }, PREFIX_DATA }, - }, - /* MOD_EVEX_0F387C */ - { - { Bad_Opcode }, - { "vpbroadcastK", { XM, Edq }, PREFIX_DATA }, - }, +/* Nothing at present. */ --- a/opcodes/i386-dis-evex-w.h +++ b/opcodes/i386-dis-evex-w.h @@ -363,11 +363,11 @@ }, /* EVEX_W_0F387A */ { - { MOD_TABLE (MOD_EVEX_0F387A_W_0) }, + { "vpbroadcastb", { XM, Rd }, PREFIX_DATA }, }, /* EVEX_W_0F387B */ { - { MOD_TABLE (MOD_EVEX_0F387B_W_0) }, + { "vpbroadcastw", { XM, Rd }, PREFIX_DATA }, }, /* EVEX_W_0F3883 */ { From patchwork Tue Jul 4 15:23:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 115837 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f45:0:b0:3ea:f831:8777 with SMTP id v5csp1300574vqx; Tue, 4 Jul 2023 08:29:19 -0700 (PDT) X-Google-Smtp-Source: APBJJlFnCgIRPX9QGK8z51S/L/BD1xyQr2+6tybfWY2we2cC7QpF6klj/8GZ42+5opI+WVZ5u0dQ X-Received: by 2002:a17:906:3516:b0:978:8e58:e1a9 with SMTP id r22-20020a170906351600b009788e58e1a9mr9402838eja.15.1688484559731; Tue, 04 Jul 2023 08:29:19 -0700 (PDT) Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id xa10-20020a170907b9ca00b00977cb7af75asi13433642ejc.719.2023.07.04.08.29.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jul 2023 08:29:19 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=cSamoibs; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 81B35388203F for ; Tue, 4 Jul 2023 15:26:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 81B35388203F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688484418; bh=s3D3AqBWrTO+xVROeq1y3FLvKCLAl1t4Uo8vGOCxzug=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=cSamoibsiCV7lhNN6fLRFwZzZRQ457aFjS7slfjzg5+qgWQZmglIi+OTKAE8a++h8 IPuXQkoSz9YTrqjPFCNZdbAvLzw2YTYnrYxecHCNiMMfuLz3Qvhh3C5FHzyHrOL+wK UdTLSHlfUVtDXB12o8OWfvBCcadvCi9K2dLXq/Z0= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2059.outbound.protection.outlook.com [40.107.7.59]) by sourceware.org (Postfix) with ESMTPS id 46F8F385C6EA for ; Tue, 4 Jul 2023 15:23:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 46F8F385C6EA ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e/4++DGLF4meN0nxQDO2uLue1lGbgy6SRphZFhGWFRIyz3EYfx55QG+XAlmghx60P5ZB++zownQ9VOCWFRzW2BtPGYPE+enNyrkoSK3dhto7kT4rlH7gfmWBBwxYWRZZNUpO1G4ZyzR0/3D3XkVC7N77DaFZRtQuVRDkrxXvO8Hr44qbeTclXse3/pT/EDCZEVZn2FxjYbcPTCkapnlrY+h3koie4Nx0gaqAXR2bQFgoYcPu62H9PXBKQjXMrXIxQ+zkspZT8ILQRIp/Ck4iIMOkmmuNcJ/qKh+FEv+yepsvGLWzef8IBik0YUSw9fvi1vmpKJFv2me05fs76BIMGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=s3D3AqBWrTO+xVROeq1y3FLvKCLAl1t4Uo8vGOCxzug=; b=dmoTmu7AoYYrKhvaRl3qfHt2RMs8QaMUxmn/oqgGnEmdRPCX9fIdmfN5bbvKgzHj9mE2WxQo1MW/7rEGQpCe1Z9vuXWvOdto4CozzkpRjgpmS67P+AEquT8nnPDPs0ttkngghADQMktopxdunr5S2mf45T53WaB493dtWLgO4ODwEu3ekGP3z+oKOouwcyK0ZB8dTW35CVSYf70ApMPpVmLbT7yTwxL1qL3tPnTbX4te4atbaKCIcY/AkX1m41vtpdZbMR9yQFHfnuixWVi8XroJcYAWR9F4m4Beybwgyyq7sWDzLyT+FJc+BM4Un6yWuSsbSq2S0RHKzyoo7OALtg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by AS8PR04MB8692.eurprd04.prod.outlook.com (2603:10a6:20b:42b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Tue, 4 Jul 2023 15:23:18 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880%4]) with mapi id 15.20.6544.024; Tue, 4 Jul 2023 15:23:18 +0000 Message-ID: Date: Tue, 4 Jul 2023 17:23:25 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: [PATCH 09/10] x86: convert 0FXOP to just XOP in enumerator names Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: In-Reply-To: X-ClientProxiedBy: FR0P281CA0009.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:15::14) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AS8PR04MB8692:EE_ X-MS-Office365-Filtering-Correlation-Id: 6ef1d333-74ad-483f-3688-08db7ca29877 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: W7LgdkeETFuHu/LYiY8FZAm0TWx4Cs3dLmygN6IYZRk8i63UwvJ0WC8vNMnbwxrfCLd2jk68CBT0m7MR8UGULfPlSBor04bwG9g9l3X7isgOCxxFnX22K1FY9OwT4dWqQvtFxUupEcGf5YUkPPqoLhmZT/RfQ4z2pAAdcfomrsMzBZI1KqCOVsqPWW/Z9YYkJSoGemXTtim0zkbQ54XZQonKZxkanWpaK5BJkKRvb3dq5q7T5cVuigllo5r5x0T/jahf8gTzAavPJ4kjYR4Dz38n4uzcQ/DUBTQzh/4TgV+uE7v7cqtyFWNp4GF36GAFjufS/+6l/Cn+AzEsbZlT+ArZtFIUD1WnHcVAG/EGQ6WsuzojtiuyvPz0wkVXtMnrsmcYUKMqyYd+0scI6P9lpWZUx39ZYHLUeXPVMAAnalgjGZnF44wbC96VhAzdMdTK4PXF9CuXDj0J0nXUtlwNuQQWR3pglCqyhs2GxlWFVyG8lu1U7STcsq6lUeeTWanpU1wCIRjIEUng6n5EO7o/JKsKvPEbvS/0KnHTHNb0NJLADxK/XpjLjzyUHOKOfehKW9oON2Dw402rXyl1ZqI4oYfUUGr20tZx7XJ5E8DMwgsajOg/rr7B//+x4atkI57hbKUDV+RYTfB9jG2v1i0WEw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU2PR04MB8790.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(136003)(39850400004)(376002)(346002)(366004)(396003)(451199021)(478600001)(6666004)(5660300002)(8676002)(36756003)(8936002)(30864003)(31696002)(86362001)(2906002)(38100700002)(66476007)(4326008)(66946007)(66556008)(6916009)(316002)(41300700001)(26005)(31686004)(186003)(6506007)(2616005)(6486002)(6512007)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?d8Eatw9WZS9tQcC1wLXTyVFW97pi?= =?utf-8?q?R6GfCXsgXgRRoYpn5H5thvcHqc4gw2ohDZVFdzYAVHhFDG7fRw0Lyfie4JESrXiT4?= =?utf-8?q?uuqctLYXELN9oZCsvcB8SmoOTdToUnV2QR/S3oki7+4vfd6J+fi60lUmuNt3n+Yiv?= =?utf-8?q?kJx8qxBc+tlddVRCzZTEvmg2LZ17KphL2Lsn+oFUu4o4d5AEYSAyhxCepvFcZoTNu?= =?utf-8?q?0hV0JR0uTKHICQ3hEceT43b5Tm+N3QmZ7dXd/BHWuwtRYDUaur89B3RvLvOKlZ4tv?= =?utf-8?q?wo8s9MWGVNUr5nlq5ah4Vsnv5cMAACNwcehMnSKCozoBbgijTKteBrypf8ndxUwrg?= =?utf-8?q?I9B0/YdMXyQMAak61wVyZdDZNpV7XLfLlBPW80EjSp3ZzUXWc7ECBHVK47SJ6mboe?= =?utf-8?q?N3xL3JVUbFfsMwegESVowknhEPB3RandeCvsbuIax/iXz+kQjb46fKecxLvBgVkks?= =?utf-8?q?JCCWEdP5vnuGX5jzNbo/mDTL8QTj4cSoTz00W0591YIlQ5+kptJg6BrZNBDsLttPl?= =?utf-8?q?uwgRzUAtST0Is7BmWUtTDrDbLPPV5B6yQP34ROp9/yEOlalkfwFPS9VA4m9Ubln+J?= =?utf-8?q?jtP0GLaCgoEnZpsRn9MMmVNawZVNr4uw2orzOWXHUPiKE3OT1N4wrE6OvkXHdIx1g?= =?utf-8?q?pSlMaE3MdGde397/P+ZLVsQURKRosmKLgMd0op7HFI6qeBhdUaB7uMDMOeJlI/+tI?= =?utf-8?q?VQT6B70uOCabfppRS+ZhGGVTJ/RbsZ/8NS2jbPJ9/fxqxnVXXweOjGg817i+7S2lQ?= =?utf-8?q?/7KxXoDXS3eQ6M7EhsqwVqoGCQ6p1WC/LwrinKzd7jIVKZgHUqpdb9z//B+D/dcpd?= =?utf-8?q?mHHq1dnxOMKlutQBGHCFJJkX5lt0QqdOYZb/lidA3wzDU3G/jVUeBD/TQeq6V3Qul?= =?utf-8?q?Uey88AU1kjx8BRBlG9JF/YgwP+XmQ6xtj1tbbsSnMVWQ14TtLuprzdHcmQwhhhdAF?= =?utf-8?q?eTykbP29mZW1nJeH1hFBofwIPbtcxbX+LZlZLnGLzbU1AC8RCckTKyveLilxZ5AqQ?= =?utf-8?q?9PmS+4W6SSROOvpHLQVP45XUnFO//NeP2vxlbT4zsfELCfrVzf5HlbXURi3D3CFR3?= =?utf-8?q?r14HGRODp+iGymS3O90H0F0mG/4+VSjHUhHCTLXpYpf5hT1Sj44mh+DWBGANFB+ny?= =?utf-8?q?BxpuaACTEdscrGQPUCUNUI7LiQ//vz5oWpYg/WoomEmOAoeXGfvBHSKlDnwAOQIZY?= =?utf-8?q?BTUtQxyRmv4Ior+ehfIgNZgq+vDpv5bo+EnNUCAPHNH3KqAWWqL9sA/z6DSf86jcU?= =?utf-8?q?p7a+n3nfwGRkrfpGVrk2m20EaVLJO9lGn0K6R8O2vI5uxdAU9tGYG92V0ideYdn1Y?= =?utf-8?q?6jf9+jBUe2MXWcC8OUzMhKcFo+DK3yuDcVtxMjiBUBq9WNHUySWaC/MKIkC/G0xjC?= =?utf-8?q?G7gxq9/b4uHD3jXUpabaCEsZiPb2nHGeZWTIBGa33SrCskCeFE/9LLCSVkC1EGbaI?= =?utf-8?q?7nHH96+om7H9DYFK8S2ulIR5wk67NhKE1CUwcaNYeIZfR6o9qXa/phgPBRqAO/fR8?= =?utf-8?q?nbwMlPzsTlXF?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6ef1d333-74ad-483f-3688-08db7ca29877 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2023 15:23:18.8264 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1+bjPTUm+mb8tyg1AzfUSFumMyDqR+0WnUvmetWI7si2kyccEDGw1coLZ3TlFuTk8iEZdbqCjtDI++gey4TnUA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8692 X-Spam-Status: No, score=-3027.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, UPPERCASE_50_75 autolearn=no 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.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770504385662969078?= X-GMAIL-MSGID: =?utf-8?q?1770504385662969078?= There's nothing 0f-ish in XOP encodings. --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -1338,64 +1338,64 @@ enum VEX_LEN_0F3A63, VEX_LEN_0F3ADF, VEX_LEN_0F3AF0, - VEX_LEN_0FXOP_08_85, - VEX_LEN_0FXOP_08_86, - VEX_LEN_0FXOP_08_87, - VEX_LEN_0FXOP_08_8E, - VEX_LEN_0FXOP_08_8F, - VEX_LEN_0FXOP_08_95, - VEX_LEN_0FXOP_08_96, - VEX_LEN_0FXOP_08_97, - VEX_LEN_0FXOP_08_9E, - VEX_LEN_0FXOP_08_9F, - VEX_LEN_0FXOP_08_A3, - VEX_LEN_0FXOP_08_A6, - VEX_LEN_0FXOP_08_B6, - VEX_LEN_0FXOP_08_C0, - VEX_LEN_0FXOP_08_C1, - VEX_LEN_0FXOP_08_C2, - VEX_LEN_0FXOP_08_C3, - VEX_LEN_0FXOP_08_CC, - VEX_LEN_0FXOP_08_CD, - VEX_LEN_0FXOP_08_CE, - VEX_LEN_0FXOP_08_CF, - VEX_LEN_0FXOP_08_EC, - VEX_LEN_0FXOP_08_ED, - VEX_LEN_0FXOP_08_EE, - VEX_LEN_0FXOP_08_EF, - VEX_LEN_0FXOP_09_01, - VEX_LEN_0FXOP_09_02, - VEX_LEN_0FXOP_09_12, - VEX_LEN_0FXOP_09_82_W_0, - VEX_LEN_0FXOP_09_83_W_0, - VEX_LEN_0FXOP_09_90, - VEX_LEN_0FXOP_09_91, - VEX_LEN_0FXOP_09_92, - VEX_LEN_0FXOP_09_93, - VEX_LEN_0FXOP_09_94, - VEX_LEN_0FXOP_09_95, - VEX_LEN_0FXOP_09_96, - VEX_LEN_0FXOP_09_97, - VEX_LEN_0FXOP_09_98, - VEX_LEN_0FXOP_09_99, - VEX_LEN_0FXOP_09_9A, - VEX_LEN_0FXOP_09_9B, - VEX_LEN_0FXOP_09_C1, - VEX_LEN_0FXOP_09_C2, - VEX_LEN_0FXOP_09_C3, - VEX_LEN_0FXOP_09_C6, - VEX_LEN_0FXOP_09_C7, - VEX_LEN_0FXOP_09_CB, - VEX_LEN_0FXOP_09_D1, - VEX_LEN_0FXOP_09_D2, - VEX_LEN_0FXOP_09_D3, - VEX_LEN_0FXOP_09_D6, - VEX_LEN_0FXOP_09_D7, - VEX_LEN_0FXOP_09_DB, - VEX_LEN_0FXOP_09_E1, - VEX_LEN_0FXOP_09_E2, - VEX_LEN_0FXOP_09_E3, - VEX_LEN_0FXOP_0A_12, + VEX_LEN_XOP_08_85, + VEX_LEN_XOP_08_86, + VEX_LEN_XOP_08_87, + VEX_LEN_XOP_08_8E, + VEX_LEN_XOP_08_8F, + VEX_LEN_XOP_08_95, + VEX_LEN_XOP_08_96, + VEX_LEN_XOP_08_97, + VEX_LEN_XOP_08_9E, + VEX_LEN_XOP_08_9F, + VEX_LEN_XOP_08_A3, + VEX_LEN_XOP_08_A6, + VEX_LEN_XOP_08_B6, + VEX_LEN_XOP_08_C0, + VEX_LEN_XOP_08_C1, + VEX_LEN_XOP_08_C2, + VEX_LEN_XOP_08_C3, + VEX_LEN_XOP_08_CC, + VEX_LEN_XOP_08_CD, + VEX_LEN_XOP_08_CE, + VEX_LEN_XOP_08_CF, + VEX_LEN_XOP_08_EC, + VEX_LEN_XOP_08_ED, + VEX_LEN_XOP_08_EE, + VEX_LEN_XOP_08_EF, + VEX_LEN_XOP_09_01, + VEX_LEN_XOP_09_02, + VEX_LEN_XOP_09_12, + VEX_LEN_XOP_09_82_W_0, + VEX_LEN_XOP_09_83_W_0, + VEX_LEN_XOP_09_90, + VEX_LEN_XOP_09_91, + VEX_LEN_XOP_09_92, + VEX_LEN_XOP_09_93, + VEX_LEN_XOP_09_94, + VEX_LEN_XOP_09_95, + VEX_LEN_XOP_09_96, + VEX_LEN_XOP_09_97, + VEX_LEN_XOP_09_98, + VEX_LEN_XOP_09_99, + VEX_LEN_XOP_09_9A, + VEX_LEN_XOP_09_9B, + VEX_LEN_XOP_09_C1, + VEX_LEN_XOP_09_C2, + VEX_LEN_XOP_09_C3, + VEX_LEN_XOP_09_C6, + VEX_LEN_XOP_09_C7, + VEX_LEN_XOP_09_CB, + VEX_LEN_XOP_09_D1, + VEX_LEN_XOP_09_D2, + VEX_LEN_XOP_09_D3, + VEX_LEN_XOP_09_D6, + VEX_LEN_XOP_09_D7, + VEX_LEN_XOP_09_DB, + VEX_LEN_XOP_09_E1, + VEX_LEN_XOP_09_E2, + VEX_LEN_XOP_09_E3, + VEX_LEN_XOP_0A_12, }; enum @@ -1492,50 +1492,50 @@ enum VEX_W_0F3ACE, VEX_W_0F3ACF, - VEX_W_0FXOP_08_85_L_0, - VEX_W_0FXOP_08_86_L_0, - VEX_W_0FXOP_08_87_L_0, - VEX_W_0FXOP_08_8E_L_0, - VEX_W_0FXOP_08_8F_L_0, - VEX_W_0FXOP_08_95_L_0, - VEX_W_0FXOP_08_96_L_0, - VEX_W_0FXOP_08_97_L_0, - VEX_W_0FXOP_08_9E_L_0, - VEX_W_0FXOP_08_9F_L_0, - VEX_W_0FXOP_08_A6_L_0, - VEX_W_0FXOP_08_B6_L_0, - VEX_W_0FXOP_08_C0_L_0, - VEX_W_0FXOP_08_C1_L_0, - VEX_W_0FXOP_08_C2_L_0, - VEX_W_0FXOP_08_C3_L_0, - VEX_W_0FXOP_08_CC_L_0, - VEX_W_0FXOP_08_CD_L_0, - VEX_W_0FXOP_08_CE_L_0, - VEX_W_0FXOP_08_CF_L_0, - VEX_W_0FXOP_08_EC_L_0, - VEX_W_0FXOP_08_ED_L_0, - VEX_W_0FXOP_08_EE_L_0, - VEX_W_0FXOP_08_EF_L_0, - - VEX_W_0FXOP_09_80, - VEX_W_0FXOP_09_81, - VEX_W_0FXOP_09_82, - VEX_W_0FXOP_09_83, - VEX_W_0FXOP_09_C1_L_0, - VEX_W_0FXOP_09_C2_L_0, - VEX_W_0FXOP_09_C3_L_0, - VEX_W_0FXOP_09_C6_L_0, - VEX_W_0FXOP_09_C7_L_0, - VEX_W_0FXOP_09_CB_L_0, - VEX_W_0FXOP_09_D1_L_0, - VEX_W_0FXOP_09_D2_L_0, - VEX_W_0FXOP_09_D3_L_0, - VEX_W_0FXOP_09_D6_L_0, - VEX_W_0FXOP_09_D7_L_0, - VEX_W_0FXOP_09_DB_L_0, - VEX_W_0FXOP_09_E1_L_0, - VEX_W_0FXOP_09_E2_L_0, - VEX_W_0FXOP_09_E3_L_0, + VEX_W_XOP_08_85_L_0, + VEX_W_XOP_08_86_L_0, + VEX_W_XOP_08_87_L_0, + VEX_W_XOP_08_8E_L_0, + VEX_W_XOP_08_8F_L_0, + VEX_W_XOP_08_95_L_0, + VEX_W_XOP_08_96_L_0, + VEX_W_XOP_08_97_L_0, + VEX_W_XOP_08_9E_L_0, + VEX_W_XOP_08_9F_L_0, + VEX_W_XOP_08_A6_L_0, + VEX_W_XOP_08_B6_L_0, + VEX_W_XOP_08_C0_L_0, + VEX_W_XOP_08_C1_L_0, + VEX_W_XOP_08_C2_L_0, + VEX_W_XOP_08_C3_L_0, + VEX_W_XOP_08_CC_L_0, + VEX_W_XOP_08_CD_L_0, + VEX_W_XOP_08_CE_L_0, + VEX_W_XOP_08_CF_L_0, + VEX_W_XOP_08_EC_L_0, + VEX_W_XOP_08_ED_L_0, + VEX_W_XOP_08_EE_L_0, + VEX_W_XOP_08_EF_L_0, + + VEX_W_XOP_09_80, + VEX_W_XOP_09_81, + VEX_W_XOP_09_82, + VEX_W_XOP_09_83, + VEX_W_XOP_09_C1_L_0, + VEX_W_XOP_09_C2_L_0, + VEX_W_XOP_09_C3_L_0, + VEX_W_XOP_09_C6_L_0, + VEX_W_XOP_09_C7_L_0, + VEX_W_XOP_09_CB_L_0, + VEX_W_XOP_09_D1_L_0, + VEX_W_XOP_09_D2_L_0, + VEX_W_XOP_09_D3_L_0, + VEX_W_XOP_09_D6_L_0, + VEX_W_XOP_09_D7_L_0, + VEX_W_XOP_09_DB_L_0, + VEX_W_XOP_09_E1_L_0, + VEX_W_XOP_09_E2_L_0, + VEX_W_XOP_09_E3_L_0, EVEX_W_0F5B_P_0, EVEX_W_0F62, @@ -5118,9 +5118,9 @@ static const struct dis386 xop_table[][2 { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_85) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_86) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_87) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_85) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_86) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_87) }, /* 88 */ { Bad_Opcode }, { Bad_Opcode }, @@ -5128,17 +5128,17 @@ static const struct dis386 xop_table[][2 { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_8E) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_8F) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_8E) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_8F) }, /* 90 */ { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_95) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_96) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_97) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_95) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_96) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_97) }, /* 98 */ { Bad_Opcode }, { Bad_Opcode }, @@ -5146,16 +5146,16 @@ static const struct dis386 xop_table[][2 { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_9E) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_9F) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_9E) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_9F) }, /* a0 */ { Bad_Opcode }, { Bad_Opcode }, { "vpcmov", { XM, Vex, EXx, XMVexI4 }, 0 }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_A3) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_A3) }, { Bad_Opcode }, { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_A6) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_A6) }, { Bad_Opcode }, /* a8 */ { Bad_Opcode }, @@ -5173,7 +5173,7 @@ static const struct dis386 xop_table[][2 { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_B6) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_B6) }, { Bad_Opcode }, /* b8 */ { Bad_Opcode }, @@ -5185,10 +5185,10 @@ static const struct dis386 xop_table[][2 { Bad_Opcode }, { Bad_Opcode }, /* c0 */ - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_C0) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_C1) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_C2) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_C3) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_C0) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_C1) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_C2) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_C3) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -5198,10 +5198,10 @@ static const struct dis386 xop_table[][2 { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_CC) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_CD) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_CE) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_CF) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_CC) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_CD) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_CE) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_CF) }, /* d0 */ { Bad_Opcode }, { Bad_Opcode }, @@ -5234,10 +5234,10 @@ static const struct dis386 xop_table[][2 { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_EC) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_ED) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_EE) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_EF) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_EC) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_ED) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_EE) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_08_EF) }, /* f0 */ { Bad_Opcode }, { Bad_Opcode }, @@ -5261,8 +5261,8 @@ static const struct dis386 xop_table[][2 { /* 00 */ { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_01) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_02) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_01) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_02) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -5280,7 +5280,7 @@ static const struct dis386 xop_table[][2 /* 10 */ { Bad_Opcode }, { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_12) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_12) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -5404,10 +5404,10 @@ static const struct dis386 xop_table[][2 { Bad_Opcode }, { Bad_Opcode }, /* 80 */ - { VEX_W_TABLE (VEX_W_0FXOP_09_80) }, - { VEX_W_TABLE (VEX_W_0FXOP_09_81) }, - { VEX_W_TABLE (VEX_W_0FXOP_09_82) }, - { VEX_W_TABLE (VEX_W_0FXOP_09_83) }, + { VEX_W_TABLE (VEX_W_XOP_09_80) }, + { VEX_W_TABLE (VEX_W_XOP_09_81) }, + { VEX_W_TABLE (VEX_W_XOP_09_82) }, + { VEX_W_TABLE (VEX_W_XOP_09_83) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -5422,19 +5422,19 @@ static const struct dis386 xop_table[][2 { Bad_Opcode }, { Bad_Opcode }, /* 90 */ - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_90) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_91) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_92) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_93) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_94) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_95) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_96) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_97) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_90) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_91) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_92) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_93) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_94) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_95) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_96) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_97) }, /* 98 */ - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_98) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_99) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_9A) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_9B) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_98) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_99) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_9A) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_9B) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -5477,45 +5477,45 @@ static const struct dis386 xop_table[][2 { Bad_Opcode }, /* c0 */ { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_C1) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_C2) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_C3) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_C1) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_C2) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_C3) }, { Bad_Opcode }, { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_C6) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_C7) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_C6) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_C7) }, /* c8 */ { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_CB) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_CB) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, /* d0 */ { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_D1) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_D2) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_D3) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_D1) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_D2) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_D3) }, { Bad_Opcode }, { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_D6) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_D7) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_D6) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_D7) }, /* d8 */ { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_DB) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_DB) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, /* e0 */ { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_E1) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_E2) }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_E3) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_E1) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_E2) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_E3) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -5571,7 +5571,7 @@ static const struct dis386 xop_table[][2 /* 10 */ { "bextrS", { Gdq, Edq, Id }, 0 }, { Bad_Opcode }, - { VEX_LEN_TABLE (VEX_LEN_0FXOP_0A_12) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_0A_12) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -7096,292 +7096,292 @@ static const struct dis386 vex_len_table { PREFIX_TABLE (PREFIX_VEX_0F3AF0_L_0) }, }, - /* VEX_LEN_0FXOP_08_85 */ + /* VEX_LEN_XOP_08_85 */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_85_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_85_L_0) }, }, - /* VEX_LEN_0FXOP_08_86 */ + /* VEX_LEN_XOP_08_86 */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_86_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_86_L_0) }, }, - /* VEX_LEN_0FXOP_08_87 */ + /* VEX_LEN_XOP_08_87 */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_87_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_87_L_0) }, }, - /* VEX_LEN_0FXOP_08_8E */ + /* VEX_LEN_XOP_08_8E */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_8E_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_8E_L_0) }, }, - /* VEX_LEN_0FXOP_08_8F */ + /* VEX_LEN_XOP_08_8F */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_8F_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_8F_L_0) }, }, - /* VEX_LEN_0FXOP_08_95 */ + /* VEX_LEN_XOP_08_95 */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_95_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_95_L_0) }, }, - /* VEX_LEN_0FXOP_08_96 */ + /* VEX_LEN_XOP_08_96 */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_96_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_96_L_0) }, }, - /* VEX_LEN_0FXOP_08_97 */ + /* VEX_LEN_XOP_08_97 */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_97_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_97_L_0) }, }, - /* VEX_LEN_0FXOP_08_9E */ + /* VEX_LEN_XOP_08_9E */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_9E_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_9E_L_0) }, }, - /* VEX_LEN_0FXOP_08_9F */ + /* VEX_LEN_XOP_08_9F */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_9F_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_9F_L_0) }, }, - /* VEX_LEN_0FXOP_08_A3 */ + /* VEX_LEN_XOP_08_A3 */ { { "vpperm", { XM, Vex, EXx, XMVexI4 }, 0 }, }, - /* VEX_LEN_0FXOP_08_A6 */ + /* VEX_LEN_XOP_08_A6 */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_A6_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_A6_L_0) }, }, - /* VEX_LEN_0FXOP_08_B6 */ + /* VEX_LEN_XOP_08_B6 */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_B6_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_B6_L_0) }, }, - /* VEX_LEN_0FXOP_08_C0 */ + /* VEX_LEN_XOP_08_C0 */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_C0_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_C0_L_0) }, }, - /* VEX_LEN_0FXOP_08_C1 */ + /* VEX_LEN_XOP_08_C1 */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_C1_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_C1_L_0) }, }, - /* VEX_LEN_0FXOP_08_C2 */ + /* VEX_LEN_XOP_08_C2 */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_C2_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_C2_L_0) }, }, - /* VEX_LEN_0FXOP_08_C3 */ + /* VEX_LEN_XOP_08_C3 */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_C3_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_C3_L_0) }, }, - /* VEX_LEN_0FXOP_08_CC */ + /* VEX_LEN_XOP_08_CC */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_CC_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_CC_L_0) }, }, - /* VEX_LEN_0FXOP_08_CD */ + /* VEX_LEN_XOP_08_CD */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_CD_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_CD_L_0) }, }, - /* VEX_LEN_0FXOP_08_CE */ + /* VEX_LEN_XOP_08_CE */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_CE_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_CE_L_0) }, }, - /* VEX_LEN_0FXOP_08_CF */ + /* VEX_LEN_XOP_08_CF */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_CF_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_CF_L_0) }, }, - /* VEX_LEN_0FXOP_08_EC */ + /* VEX_LEN_XOP_08_EC */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_EC_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_EC_L_0) }, }, - /* VEX_LEN_0FXOP_08_ED */ + /* VEX_LEN_XOP_08_ED */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_ED_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_ED_L_0) }, }, - /* VEX_LEN_0FXOP_08_EE */ + /* VEX_LEN_XOP_08_EE */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_EE_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_EE_L_0) }, }, - /* VEX_LEN_0FXOP_08_EF */ + /* VEX_LEN_XOP_08_EF */ { - { VEX_W_TABLE (VEX_W_0FXOP_08_EF_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_08_EF_L_0) }, }, - /* VEX_LEN_0FXOP_09_01 */ + /* VEX_LEN_XOP_09_01 */ { { REG_TABLE (REG_XOP_09_01_L_0) }, }, - /* VEX_LEN_0FXOP_09_02 */ + /* VEX_LEN_XOP_09_02 */ { { REG_TABLE (REG_XOP_09_02_L_0) }, }, - /* VEX_LEN_0FXOP_09_12 */ + /* VEX_LEN_XOP_09_12 */ { { REG_TABLE (REG_XOP_09_12_L_0) }, }, - /* VEX_LEN_0FXOP_09_82_W_0 */ + /* VEX_LEN_XOP_09_82_W_0 */ { { "vfrczss", { XM, EXd }, 0 }, }, - /* VEX_LEN_0FXOP_09_83_W_0 */ + /* VEX_LEN_XOP_09_83_W_0 */ { { "vfrczsd", { XM, EXq }, 0 }, }, - /* VEX_LEN_0FXOP_09_90 */ + /* VEX_LEN_XOP_09_90 */ { { "vprotb", { XM, EXx, VexW }, 0 }, }, - /* VEX_LEN_0FXOP_09_91 */ + /* VEX_LEN_XOP_09_91 */ { { "vprotw", { XM, EXx, VexW }, 0 }, }, - /* VEX_LEN_0FXOP_09_92 */ + /* VEX_LEN_XOP_09_92 */ { { "vprotd", { XM, EXx, VexW }, 0 }, }, - /* VEX_LEN_0FXOP_09_93 */ + /* VEX_LEN_XOP_09_93 */ { { "vprotq", { XM, EXx, VexW }, 0 }, }, - /* VEX_LEN_0FXOP_09_94 */ + /* VEX_LEN_XOP_09_94 */ { { "vpshlb", { XM, EXx, VexW }, 0 }, }, - /* VEX_LEN_0FXOP_09_95 */ + /* VEX_LEN_XOP_09_95 */ { { "vpshlw", { XM, EXx, VexW }, 0 }, }, - /* VEX_LEN_0FXOP_09_96 */ + /* VEX_LEN_XOP_09_96 */ { { "vpshld", { XM, EXx, VexW }, 0 }, }, - /* VEX_LEN_0FXOP_09_97 */ + /* VEX_LEN_XOP_09_97 */ { { "vpshlq", { XM, EXx, VexW }, 0 }, }, - /* VEX_LEN_0FXOP_09_98 */ + /* VEX_LEN_XOP_09_98 */ { { "vpshab", { XM, EXx, VexW }, 0 }, }, - /* VEX_LEN_0FXOP_09_99 */ + /* VEX_LEN_XOP_09_99 */ { { "vpshaw", { XM, EXx, VexW }, 0 }, }, - /* VEX_LEN_0FXOP_09_9A */ + /* VEX_LEN_XOP_09_9A */ { { "vpshad", { XM, EXx, VexW }, 0 }, }, - /* VEX_LEN_0FXOP_09_9B */ + /* VEX_LEN_XOP_09_9B */ { { "vpshaq", { XM, EXx, VexW }, 0 }, }, - /* VEX_LEN_0FXOP_09_C1 */ + /* VEX_LEN_XOP_09_C1 */ { - { VEX_W_TABLE (VEX_W_0FXOP_09_C1_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_09_C1_L_0) }, }, - /* VEX_LEN_0FXOP_09_C2 */ + /* VEX_LEN_XOP_09_C2 */ { - { VEX_W_TABLE (VEX_W_0FXOP_09_C2_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_09_C2_L_0) }, }, - /* VEX_LEN_0FXOP_09_C3 */ + /* VEX_LEN_XOP_09_C3 */ { - { VEX_W_TABLE (VEX_W_0FXOP_09_C3_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_09_C3_L_0) }, }, - /* VEX_LEN_0FXOP_09_C6 */ + /* VEX_LEN_XOP_09_C6 */ { - { VEX_W_TABLE (VEX_W_0FXOP_09_C6_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_09_C6_L_0) }, }, - /* VEX_LEN_0FXOP_09_C7 */ + /* VEX_LEN_XOP_09_C7 */ { - { VEX_W_TABLE (VEX_W_0FXOP_09_C7_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_09_C7_L_0) }, }, - /* VEX_LEN_0FXOP_09_CB */ + /* VEX_LEN_XOP_09_CB */ { - { VEX_W_TABLE (VEX_W_0FXOP_09_CB_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_09_CB_L_0) }, }, - /* VEX_LEN_0FXOP_09_D1 */ + /* VEX_LEN_XOP_09_D1 */ { - { VEX_W_TABLE (VEX_W_0FXOP_09_D1_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_09_D1_L_0) }, }, - /* VEX_LEN_0FXOP_09_D2 */ + /* VEX_LEN_XOP_09_D2 */ { - { VEX_W_TABLE (VEX_W_0FXOP_09_D2_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_09_D2_L_0) }, }, - /* VEX_LEN_0FXOP_09_D3 */ + /* VEX_LEN_XOP_09_D3 */ { - { VEX_W_TABLE (VEX_W_0FXOP_09_D3_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_09_D3_L_0) }, }, - /* VEX_LEN_0FXOP_09_D6 */ + /* VEX_LEN_XOP_09_D6 */ { - { VEX_W_TABLE (VEX_W_0FXOP_09_D6_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_09_D6_L_0) }, }, - /* VEX_LEN_0FXOP_09_D7 */ + /* VEX_LEN_XOP_09_D7 */ { - { VEX_W_TABLE (VEX_W_0FXOP_09_D7_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_09_D7_L_0) }, }, - /* VEX_LEN_0FXOP_09_DB */ + /* VEX_LEN_XOP_09_DB */ { - { VEX_W_TABLE (VEX_W_0FXOP_09_DB_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_09_DB_L_0) }, }, - /* VEX_LEN_0FXOP_09_E1 */ + /* VEX_LEN_XOP_09_E1 */ { - { VEX_W_TABLE (VEX_W_0FXOP_09_E1_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_09_E1_L_0) }, }, - /* VEX_LEN_0FXOP_09_E2 */ + /* VEX_LEN_XOP_09_E2 */ { - { VEX_W_TABLE (VEX_W_0FXOP_09_E2_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_09_E2_L_0) }, }, - /* VEX_LEN_0FXOP_09_E3 */ + /* VEX_LEN_XOP_09_E3 */ { - { VEX_W_TABLE (VEX_W_0FXOP_09_E3_L_0) }, + { VEX_W_TABLE (VEX_W_XOP_09_E3_L_0) }, }, - /* VEX_LEN_0FXOP_0A_12 */ + /* VEX_LEN_XOP_0A_12 */ { { REG_TABLE (REG_XOP_0A_12_L_0) }, }, @@ -7674,175 +7674,175 @@ static const struct dis386 vex_w_table[] { Bad_Opcode }, { "%XEvgf2p8affineinvqb", { XM, Vex, EXx, Ib }, PREFIX_DATA }, }, - /* VEX_W_0FXOP_08_85_L_0 */ + /* VEX_W_XOP_08_85_L_0 */ { { "vpmacssww", { XM, Vex, EXx, XMVexI4 }, 0 }, }, - /* VEX_W_0FXOP_08_86_L_0 */ + /* VEX_W_XOP_08_86_L_0 */ { { "vpmacsswd", { XM, Vex, EXx, XMVexI4 }, 0 }, }, - /* VEX_W_0FXOP_08_87_L_0 */ + /* VEX_W_XOP_08_87_L_0 */ { { "vpmacssdql", { XM, Vex, EXx, XMVexI4 }, 0 }, }, - /* VEX_W_0FXOP_08_8E_L_0 */ + /* VEX_W_XOP_08_8E_L_0 */ { { "vpmacssdd", { XM, Vex, EXx, XMVexI4 }, 0 }, }, - /* VEX_W_0FXOP_08_8F_L_0 */ + /* VEX_W_XOP_08_8F_L_0 */ { { "vpmacssdqh", { XM, Vex, EXx, XMVexI4 }, 0 }, }, - /* VEX_W_0FXOP_08_95_L_0 */ + /* VEX_W_XOP_08_95_L_0 */ { { "vpmacsww", { XM, Vex, EXx, XMVexI4 }, 0 }, }, - /* VEX_W_0FXOP_08_96_L_0 */ + /* VEX_W_XOP_08_96_L_0 */ { { "vpmacswd", { XM, Vex, EXx, XMVexI4 }, 0 }, }, - /* VEX_W_0FXOP_08_97_L_0 */ + /* VEX_W_XOP_08_97_L_0 */ { { "vpmacsdql", { XM, Vex, EXx, XMVexI4 }, 0 }, }, - /* VEX_W_0FXOP_08_9E_L_0 */ + /* VEX_W_XOP_08_9E_L_0 */ { { "vpmacsdd", { XM, Vex, EXx, XMVexI4 }, 0 }, }, - /* VEX_W_0FXOP_08_9F_L_0 */ + /* VEX_W_XOP_08_9F_L_0 */ { { "vpmacsdqh", { XM, Vex, EXx, XMVexI4 }, 0 }, }, - /* VEX_W_0FXOP_08_A6_L_0 */ + /* VEX_W_XOP_08_A6_L_0 */ { { "vpmadcsswd", { XM, Vex, EXx, XMVexI4 }, 0 }, }, - /* VEX_W_0FXOP_08_B6_L_0 */ + /* VEX_W_XOP_08_B6_L_0 */ { { "vpmadcswd", { XM, Vex, EXx, XMVexI4 }, 0 }, }, - /* VEX_W_0FXOP_08_C0_L_0 */ + /* VEX_W_XOP_08_C0_L_0 */ { { "vprotb", { XM, EXx, Ib }, 0 }, }, - /* VEX_W_0FXOP_08_C1_L_0 */ + /* VEX_W_XOP_08_C1_L_0 */ { { "vprotw", { XM, EXx, Ib }, 0 }, }, - /* VEX_W_0FXOP_08_C2_L_0 */ + /* VEX_W_XOP_08_C2_L_0 */ { { "vprotd", { XM, EXx, Ib }, 0 }, }, - /* VEX_W_0FXOP_08_C3_L_0 */ + /* VEX_W_XOP_08_C3_L_0 */ { { "vprotq", { XM, EXx, Ib }, 0 }, }, - /* VEX_W_0FXOP_08_CC_L_0 */ + /* VEX_W_XOP_08_CC_L_0 */ { { "vpcomb", { XM, Vex, EXx, VPCOM }, 0 }, }, - /* VEX_W_0FXOP_08_CD_L_0 */ + /* VEX_W_XOP_08_CD_L_0 */ { { "vpcomw", { XM, Vex, EXx, VPCOM }, 0 }, }, - /* VEX_W_0FXOP_08_CE_L_0 */ + /* VEX_W_XOP_08_CE_L_0 */ { { "vpcomd", { XM, Vex, EXx, VPCOM }, 0 }, }, - /* VEX_W_0FXOP_08_CF_L_0 */ + /* VEX_W_XOP_08_CF_L_0 */ { { "vpcomq", { XM, Vex, EXx, VPCOM }, 0 }, }, - /* VEX_W_0FXOP_08_EC_L_0 */ + /* VEX_W_XOP_08_EC_L_0 */ { { "vpcomub", { XM, Vex, EXx, VPCOM }, 0 }, }, - /* VEX_W_0FXOP_08_ED_L_0 */ + /* VEX_W_XOP_08_ED_L_0 */ { { "vpcomuw", { XM, Vex, EXx, VPCOM }, 0 }, }, - /* VEX_W_0FXOP_08_EE_L_0 */ + /* VEX_W_XOP_08_EE_L_0 */ { { "vpcomud", { XM, Vex, EXx, VPCOM }, 0 }, }, - /* VEX_W_0FXOP_08_EF_L_0 */ + /* VEX_W_XOP_08_EF_L_0 */ { { "vpcomuq", { XM, Vex, EXx, VPCOM }, 0 }, }, - /* VEX_W_0FXOP_09_80 */ + /* VEX_W_XOP_09_80 */ { { "vfrczps", { XM, EXx }, 0 }, }, - /* VEX_W_0FXOP_09_81 */ + /* VEX_W_XOP_09_81 */ { { "vfrczpd", { XM, EXx }, 0 }, }, - /* VEX_W_0FXOP_09_82 */ + /* VEX_W_XOP_09_82 */ { - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_82_W_0) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_82_W_0) }, }, - /* VEX_W_0FXOP_09_83 */ + /* VEX_W_XOP_09_83 */ { - { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_83_W_0) }, + { VEX_LEN_TABLE (VEX_LEN_XOP_09_83_W_0) }, }, - /* VEX_W_0FXOP_09_C1_L_0 */ + /* VEX_W_XOP_09_C1_L_0 */ { { "vphaddbw", { XM, EXxmm }, 0 }, }, - /* VEX_W_0FXOP_09_C2_L_0 */ + /* VEX_W_XOP_09_C2_L_0 */ { { "vphaddbd", { XM, EXxmm }, 0 }, }, - /* VEX_W_0FXOP_09_C3_L_0 */ + /* VEX_W_XOP_09_C3_L_0 */ { { "vphaddbq", { XM, EXxmm }, 0 }, }, - /* VEX_W_0FXOP_09_C6_L_0 */ + /* VEX_W_XOP_09_C6_L_0 */ { { "vphaddwd", { XM, EXxmm }, 0 }, }, - /* VEX_W_0FXOP_09_C7_L_0 */ + /* VEX_W_XOP_09_C7_L_0 */ { { "vphaddwq", { XM, EXxmm }, 0 }, }, - /* VEX_W_0FXOP_09_CB_L_0 */ + /* VEX_W_XOP_09_CB_L_0 */ { { "vphadddq", { XM, EXxmm }, 0 }, }, - /* VEX_W_0FXOP_09_D1_L_0 */ + /* VEX_W_XOP_09_D1_L_0 */ { { "vphaddubw", { XM, EXxmm }, 0 }, }, - /* VEX_W_0FXOP_09_D2_L_0 */ + /* VEX_W_XOP_09_D2_L_0 */ { { "vphaddubd", { XM, EXxmm }, 0 }, }, - /* VEX_W_0FXOP_09_D3_L_0 */ + /* VEX_W_XOP_09_D3_L_0 */ { { "vphaddubq", { XM, EXxmm }, 0 }, }, - /* VEX_W_0FXOP_09_D6_L_0 */ + /* VEX_W_XOP_09_D6_L_0 */ { { "vphadduwd", { XM, EXxmm }, 0 }, }, - /* VEX_W_0FXOP_09_D7_L_0 */ + /* VEX_W_XOP_09_D7_L_0 */ { { "vphadduwq", { XM, EXxmm }, 0 }, }, - /* VEX_W_0FXOP_09_DB_L_0 */ + /* VEX_W_XOP_09_DB_L_0 */ { { "vphaddudq", { XM, EXxmm }, 0 }, }, - /* VEX_W_0FXOP_09_E1_L_0 */ + /* VEX_W_XOP_09_E1_L_0 */ { { "vphsubbw", { XM, EXxmm }, 0 }, }, - /* VEX_W_0FXOP_09_E2_L_0 */ + /* VEX_W_XOP_09_E2_L_0 */ { { "vphsubwd", { XM, EXxmm }, 0 }, }, - /* VEX_W_0FXOP_09_E3_L_0 */ + /* VEX_W_XOP_09_E3_L_0 */ { { "vphsubdq", { XM, EXxmm }, 0 }, }, From patchwork Tue Jul 4 15:24:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 115836 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f45:0:b0:3ea:f831:8777 with SMTP id v5csp1299683vqx; Tue, 4 Jul 2023 08:27:34 -0700 (PDT) X-Google-Smtp-Source: APBJJlE3O+knOu8NRKvs4R23lO+V1YxXEmKQwf38wuoTWucjB9CAKW73sj+MeWP1fkHnKd3foGBE X-Received: by 2002:a2e:9bd6:0:b0:2b4:45bc:7bd with SMTP id w22-20020a2e9bd6000000b002b445bc07bdmr9891130ljj.4.1688484454121; Tue, 04 Jul 2023 08:27:34 -0700 (PDT) Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id w26-20020a17090652da00b00992ad8595fdsi6570913ejn.464.2023.07.04.08.27.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jul 2023 08:27:34 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b="JgH/KOpi"; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D967D3853D03 for ; Tue, 4 Jul 2023 15:25:19 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D967D3853D03 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688484319; bh=Z4wchasqhlScTh17R7+2lVjbAUjvjoqQ59B7QVrMlRk=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=JgH/KOpil5jarZ0ns3IJTKsfmsBEJV7JTGVuUnM7NQHseoqxy7uB2tshzpV5S9Ad8 x9fb9yJyRQhxrpaEfbXs/Yo1fplt3UYUrWUg4H9YnpN8Lru5G4PU0vLKXOO3Mhm4AH APAbaOqYBGfwDgnRqR1aM6SRidr6PCEmtAp1SV5g= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2083.outbound.protection.outlook.com [40.107.6.83]) by sourceware.org (Postfix) with ESMTPS id 3F0AB38555B3 for ; Tue, 4 Jul 2023 15:24:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3F0AB38555B3 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FExeVuorlGQc4Sqa4LY/kfnwp1MOClIHOervlrRJPbrng8DmP+zHkZMpize73dBopvEUw+fwdKiToGT4aHz4fQXdeWj+IcolEOB713jN6/ZJimUZASsRiCqk6gk99uCv0LUEatCvCaz7rUOeUUzPFrzLi6fYsXlxUMFl4K3VGn82JKxoTmUV9OeciKRcs4+kn4Fadw7VfCZeIddlzwRG0j9+BOMOG1P0f254ODlaRPhNyFOlj6SGMgD+2+FefqAk2X0rw1Ib4PPDed84sdqtBtPADCVkWWgW9hp0RbgHtBR1Uh+MEsBTFHFPNyeQs/hSXVNlUortqp9MJv90aset1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Z4wchasqhlScTh17R7+2lVjbAUjvjoqQ59B7QVrMlRk=; b=YExIR89mNzAq/G/h3uGfMQqpclNCqAQef+v/ffXnuGb3TXgUUG48o16fGQ2LYthBjDopOIBftjlFUxILACyoY787ye1ZFNzx54iYAwdTcQFZurPRTyfC2wgZ+YO/r92cgksJCJHrkYBhEIlPJEprDhRUz+xLHWRZFBBLfhOqq9EylWRpaVxGpd4VeMJTlZ+2+tATYF2n9yNHeqEK/8JShpg03EMaJxbeOMbBPwNOiAoYe+naXg89WG4r0b0OHGR7Tcho1uvUdx9xOPGc5pAIKnAk2+IUHWAFsTEZ9FSxwxLIU+TBhe4DZOTNyk2kIYIWU3VebyDboLuA+/GPtf8yHg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by PA4PR04MB9269.eurprd04.prod.outlook.com (2603:10a6:102:2a4::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Tue, 4 Jul 2023 15:24:01 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880%4]) with mapi id 15.20.6544.024; Tue, 4 Jul 2023 15:24:01 +0000 Message-ID: <126aeaee-40ae-34aa-5e30-9579264d6336@suse.com> Date: Tue, 4 Jul 2023 17:24:08 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: [PATCH 10/10] x86: simplify table-referencing macros Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: In-Reply-To: X-ClientProxiedBy: FR3P281CA0138.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:95::17) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PA4PR04MB9269:EE_ X-MS-Office365-Filtering-Correlation-Id: 5603c626-7909-4d76-cd72-08db7ca2b1cf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HtJvd596oVbSehl9jHjI+RQ0NeqP6is+LJ32o7LdbiRa8lCIzdMBh7ZvVcci45fUVJJTScowaUL728iZ84iQcPXG2EtkSNJ1pbB5F6tHYap3zANzHsZslRe3nfWk1pnSspgzwxX40q8jyr3C8QFsOhxM1vmgnQJzZ1Nr0+Up+XdRyk127eZnXmA9oP4V3hl6kHWMqjuDX3a1yke7PNgEEjpeCATxKb0VaiYvv7hzNb1JyGfP7MoanFHsAeqqBkJAXlf3jIT1onSE49aThddE/oi/71WkyBDoM029H8PUfi7xDHGNLw6/jNRewVBByn9JQfWHU0PcKrcglRKYtwARmujeRkLR1DI3b+d7iIyZKJbo/iyhJiMlB4MyY53MIlPCcJzov1J73GRC4JUQXutuqDja6crjtPT+Pvh6uaP7GTsGFyHHcA1+MgmnUoxwBO8Xr7kQdQ761QQCQaEr/rKXwC9dEa1QIU73MtRRQBVpn6T5V638cLe1XCJQQIL7UVuXbfGQSrFgikV85WARr5/PmEDE+MyBL6B67BmoIbcTS5mpFbCxS5OGnm2nGGYipgVfn79cQtXbBcgPy5r2Mu9OfMScpenCr/L4bAuoqZPHXUn8RMYkbNA8cVAa2R7bYN26dhTh2Qp9tvpJq85MOcurAw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU2PR04MB8790.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(376002)(39850400004)(346002)(136003)(396003)(366004)(451199021)(26005)(31686004)(478600001)(6512007)(6506007)(31696002)(86362001)(2616005)(186003)(38100700002)(66476007)(6916009)(66556008)(4326008)(66946007)(6486002)(316002)(8676002)(8936002)(41300700001)(2906002)(5660300002)(36756003)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?hjz05rWAYhWjAHAQ0qdqNEhxIiri?= =?utf-8?q?uGmz8YrNhTsa4hiFmYLXW9CNAdaTwFmXnuBtXE25NllVIG8gizbjCJQmHRbTA9Wa/?= =?utf-8?q?LBAFypzjjbyXQuD74fV5pFQfYNttdKe3ov/IzfvH9rf3qq8gh9MYZKADYWj6KRCpr?= =?utf-8?q?BsaTWB9ecmVvlSHjHzVyckB3/8yWbFiqKXJhqybaM2V6yuiB9GSRxsfULm9hmz5en?= =?utf-8?q?/dLwHbPzSKXDIqu8wWgLJlKi/vibtMZoiOU6ngmuGbTjgNlUDYpRpS18LnWWiS3dp?= =?utf-8?q?2E0pTIBRLsSMqZtPLlAaYHHIhMSFGcs4f+XILrCZdvNTwmkcR74oDne+47qIVvWn4?= =?utf-8?q?e4sjKxsBKX115BX0BoQM0esMABZOS4PPvD+WFfCyMWipUcq6ekJexnn6QUkBX+1Vk?= =?utf-8?q?Vyrl5Cx1qGlj+r6xauQT8Q03G/T6TF+im9aiq4dKd6YQDw1ng12NCcnwrswVEf347?= =?utf-8?q?aSGEPr0N7sq33paVSDKCNoPDK/dkT8qBjfGSUL+xfz+F4VX6IFASPbDWg9dcUCZFT?= =?utf-8?q?vs/EwgS4BuJWgN92lfe7GpZMOKglQoc3s1himbiVGJ1sndj+dPwf3t750vtX8K0DO?= =?utf-8?q?xrOkFjGw1hVpmm3zHY+IpiW5vWOHyORs0KtnLbkm7dTtapNhUnOKfkqiMSZ6DJxRy?= =?utf-8?q?bUb0UmXCQMZ1zjcO0y/CusIw3fibB8AzdgxZDEdekgWgcNUdTRXVwcMRmQKSMSwNX?= =?utf-8?q?25f5i2+7q7gXCvbXt6dvgVE5lq7FG1ZjaSlXOor1jLPHFroVRtBk7/GI8p2w367ic?= =?utf-8?q?yeqzE8OwDa/dUU66kxelSd7LYx1fJgInD7uxxNijm+T00e9LDyH8NylZ3Ndx2EBNZ?= =?utf-8?q?99DQ82V6cMcw0hhbaArMyb8gOQN12onCC/sOXNB0xA8Nsf0ge1tZwTnxSybFZYkwi?= =?utf-8?q?5CRg/gTGxRtq80K3lfryC3a7GJ6qB1JH5ExQTB3HVh5QlIBmbuT53EjvWAHOKZah4?= =?utf-8?q?byeiRXs8+F6N0h0dJ/8wTUTnxRAmGDEjyqXOQRgILXL8QTKrqNFuZ5evODu7nGl+q?= =?utf-8?q?DtFlTVH6hufnSmSTr8GJerkscC33R7nAwo5gMuZlW62912lo9QMR8HwRHa67sBNeQ?= =?utf-8?q?BOSDlj8CzEQaK53BH41jkO2x0ToyZzvZM9liCKcNTcNSdL5SPqCWck031tSTsV9Pc?= =?utf-8?q?+defYg7ME5XwTxrRF+vUcuIA/jPGgTXJUrY006MGjPNrC9IqnvmisfSTmO4zrwDp1?= =?utf-8?q?6f7KNYgwI9IjpprsuC+JvJwgyq2pzCwqNwz+LtBwjEMVQVeLNwIx4a7xhJPlCJgML?= =?utf-8?q?LFAzjO4XiPaP6fwAxcX8YAwduIb/RlKUzeLwcDTEUkBKouo6rO5SbfKL1TVfnFkGI?= =?utf-8?q?U3Rd9D+OKpZGDBFRaWYSrp+c7Unu6n14iidqwjPN0ZBG43Qd/Y8gC2XU1tWxxyeDU?= =?utf-8?q?buMa9qLlBKD2UPjRo1SD7JJl5PQwCmUm2yUFhhB/t3W4wbpd6bbawkYIzMU8p9D2M?= =?utf-8?q?Rys8ISIXkordKeHl5p/PUhaoeam11l8ws6SxWfqnDimE5EoA1unwLUjmXTB8wDZGP?= =?utf-8?q?b+pKrubUSlur?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5603c626-7909-4d76-cd72-08db7ca2b1cf X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2023 15:24:01.4283 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: mXzyk5l+wiwRSrl6apzqilqtvh+AuM4PXuLDEFgRal8+2r/u7pPRGeMT4z6Zpz9y7BOCHcMAiLz4xt3JzheerA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB9269 X-Spam-Status: No, score=-3027.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770504275035963814?= X-GMAIL-MSGID: =?utf-8?q?1770504275035963814?= First of all it is entirely unclear why THREE_BYTE_TABLE_PREFIX() was introduced by bf890a93a7c4. Nothing uses the .prefix_requirement values from the two relevant entries. And then having VEX_Cn_TABLE() and friends take arguments is misleading. These aren't used (or pointlessly used in the case of VEX_C5_TABLE); the respective table index is decoded from the insn (or implied in the case of VEX_C5_TABLE). --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -789,20 +789,18 @@ enum #define FLOAT NULL, { { NULL, FLOATCODE } }, 0 #define DIS386(T, I) NULL, { { NULL, (T)}, { NULL, (I) } }, 0 -#define DIS386_PREFIX(T, I, P) NULL, { { NULL, (T)}, { NULL, (I) } }, P #define REG_TABLE(I) DIS386 (USE_REG_TABLE, (I)) #define MOD_TABLE(I) DIS386 (USE_MOD_TABLE, (I)) #define RM_TABLE(I) DIS386 (USE_RM_TABLE, (I)) #define PREFIX_TABLE(I) DIS386 (USE_PREFIX_TABLE, (I)) #define X86_64_TABLE(I) DIS386 (USE_X86_64_TABLE, (I)) #define THREE_BYTE_TABLE(I) DIS386 (USE_3BYTE_TABLE, (I)) -#define THREE_BYTE_TABLE_PREFIX(I, P) DIS386_PREFIX (USE_3BYTE_TABLE, (I), P) -#define XOP_8F_TABLE(I) DIS386 (USE_XOP_8F_TABLE, (I)) -#define VEX_C4_TABLE(I) DIS386 (USE_VEX_C4_TABLE, (I)) -#define VEX_C5_TABLE(I) DIS386 (USE_VEX_C5_TABLE, (I)) +#define XOP_8F_TABLE() DIS386 (USE_XOP_8F_TABLE, 0) +#define VEX_C4_TABLE() DIS386 (USE_VEX_C4_TABLE, 0) +#define VEX_C5_TABLE() DIS386 (USE_VEX_C5_TABLE, 0) #define VEX_LEN_TABLE(I) DIS386 (USE_VEX_LEN_TABLE, (I)) #define VEX_W_TABLE(I) DIS386 (USE_VEX_W_TABLE, (I)) -#define EVEX_TABLE(I) DIS386 (USE_EVEX_TABLE, (I)) +#define EVEX_TABLE() DIS386 (USE_EVEX_TABLE, 0) #define EVEX_LEN_TABLE(I) DIS386 (USE_EVEX_LEN_TABLE, (I)) enum @@ -2081,9 +2079,9 @@ static const struct dis386 dis386_twobyt { Bad_Opcode }, { "getsec", { XX }, 0 }, /* 38 */ - { THREE_BYTE_TABLE_PREFIX (THREE_BYTE_0F38, PREFIX_OPCODE) }, + { THREE_BYTE_TABLE (THREE_BYTE_0F38) }, { Bad_Opcode }, - { THREE_BYTE_TABLE_PREFIX (THREE_BYTE_0F3A, PREFIX_OPCODE) }, + { THREE_BYTE_TABLE (THREE_BYTE_0F3A) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -2493,11 +2491,11 @@ static const struct dis386 reg_table[][8 /* REG_8F */ { { "pop{P|}", { stackEv }, 0 }, - { XOP_8F_TABLE (XOP_09) }, + { XOP_8F_TABLE () }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { XOP_8F_TABLE (XOP_09) }, + { XOP_8F_TABLE () }, }, /* REG_C0 */ { @@ -4016,7 +4014,7 @@ static const struct dis386 x86_64_table[ /* X86_64_62 */ { { MOD_TABLE (MOD_62_32BIT) }, - { EVEX_TABLE (EVEX_0F) }, + { EVEX_TABLE () }, }, /* X86_64_63 */ @@ -4063,13 +4061,13 @@ static const struct dis386 x86_64_table[ /* X86_64_C4 */ { { MOD_TABLE (MOD_C4_32BIT) }, - { VEX_C4_TABLE (VEX_0F) }, + { VEX_C4_TABLE () }, }, /* X86_64_C5 */ { { MOD_TABLE (MOD_C5_32BIT) }, - { VEX_C5_TABLE (VEX_0F) }, + { VEX_C5_TABLE () }, }, /* X86_64_CE */ @@ -7854,17 +7852,17 @@ static const struct dis386 mod_table[][2 { /* MOD_62_32BIT */ { "bound{S|}", { Gv, Ma }, 0 }, - { EVEX_TABLE (EVEX_0F) }, + { EVEX_TABLE () }, }, { /* MOD_C4_32BIT */ { "lesS", { Gv, Mp }, 0 }, - { VEX_C4_TABLE (VEX_0F) }, + { VEX_C4_TABLE () }, }, { /* MOD_C5_32BIT */ { "ldsS", { Gv, Mp }, 0 }, - { VEX_C5_TABLE (VEX_0F) }, + { VEX_C5_TABLE () }, }, { /* MOD_0F01_REG_0 */ @@ -8710,7 +8708,7 @@ get_valid_dis386 (const struct dis386 *d ins->need_vex = 2; ins->codep++; vindex = *ins->codep++; - dp = &vex_table[dp->op[1].bytemode][vindex]; + dp = &vex_table[VEX_0F][vindex]; ins->end_codep = ins->codep; /* There is no MODRM byte for VEX 77. */ if (vindex != 0x77 && !fetch_modrm (ins))