From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2080.outbound.protection.outlook.com [40.107.22.80]) by sourceware.org (Postfix) with ESMTPS id 2AB873858439 for ; Wed, 30 Nov 2022 08:56:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2AB873858439 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YEGOh9A0UgW/hLJQolVGGz3iYIJ+3QBJfRnSR4WQxVHGuMbRPpx6ii4y6Kf4/lM+w/Rvs23aV8+TIXMI40Kz6qcYnGhMCooEIWIbBeW7MUALIgkJHXwwzSmZrA3Ic7ZagCyk9LPYxNhAJ1H6lMia8hNnTNdXxVa6T0c2LkDNK2aaEzmpEVIStSwZLjP6iWmgLlf4Hw+gELkQ8HcdkFMmGFxCFfJqEU1WgSu96xQs5KOn/cJVfM+VT7l9GuZc3um4M5uvpxjXDNW5S/eTSKTtkC1KR6FTH5tk+8HbxQY6JA3rfkyOk1juJjy5StyTfoZLtsmYhlYMwzW7wrTR56ih+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=JmAnScvwRBJHwKzU1UIYpXQXhasMHbVp6eVyHGB1riI=; b=KmGpE6wfkcfr18fPZF5j7MsXa0D76/G3xteMNOUgKQpyHiEM1DgZVzk18nH4Ge2iHI0v+wb7viYHJv38jrP5Ikl+6BJs/1GQ7JgxV9cAvhthToISvZCn8wpeC/wAhB60TEIdsIeEQBaaDLUiF+ZkHyuLBFMtielUj6RM89fQr95JosIoil3gV/oEivEQDIExtIAxNLZy3J83FaIcmK+f+Z9RV+VowNPakvK9y3+knp+skfIE2SZ7FBhxg3SGthEIvefVfTtN2u+Lsodry3Db6Hy3U41S8lgr6aREdAYnqomapp46FNqmvVOcpIga/refVmeCM/d8CuT6Fj7mbaj1pQ== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JmAnScvwRBJHwKzU1UIYpXQXhasMHbVp6eVyHGB1riI=; b=tnaeYHbOAQ/4+nUS3VDQF8YNVO3i3dp15mZPLIKdnmd6o7CrIYCA4BnALQlzp9yiGl+Q8QCdEcxMdBtWCmrAihb827ZtbOUdV44EVkQDCIBAsxNO8oBpX1WFZq27bV6jAIJTiPEmvGTXmD7ukN9Ux5dpryA/sVNRyr4oRj6YQ5v6OJmaUXOSehUlzqEzh6Ir18BPW3UKDkv5VfbOS+Kl7AlAhGkk9vLWtTZcCQlBEgElZznqQsndV6AFLER/iHoGoOYzSs2HZZoRxOrZNHEaA2xU0eBygHlhup0yvSUTSVPLWysNtcrDgLq3QprAHtW961k4HplKXv7lD9mynZWH5Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AM9PR04MB7572.eurprd04.prod.outlook.com (2603:10a6:20b:2d4::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.17; Wed, 30 Nov 2022 08:56:54 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8%4]) with mapi id 15.20.5857.023; Wed, 30 Nov 2022 08:56:54 +0000 Message-ID: <787c0eff-5b73-ed04-6e06-e3f49d5a3ce1@suse.com> Date: Wed, 30 Nov 2022 09:56:52 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Subject: [PATCH 4/4] x86: rework of match_template()'s suffix checking Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: From: Jan Beulich In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR3P281CA0072.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4b::23) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM9PR04MB7572:EE_ X-MS-Office365-Filtering-Correlation-Id: 5a08a00a-bc94-42cb-5ded-08dad2b0d412 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pfa2EMiPu6P+20YGUwsMwxrDuMej7PWDnXqbqfHrJMfEkncgd3uoN4y5xQd0RBNeXrELu94YiCvYzSg21SQpsGSxeU2bn3acndG1g346/rfm7K8wx5WIX1BrS33rI8wucrThnAABV04U+EwiedIaSOqS1cwGfHzjireP4RRDL1vPLjrR06btwx0Hub/mEHcp6/CcwwX3SWDW7Sfu6XLMFjLgIL/lhjGlQLC5/L+itY+mCzaOp5zpMAYydWAi779PFZKm7KfJ117ihZyPbtL2sXTL+08mro5hGZ90rEGnW/hMdXvSeWCDFlVzh5FuqpGL/7k22YWRYwaHVzOAT5URkaD/5tct2QFHhUJ/NnVAGsU7gYQzCM1RrmigGNQiOplUMB5/QqCqVDbf5OLEoxcLwpXGxf1lzppIsDjsRCgZQbJ1J4lTN4vcKIOozG7XfGRbyGPiWz85dA4C3KYNCOnVae8Ix+cmxUn2qwt5fS1h4XEBZwcRc6TJx6HTY+PcdnB0szm3WEJi55lmx4CZhyq6l4lzJxcgJ29qx2jv303oRVjjm3OkHFpYNZb6ciqQdZwgnpvSIqOLUq0ewkpJ8sTQG7Mn7SZUI8xCxr1mTvIsYmqwfumYLXcGj2qO93GDGmQ0Jjhh4ofsyUtoKKt1tCB183Ac6twyb5aap06ur1aO3SRObDzwMHCwLt09LTAWpaoC3cqa8k6FAUtcR1+1IKyE+oVKh4OB7b3RRBGlfsO9x34= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6560.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(376002)(136003)(396003)(346002)(39860400002)(451199015)(31686004)(6506007)(478600001)(6486002)(66899015)(8676002)(4326008)(2616005)(186003)(36756003)(41300700001)(66476007)(66946007)(316002)(26005)(5660300002)(31696002)(6916009)(6512007)(2906002)(86362001)(66556008)(8936002)(38100700002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OCtJblJoTFNNR3VLd2drWXZNanFqd0Rjd3ZoZkFOaEQyVzZPWmhKZHJ0bDFD?= =?utf-8?B?NEV0cW44YUx0OGd2OHF6OUw5cGswSEhCSEZsdnU1aDB0TE5abWxRdFlhaWVD?= =?utf-8?B?NmZiS2RYQUtvRzNNK3U5bTA5dGZkSXFtazZWNFdSbDZDd0VkYnFqMnpFanBr?= =?utf-8?B?TDUxVkhLZWlSVkZ6TVV4TG5OQVUyZlM5MWk0NWdyUVRZVmV0SU5TeXQrQkhQ?= =?utf-8?B?SnQ3ajBqNmd0cFdJZFhSREtnRTk1TlZoWXBZL1ZJd3Y5bFBUQlF3NkZCclRO?= =?utf-8?B?dkdIYnN6MEpRYW9FQUZMVTBzK01JYkwvRGNRdHZPNmJPL1NzNXc3d3FRTWhl?= =?utf-8?B?Zi9vOFJsdGQrNUxpMGM0UWYrM1I2VTVSeGRabDFkeDlQYU1GVWxNTEY4N0cx?= =?utf-8?B?ZWNvZ2o3VEtSblI2Y3I0T2hySHB6UlN6amdhT21Bc1E4RWltK1dpQXA2ZU1w?= =?utf-8?B?Qy9Eb3F1dER5ZTVDTEpzWXZzSDM4RjRXQ1F2M3ZCR2w3R3hNRytiSEppN2xP?= =?utf-8?B?QnIxWGdGRzZxODlEWFk1ejdId0tyWlZ5MzhreEhhVjB2VmZkZXIyU21CQ1Qr?= =?utf-8?B?TEhFY2tFS2NMR1pqYVVheDUxVzZwMUI3V1loTjRLL09SSDdxM1FodXBHZU1r?= =?utf-8?B?QlREV1dZcVJVdjVBcjdLQkwxWmorRnFRKzZicG1nYlN3NTlLYzFlWmpmMU9r?= =?utf-8?B?RjRidkpnOFI1YmtPN01PL1RwTWJVaXB5OUZjM2xNejk5L0k5N1V4Z3plbWht?= =?utf-8?B?bnBnOXlEaStybWJyY25odEJ2U05WdnRIallZQTFaNWxOODd5NFUyYy83K3Iw?= =?utf-8?B?b1hMVjA2cnhMUDIyN3lUVC9vNGtneWNlV01IU0xrNGROdGVET0xSZGxxZjgx?= =?utf-8?B?M3IvQ2s1elpMcmxEY1lvSkhLazhmUmJ0cVRJZ2dpNG5kVU1zT0hEUStJTzRL?= =?utf-8?B?bGF1UHVNVjlBNWExU2F3bkhsK0NHdUUvd3BwMVRLUUZxQnA5MUo2amlLTVNw?= =?utf-8?B?Ukh3VVluMjFEdkdsV052cFN2OHFDNUdsWWRaQjQwM09wNmhiV1ZTMjlyTDc1?= =?utf-8?B?NVl0ZzczZTNuYTZMY0JMd1BJcDFxUDRhNkhaRGMxRFRla2lhVGV0Vk5QbEk0?= =?utf-8?B?bzJ0bEtYMjA1bU13MXdDNVNrSVJtc1gxWDZ6M0JWUzRaQzRwUW1BTWRDWk1u?= =?utf-8?B?R1NTcllkbUFiazBwelk3VXMwNEtKaForV3VZdlhFcElJYUZ1WVZSbFcrZ1ky?= =?utf-8?B?MEtxMFc1ZTlwNVVCSXk3ZUhuYXlTL1FTaTdjdkl5SGNtK255TWEvNkZEWEcz?= =?utf-8?B?QnpUVWNRbFhsQnNFbGxRYi9nNldPeUN1N3lFYjY3UjhVemFGa2hPWlU2blJ0?= =?utf-8?B?OFZEKzNEZVlWZmU3OWNVRVpJQ2VGREZwZTl4VFJFeUJVNUZxYTlDVDJOK09y?= =?utf-8?B?VUFOU0FBNU9LbEpzdkd0ZVI2dmVTZi9qUCtzSHJ3dG1BU1Nqb2diVVdsQU1p?= =?utf-8?B?Y3lneC9iWWdNejVIQTJMQ01KTlhqc1pHSXNkaFQvRFhhUlFqSzlmbE1qVzFN?= =?utf-8?B?Qk9OcmZZZ2tkbERER1RaVmUvRnQrV0lMa1ZwdFpuazNqOTJja21lU3ZjVGZ1?= =?utf-8?B?dXhpcS9nNmxEZEtnNzFBbjdqQk0vMmFtNy84cmdMeHAvVkFGVEhVdnVHODNN?= =?utf-8?B?dkJEYXBGOXlQQk9nRW5lWHppc3hITzNDYzJqZUxod1g4UTFvbUlMa1FyK2o0?= =?utf-8?B?NkJNMUY5VW9CYmdrWnptOFdkMEtsdTh4OERVdVRXWFNmVXMwS3VxTmZVT0Jl?= =?utf-8?B?UUUvTUlTSVBBOWFYRjVWZ1pvV1lvVGJhemhYZHVmQXhvVlNoVUNnbnplZ0V5?= =?utf-8?B?eVFGdytXUTliVVNiUHJiL2dTLytLdG9qSk5wMnFabmNBTkE0RiswUFNiNFNk?= =?utf-8?B?cTdPc05VcUlUR1pyYzYzQ1JTb0dxM243a254NVN6UHJkUVJKS2phYllWbVNR?= =?utf-8?B?NnBOUTRrOGkyTWQ5b0lPNnExclFtcU1XUXo1RHFSTnJ0c2QzVTBpcnU2NHl2?= =?utf-8?B?REFmMUIwS0xjbzkwRGN2dm1ndElpVlNhV3lKM0t4bmc1VFVhdnVEWUVjT3dP?= =?utf-8?Q?X/4fi88/KWiDm0U62bfNgLXPi?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5a08a00a-bc94-42cb-5ded-08dad2b0d412 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2022 08:56:54.1803 (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: DESHFG2wLgiBeLa3MB2Gsl+f6zP8GBg+ryNoV2ZeqOkJ6RuDuWFukoZOtImTMcmIeR06ldKlluVfPt4Mlo25Jw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB7572 X-Spam-Status: No, score=-3029.1 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 autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: (Ab)using i386_opcode_modifier for this has been overkill, as the logic doesn't really require the full structure. With the removal of LONG_DOUBLE_MNEM_SUFFIX and No_ldSuf there's no good reason at all anymore to pull out such a loop invariant: We're dealing a check of a bit in the loop for a simple comparison. Do the original compares inside the loop, thus also making it easier to understand what is actually being checked. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -6461,7 +6461,6 @@ match_template (char mnem_suffix) i386_operand_type overlap0, overlap1, overlap2, overlap3; i386_operand_type overlap4; unsigned int found_reverse_match; - i386_opcode_modifier suffix_check; i386_operand_type operand_types [MAX_OPERANDS]; int addr_prefix_disp; unsigned int j, size_match, check_register, errline = __LINE__; @@ -6475,27 +6474,6 @@ match_template (char mnem_suffix) found_reverse_match = 0; addr_prefix_disp = -1; - /* Prepare for mnemonic suffix check. */ - memset (&suffix_check, 0, sizeof (suffix_check)); - switch (mnem_suffix) - { - case BYTE_MNEM_SUFFIX: - suffix_check.no_bsuf = 1; - break; - case WORD_MNEM_SUFFIX: - suffix_check.no_wsuf = 1; - break; - case SHORT_MNEM_SUFFIX: - suffix_check.no_ssuf = 1; - break; - case LONG_MNEM_SUFFIX: - suffix_check.no_lsuf = 1; - break; - case QWORD_MNEM_SUFFIX: - suffix_check.no_qsuf = 1; - break; - } - for (t = current_templates->start; t < current_templates->end; t++) { addr_prefix_disp = -1; @@ -6543,11 +6521,11 @@ match_template (char mnem_suffix) /* Check the suffix. */ specific_error = progress (invalid_instruction_suffix); - if ((t->opcode_modifier.no_bsuf && suffix_check.no_bsuf) - || (t->opcode_modifier.no_wsuf && suffix_check.no_wsuf) - || (t->opcode_modifier.no_lsuf && suffix_check.no_lsuf) - || (t->opcode_modifier.no_ssuf && suffix_check.no_ssuf) - || (t->opcode_modifier.no_qsuf && suffix_check.no_qsuf)) + if ((t->opcode_modifier.no_bsuf && mnem_suffix == BYTE_MNEM_SUFFIX) + || (t->opcode_modifier.no_wsuf && mnem_suffix == WORD_MNEM_SUFFIX) + || (t->opcode_modifier.no_lsuf && mnem_suffix == LONG_MNEM_SUFFIX) + || (t->opcode_modifier.no_ssuf && mnem_suffix == SHORT_MNEM_SUFFIX) + || (t->opcode_modifier.no_qsuf && mnem_suffix == QWORD_MNEM_SUFFIX)) continue; specific_error = progress (operand_size_mismatch);