From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) by sourceware.org (Postfix) with ESMTPS id B3B9F389851E for ; Wed, 21 Jul 2021 10:18:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B3B9F389851E Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2059.outbound.protection.outlook.com [104.47.14.59]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-27-TKqUDmQhNz6Zj1UlG9ruWQ-1; Wed, 21 Jul 2021 12:18:39 +0200 X-MC-Unique: TKqUDmQhNz6Zj1UlG9ruWQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=czbLM0ZWR4aUIu29ou37U9ZoO2+O6JHrsRcItaQV6th4yEfcnbM6xCg7LfNekx6IOBAfHok+shgqXUa5ERrKyegXFHnKwyHXzXQguynjWcJvLPAmovwNyTNKX+w4kR0mJLBay8PwcNqMwcEKp7ZHK3bFPFY3zKrRiMQSftXwZJV5HkdqKETI5CAa7Iheo1Z8UnchXHpxUX4vMohiEhqw1DGniX+AsvJ+BgVlYgSk7izOxOsOTXAHXIfSTNmqSNrEV5JoH3xzSUU89Muli6M0Jm5hP21uSYRisZSyZb9+Mo7VXHCxUMOgExVhNZnGvEF07COx2gbqWHRAed4OSyAszA== 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-SenderADCheck; bh=qT5xclXOYw3+JsHBSwM6ZJZHXY3Q3cFjl0YhgiCOBeY=; b=aq36N/3flPhIc3LRN8cHTr1ee6azxP1HKe4sdxgJ3nH1AhPIdq2wlt6rySgKmvQozxix4NTB75YS2m9gCnWapcGodwOEFJkOAM2/DyZPcy8IdiH7i5ctFhufrKS+XCcbRn0p8nCtQPJwPq4+bOfsgSc7RhAfjYeYi4tWpaoyBY5wTxNdMKX2hT3ck1nU8fE3wCk6u3uL6hNeXV5ptH9vBRhXhVxqq8yBXt5IDo6DI7rTB/ATXIFW0P1CiSsenBFHtIAnlzpKYxU+mFgwHP557LTgoR6ImopUDCPEf2e2okD7hhf9RgO+9ydnrYIUKyYlhuTKYmbbPOFl0UgMKIJ7rw== 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 VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VE1PR04MB6669.eurprd04.prod.outlook.com (2603:10a6:803:125::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.29; Wed, 21 Jul 2021 10:18:38 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::99d3:99cd:8adf:3eea]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::99d3:99cd:8adf:3eea%5]) with mapi id 15.20.4331.034; Wed, 21 Jul 2021 10:18:38 +0000 Subject: [PATCH 01/12] x86: drop OP_Mask() To: Binutils References: <286bff10-f2d7-e1f5-e171-17565a143ced@suse.com> From: Jan Beulich Message-ID: <128d6e60-3fd9-ed03-4b97-d1b52cf6c754@suse.com> Date: Wed, 21 Jul 2021 12:18:36 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.12.0 In-Reply-To: <286bff10-f2d7-e1f5-e171-17565a143ced@suse.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-ClientProxiedBy: AM0PR04CA0011.eurprd04.prod.outlook.com (2603:10a6:208:122::24) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [10.156.60.236] (37.24.206.209) by AM0PR04CA0011.eurprd04.prod.outlook.com (2603:10a6:208:122::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4352.24 via Frontend Transport; Wed, 21 Jul 2021 10:18:37 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bd2571d5-1473-4fd5-8b00-08d94c30e7b5 X-MS-TrafficTypeDiagnostic: VE1PR04MB6669: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3968; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: b8aopM8zm/S/U9825YHuxnhJWubBQChuMN1u3eGPVQ2Zc3C/ccZ53JBjRQ+ClmW15koix4kw32KYT3WEKRqsNvLGevoMxnf0t/clmE8nn6EXucL+vgT2wTMSx9NRaiz3saX785bmGIRxsYzqTu/85JehlXe8PN/V9fjefCVzO5sfoN3ZpKr2JXoaGNre/uvmsBrp6qPRUbRXRJKUUhcrLkniEIh2/FLAHasRT2mg69X0D6YPVL+adKoeFVteY+cFxcfj9MVKBlaFE36h0RZIx3vQoi9vsnJPf+tTt531KbnRBmHp6wKXfDI12zEEB8TwwFiaqrcz5OggoJjwvi4EBcUIzHKSZaFCF0i5gIFl7k0mSlQ8/1wj3E04HzAn3KE8iAl3WrSn2fDLH+UQtwLxHpScjkyEJgr2pZtjYN9eKPDUpbAK3Kka8qZ8yi56dov7fGwdj1wZH09MHEkUye06qX1tPGmO4JAYp5vvoja0gTwE0h3iC/Ed8wgoOd+LHY+23b9OEd3Uhz3r2RMZPHTX422JFxZHl1lDckjXPfL1Y7e0WOLI5ypOjiuFKZT7U3zmKv0I4OOW/Tq/YzIUSylaWyB5EzKB2P5JMGrM6XlfhBfBBeTc7f7QaY/pPMOI4tefsbwMd+Iieb0tPW+UOvJTRh2yG10va0PPaVR6FRJy0bxBoc5RXDBGwyKvSTrlqWV/MdUYSqZCdQJhI7TIiR/flNncMKMSOyRKGXbV9YQoV0PA9IiaqDMuThUzxRvdbeVv X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB5600.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(346002)(396003)(39860400002)(376002)(366004)(136003)(186003)(66556008)(2616005)(4326008)(5660300002)(66476007)(31686004)(6916009)(38100700002)(66946007)(316002)(16576012)(86362001)(8936002)(26005)(2906002)(36756003)(6486002)(956004)(8676002)(478600001)(31696002)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YVRGRVg4aVVOeWRDVUlha2R6OGFqcklXRmdMbDdKNzJyMU0rSEUzR2NMUG4x?= =?utf-8?B?RmlHYTNDSGx6aU5Ta3FZck9lUEZKbDRwTTlnNTR5bkcwVnZuL0tQRTFKZ0FF?= =?utf-8?B?YjZzTjJqVXNMZU5BK1BMelZ4RGFBM0Z6R2dVb05MWG8rKzlUcWFSWHBZelBM?= =?utf-8?B?ZndtQ0xVajJudjd4ZURwU0NUbkZRcFpvUSs2UC8rOVNGVDB0RThvTDFIRVFk?= =?utf-8?B?K2tMNyt2SjJZWktQREtaNFYyMTBIZWRUY1VzNUtkQllGdTJSTTVCbHdvZVVU?= =?utf-8?B?aFYxTXplazA0cWNrMlJQMHIxUWVQa2tjdlEwNXkwbXFINm1JNnhmYmJBTFZZ?= =?utf-8?B?T3U2TUpNWE9pQy9vNURWQUNma2U1NW1TUFdVMWVuOEMzTUhwK0lBNUVFd3RZ?= =?utf-8?B?eU1hbFJ2eVdOQXFhaTQ4UFpya0Y5bzkvVUZzVHRTTGllb2F5Z2VhOXV2QitX?= =?utf-8?B?WnBvaGdwZ0NHN0dlOXJzVk4weHM5dytjZGR6VTk1TmdNNERDQ3cyQjdoTnVp?= =?utf-8?B?Y3FPZEJqR1FodG9sT2l1VE4yMVpyL1hnaHdkZUJFM3ZlVE9qek9vZENGQ29v?= =?utf-8?B?WGwwRVRzbTRybDRnZW5aNW1XZmxGUVZuSE8wSy9kZFVRT0N1OEgwNkYwSTZh?= =?utf-8?B?RWVJNDM5Qy9zTC9qNFBWd2tFc1praEpvdkZNVHp4ZzZtNlVrbnMrZWRQVGZL?= =?utf-8?B?bVN3MHhzend4eVBBdU1sdmdZeE9CRjA3UW83bzBnRUlOUG1iUlo5TER1Q0sv?= =?utf-8?B?Ly9qaVZLSFZyZXgzbjRkN0RKZmVwZS8rbXo1S2IyT0xmVFZHdy9xcnZOYjJl?= =?utf-8?B?TndLQ2Nyb1lMajZWM3dUR25rS1ozSTMxZDczdDlpNVVsUk1STFplTDJ0QjBj?= =?utf-8?B?NjZSRnYvbDJLRENSTGJoTE5Mcmt0YVZHZEloUzRSWTlOeGdMczdLMUFSb1RW?= =?utf-8?B?T3BQWkNTeUY3N1NlNWFGbnM0d3g1bDhDdjA0bGJSMVZpaFdXVnhSRnY3ei9H?= =?utf-8?B?NThaUHBqaXl6b090a0tZSE1XU2ZFZlFUQnc1VUwxeHpUcDd2N241THZlMzB5?= =?utf-8?B?T2liRDc3NjIwSVhuMmJvTStoN2svVXYzbjk5MjlkY0k1dXczVElYR1l1Z2ZO?= =?utf-8?B?OFJrai9YRTE1U3REa3pvcHlkdEtrRHlVZEJ0SjFjRXNhQjhHZDJoaGtLTmt6?= =?utf-8?B?Yy9SUlkrTmlONDBQRUpLbFFhZm1Sc204ZFdMbE1oRnZPZXA1dkpSbVNCQzVW?= =?utf-8?B?bDdFbkhkdGZENEMwcG8rbFpEUHN4V1Zhb0x1UlRTR3lHQkg1VTdmcm5mR2cw?= =?utf-8?B?eWh2SFQ5NmRKZjRDVGR0NWR3aE5PNUVGNkRwcDZDbHI5cThMSEJnV1pQU09a?= =?utf-8?B?bFJqL1NNS0Y1aTNwVWhZM2lWMnpvWnc1YmpvRkF0K2lzOUE3MStvandXZzBX?= =?utf-8?B?WXZseDF1UlBpT241cTVZZFU5TkdtNW9YcVVkV09EaUxEcXlIUFd3SjIwQmFi?= =?utf-8?B?MmxYTVJueDFKMkZjLzUxSWtrbGgzSEx3OU1uOGdYZkcwOHZtN1ZvQ2tBTTZ3?= =?utf-8?B?RUdPNFJrbU5QcysvTUVsb0dXaHdhaGFjUGxFaXVLb0JpUkJiQ2NhZXRCOHFP?= =?utf-8?B?NndwNVNDWUQyRlFRcEp4QWY5b0FoaTZKQjBtUTJwWlZ5NU1uUi80eG5IRndy?= =?utf-8?B?Tlh5TFpoUE9VRXpTbEpaa1dDc3RxSEFnL1J1L1N4c0NEV1dodEdwOHBRcU1r?= =?utf-8?Q?ctPO850LjdaR/Fk8XaRnjJjTMtGIo+O8Vrawjnf?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: bd2571d5-1473-4fd5-8b00-08d94c30e7b5 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jul 2021 10:18:38.0131 (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: FLFti6iXKm7ODD7ftug5qpbTw2HuxkXibT/ZQPqkOXdXLO7tEtoayGlrJsOlSFcX/SXfsF6I67+WvF8j+X0v5w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6669 X-Spam-Status: No, score=-3021.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP, UNWANTED_LANGUAGE_BODY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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-List-Received-Date: Wed, 21 Jul 2021 10:18:46 -0000 By moving its vex.r check there it becomes fully redundant with OP_G(). --- a/opcodes/i386-dis-evex-prefix.h +++ b/opcodes/i386-dis-evex-prefix.h @@ -151,9 +151,9 @@ }, /* PREFIX_EVEX_0FC2 */ { - { "vcmppX", { XMask, Vex, EXx, EXxEVexS, CMP }, PREFIX_OPCODE }, + { "vcmppX", { MaskG, Vex, EXx, EXxEVexS, CMP }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0FC2_P_1) }, - { "vcmppX", { XMask, Vex, EXx, EXxEVexS, CMP }, PREFIX_OPCODE }, + { "vcmppX", { MaskG, Vex, EXx, EXxEVexS, CMP }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0FC2_P_3) }, }, /* PREFIX_EVEX_0FE6 */ @@ -238,14 +238,14 @@ /* PREFIX_EVEX_0F3826 */ { { Bad_Opcode }, - { "vptestnm%BW", { XMask, Vex, EXx }, 0 }, - { "vptestm%BW", { XMask, Vex, EXx }, 0 }, + { "vptestnm%BW", { MaskG, Vex, EXx }, 0 }, + { "vptestm%BW", { MaskG, Vex, EXx }, 0 }, }, /* PREFIX_EVEX_0F3827 */ { { Bad_Opcode }, - { "vptestnm%DQ", { XMask, Vex, EXx }, 0 }, - { "vptestm%DQ", { XMask, Vex, EXx }, 0 }, + { "vptestnm%DQ", { MaskG, Vex, EXx }, 0 }, + { "vptestm%DQ", { MaskG, Vex, EXx }, 0 }, }, /* PREFIX_EVEX_0F3828 */ { @@ -256,7 +256,7 @@ /* PREFIX_EVEX_0F3829 */ { { Bad_Opcode }, - { "vpmov%BW2m", { XMask, EXx }, 0 }, + { "vpmov%BW2m", { MaskG, EXx }, 0 }, { VEX_W_TABLE (EVEX_W_0F3829_P_2) }, }, /* PREFIX_EVEX_0F382A */ @@ -310,7 +310,7 @@ /* PREFIX_EVEX_0F3839 */ { { Bad_Opcode }, - { "vpmov%DQ2m", { XMask, EXx }, 0 }, + { "vpmov%DQ2m", { MaskG, EXx }, 0 }, { "vpmins%DQ", { XM, Vex, EXx }, 0 }, }, /* PREFIX_EVEX_0F383A */ @@ -338,7 +338,7 @@ { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { "vp2intersect%DQ", { XMask, Vex, EXx, EXxEVexS }, 0 }, + { "vp2intersect%DQ", { MaskG, Vex, EXx, EXxEVexS }, 0 }, }, /* PREFIX_EVEX_0F3872 */ { --- a/opcodes/i386-dis-evex-w.h +++ b/opcodes/i386-dis-evex-w.h @@ -142,7 +142,7 @@ }, /* EVEX_W_0F66 */ { - { "vpcmpgtd", { XMask, Vex, EXx }, PREFIX_DATA }, + { "vpcmpgtd", { MaskG, Vex, EXx }, PREFIX_DATA }, }, /* EVEX_W_0F6A */ { @@ -201,7 +201,7 @@ }, /* EVEX_W_0F76 */ { - { "vpcmpeqd", { XMask, Vex, EXx }, PREFIX_DATA }, + { "vpcmpeqd", { MaskG, Vex, EXx }, PREFIX_DATA }, }, /* EVEX_W_0F78_P_0 */ { @@ -270,12 +270,12 @@ }, /* EVEX_W_0FC2_P_1 */ { - { "vcmpss", { XMask, VexScalar, EXxmm_md, EXxEVexS, CMP }, 0 }, + { "vcmpss", { MaskG, VexScalar, EXxmm_md, EXxEVexS, CMP }, 0 }, }, /* EVEX_W_0FC2_P_3 */ { { Bad_Opcode }, - { "vcmpsd", { XMask, VexScalar, EXxmm_mq, EXxEVexS, CMP }, 0 }, + { "vcmpsd", { MaskG, VexScalar, EXxmm_mq, EXxEVexS, CMP }, 0 }, }, /* EVEX_W_0FD2 */ { @@ -450,7 +450,7 @@ /* EVEX_W_0F3829_P_2 */ { { Bad_Opcode }, - { "vpcmpeqq", { XMask, Vex, EXx }, 0 }, + { "vpcmpeqq", { MaskG, Vex, EXx }, 0 }, }, /* EVEX_W_0F382A_P_1 */ { @@ -496,7 +496,7 @@ /* EVEX_W_0F3837 */ { { Bad_Opcode }, - { "vpcmpgtq", { XMask, Vex, EXx }, PREFIX_DATA }, + { "vpcmpgtq", { MaskG, Vex, EXx }, PREFIX_DATA }, }, /* EVEX_W_0F383A_P_1 */ { --- a/opcodes/i386-dis-evex.h +++ b/opcodes/i386-dis-evex.h @@ -114,8 +114,8 @@ static const struct dis386 evex_table[][ { "vpunpcklwd", { XM, Vex, EXx }, PREFIX_DATA }, { VEX_W_TABLE (EVEX_W_0F62) }, { "vpacksswb", { XM, Vex, EXx }, PREFIX_DATA }, - { "vpcmpgtb", { XMask, Vex, EXx }, PREFIX_DATA }, - { "vpcmpgtw", { XMask, Vex, EXx }, PREFIX_DATA }, + { "vpcmpgtb", { MaskG, Vex, EXx }, PREFIX_DATA }, + { "vpcmpgtw", { MaskG, Vex, EXx }, PREFIX_DATA }, { VEX_W_TABLE (EVEX_W_0F66) }, { "vpackuswb", { XM, Vex, EXx }, PREFIX_DATA }, /* 68 */ @@ -132,8 +132,8 @@ static const struct dis386 evex_table[][ { REG_TABLE (REG_EVEX_0F71) }, { REG_TABLE (REG_EVEX_0F72) }, { REG_TABLE (REG_EVEX_0F73) }, - { "vpcmpeqb", { XMask, Vex, EXx }, PREFIX_DATA }, - { "vpcmpeqw", { XMask, Vex, EXx }, PREFIX_DATA }, + { "vpcmpeqb", { MaskG, Vex, EXx }, PREFIX_DATA }, + { "vpcmpeqw", { MaskG, Vex, EXx }, PREFIX_DATA }, { VEX_W_TABLE (EVEX_W_0F76) }, { Bad_Opcode }, /* 78 */ @@ -453,7 +453,7 @@ static const struct dis386 evex_table[][ { Bad_Opcode }, { "vperm%BW", { XM, Vex, EXx }, PREFIX_DATA }, { Bad_Opcode }, - { "vpshufbitqmb", { XMask, Vex, EXx }, PREFIX_DATA }, + { "vpshufbitqmb", { MaskG, Vex, EXx }, PREFIX_DATA }, /* 90 */ { "vpgatherd%DQ", { XMGatherD, MVexVSIBDWpX }, PREFIX_DATA }, { "vpgatherq%DQ", { XMGatherQ, MVexVSIBQWpX }, PREFIX_DATA }, @@ -617,8 +617,8 @@ static const struct dis386 evex_table[][ { EVEX_LEN_TABLE (EVEX_LEN_0F3A1B) }, { Bad_Opcode }, { VEX_W_TABLE (VEX_W_0F3A1D) }, - { "vpcmpu%DQ", { XMask, Vex, EXx, VPCMP }, PREFIX_DATA }, - { "vpcmp%DQ", { XMask, Vex, EXx, VPCMP }, PREFIX_DATA }, + { "vpcmpu%DQ", { MaskG, Vex, EXx, VPCMP }, PREFIX_DATA }, + { "vpcmp%DQ", { MaskG, Vex, EXx, VPCMP }, PREFIX_DATA }, /* 20 */ { VEX_LEN_TABLE (VEX_LEN_0F3A20) }, { VEX_W_TABLE (EVEX_W_0F3A21) }, @@ -653,8 +653,8 @@ static const struct dis386 evex_table[][ { EVEX_LEN_TABLE (EVEX_LEN_0F3A3B) }, { Bad_Opcode }, { Bad_Opcode }, - { "vpcmpu%BW", { XMask, Vex, EXx, VPCMP }, PREFIX_DATA }, - { "vpcmp%BW", { XMask, Vex, EXx, VPCMP }, PREFIX_DATA }, + { "vpcmpu%BW", { MaskG, Vex, EXx, VPCMP }, PREFIX_DATA }, + { "vpcmp%BW", { MaskG, Vex, EXx, VPCMP }, PREFIX_DATA }, /* 40 */ { Bad_Opcode }, { Bad_Opcode }, @@ -698,8 +698,8 @@ static const struct dis386 evex_table[][ { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { "vfpclassp%XW%XZ", { XMask, EXx, Ib }, PREFIX_DATA }, - { "vfpclasss%XW", { XMask, EXVexWdqScalar, Ib }, PREFIX_DATA }, + { "vfpclassp%XW%XZ", { MaskG, EXx, Ib }, PREFIX_DATA }, + { "vfpclasss%XW", { MaskG, EXVexWdqScalar, Ib }, PREFIX_DATA }, /* 68 */ { Bad_Opcode }, { Bad_Opcode }, --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -116,8 +116,6 @@ static void FXSAVE_Fixup (int, int); static void MOVSXD_Fixup (int, int); -static void OP_Mask (int, int); - struct dis_private { /* Points to first byte not fetched. */ bfd_byte *max_fetched; @@ -406,7 +404,6 @@ fetch_data (struct disassemble_info *inf #define EXxEVexR64 { OP_Rounding, evex_rounding_64_mode } #define EXxEVexS { OP_Rounding, evex_sae_mode } -#define XMask { OP_Mask, mask_mode } #define MaskG { OP_G, mask_mode } #define MaskE { OP_E, mask_mode } #define MaskBDE { OP_E, mask_bd_mode } @@ -12017,12 +12014,12 @@ OP_G (int bytemode, int sizeflag) break; case mask_bd_mode: case mask_mode: - if ((modrm.reg + add) > 0x7) + if (add || (vex.evex && !vex.r)) { oappend ("(bad)"); return; } - oappend (names_mask[modrm.reg + add]); + oappend (names_mask[modrm.reg]); break; default: oappend (INTERNAL_DISASSEMBLER_ERROR); @@ -13721,23 +13718,6 @@ MOVSXD_Fixup (int bytemode, int sizeflag } static void -OP_Mask (int bytemode, int sizeflag ATTRIBUTE_UNUSED) -{ - if (!vex.evex - || (bytemode != mask_mode && bytemode != mask_bd_mode)) - abort (); - - USED_REX (REX_R); - if ((rex & REX_R) != 0 || !vex.r) - { - BadOp (); - return; - } - - oappend (names_mask [modrm.reg]); -} - -static void OP_Rounding (int bytemode, int sizeflag ATTRIBUTE_UNUSED) { if (modrm.mod == 3 && vex.b)