From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2083.outbound.protection.outlook.com [40.107.21.83]) by sourceware.org (Postfix) with ESMTPS id B4B72385D0F2 for ; Fri, 28 Oct 2022 12:35:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B4B72385D0F2 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=BGmtrHjiZ+trqptGJrk7/LtGRUXN3Gzhg4RZ5yWLfJPMf1QsIb5RhObamWxadhBw5BgRjwOx/LIiqsfUZ1Nf04sQHQRPezq0r8q0wn+do4lxAIkBzHPdHWVcPTPy2lKzc6t5QQpoSLPHo7ynW0z6oJHAmZehbsy9JSQ8/+TdXOVw6uM/ZgFz/GY0kwFYW11lRjdZTd3eDcw9vy0RCU1q59z6No7rA4q7H6kjqaVV7FrohICcmQgVft5uXU27pvPQ1W5m86RXT1GbZiZsbmaIevFDCPeZybb2UtBzJSke3cM+dTDo7r9cS5yen0/A3GxbwgmfPp9wiEBV1Zm9pk2L/A== 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=1GwSVzEegJtryxJxzQd2o88saa9Po/o9a2jYghsHHBY=; b=IarHLOIttN2BSUGz18cDwijVGxfM9m0YUEyrgvXjutJXSenDhXv0SONNlZLvGYCkxdytleo7mll+xsL7xuF6obonUVGIX+E56kFpfXFZGY0bO4URixPH+0e1/TFHlRCE+7MxDMjSUy/Lv54sBfi7s65uMgcpWOrcNgDxDAWSMkjfWpN3qjZ4niT7ipDCpyutZdFHOSiwK6dZFHL/IP5/aiXT4e01E6gMnhu2Pu9TK6SNZVllkNZC9rzK4H5ZOgqZG1cDNIBj0oyUkp+3ly4/V2GScbtTV2RxPkAA5E2UJ/TEx5C+qDDo/ID5tMxXfEpbBxPhQmcRFeuX9Qdimoj04g== 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=1GwSVzEegJtryxJxzQd2o88saa9Po/o9a2jYghsHHBY=; b=QztsrUfHkc6uZiGrjYfk2okhzKB7hkJItHB5fXsCzjTAMUeLqjuvsaYYyHlP6ZxREks5uYtBELoYSV8vrvww93NZucP4ZKxsdyakqvsD9GVvjRXxeS1ZdSIkaCJ6WOGVlPK2ZlOhaWfXvp6L2/KcG+SZUzPlvrZxkiWgXqT8tngXOZopfHZ+DtNY6KXUckxvOFgtkJQB4J6t3kpMo19RYlwB4Mi/3vvVeqsgrqPVoJKQkpUA2/zdImuyBBbl+snACS0uEJj11aKXNpoTk0CjbN1q1FP/8UabX2X/d/hQggcAaBYzm97S1zlDIZB3JDqx+9v+ODvFL1Od9tWFK5vRYA== 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 VI1PR04MB7151.eurprd04.prod.outlook.com (2603:10a6:800:129::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.15; Fri, 28 Oct 2022 12:35:37 +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.5746.021; Fri, 28 Oct 2022 12:35:37 +0000 Message-ID: Date: Fri, 28 Oct 2022 14:35:35 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.0 Content-Language: en-US To: Binutils Cc: "H.J. Lu" From: Jan Beulich Subject: [PATCH] x86: minor improvements to optimize_imm() (part III) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR0P281CA0046.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:48::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_|VI1PR04MB7151:EE_ X-MS-Office365-Filtering-Correlation-Id: 115ad028-ac4c-4121-01ea-08dab8e0ea87 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lunoqS4l4pP+oPSNgKmS17a6f3LT0WwKOOoHvTiZC1k9POv6aZHu4Y1ZIUySVcG6S2ir8VIdIPtqTWjrHsTKUDzCKNSfMq5eFMVAjHjbgSW578F/nx4ybrDEEUrga9ciWOEBvJbAfv0flYW67MqAv9Y3Imw3PwEpo9zaRPChVdfIuxhpcMBS17iRx/62V9h0zt0Gec1lsQv7gWw96JP6xIs8gozH1jN0qokuEFkhkgN12ojTvEylKXNRqrpS5zKID5eCKGDbur7Hyop3aGLKczMnoEpoH0Vs30FsgqdQX9QPc6a7uYBkcuCM7S3NoqAsDEcjADIJGfa84/E6X/McQvT36hZsgBBlV09RLZNdBPzIwRIFTueI5+5Y/mKwFoOAsMULsPoDXbPzCEhDTzZqgD8adJK2SQME36+ci9jkaxO8qvK5lgRn8pMCGHGIzs+EzoT9cz+EN833hP+kvjmR21McNAb4JixgHkrPyDJd9nbDhopeonfT+CabBvvyW+UI3ub9zy4tfNidHl+nV/7rVc1yBHGh2QlCXQlvo1gDvAf3X0Jf848B2BHpj7mHtMcGJHSLpZE6JY2tWMsY+4AuZJRQ1QJ51iS1YGCh3IAqyofArlR1L1nU3xq2AnWTks8uym/jgH2dShklYikGRV3r4EcyFFS/I10EKFSRxcW8AwEpI/YwcdbZPO5nivl9IdFhZq7ungsHVgODXZ9WKTMYoJBx9wHEZ70rde0bNioOliot+JcepKWISiJGHIPNAzBSNMNVsUUTvajLUnfEiD5mm+aTOH/iU7/5Q4B1LIar088= 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)(136003)(396003)(346002)(39860400002)(376002)(451199015)(31686004)(36756003)(5660300002)(2906002)(38100700002)(86362001)(31696002)(2616005)(186003)(6512007)(26005)(6486002)(478600001)(316002)(6916009)(41300700001)(8936002)(66946007)(4326008)(8676002)(66476007)(66556008)(6506007)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aFhGZlp6UEJHUFM2c3dLRVdKUGltbWFwR3lMTm41aHplSnhaUk9GOFdTUWFE?= =?utf-8?B?U0NBcCs1NW02QWQwMDB3cnZmZzV2ZkpKbXBxT2ZOUlRZellnaHRoWWpTVDZR?= =?utf-8?B?bkd1dkY3N0VNWHZqZ1VOWG10cWVpeTZ3Um1UbERpby9NZVloWm9lTTBiUXAy?= =?utf-8?B?eEZ2bm1OS2lKenZxRWVLYkZJRWhSb2tlSGdobWVncFdyaytzSzUrQi9hREtS?= =?utf-8?B?SmRvMENobjRzaGdwaDZBaU1NOFBvaitDZk5KUC9IWkt0VDkxWnAyaW9iVWdT?= =?utf-8?B?Q0NKeEN5UUNncnB0dmI4dWxvaVJpVW5nWTVrNGV3eFRoQ2syMzZXUUY0SVpJ?= =?utf-8?B?dDlJeVp5WUJjK2RQaUc1YzRzOVl5M2dWdjBRZzBuc3FEZ3VNL0JYSWVoZ21E?= =?utf-8?B?ZGlxYVM1Y09HTnRNZ3hRVDNSOEhSOG5qR2tMN0FvamdGVjYrdzdVZExqa0hT?= =?utf-8?B?TFhLbHRtL0xHQ1J5VkUvK1o3S2x3UmNPMFRiTjFtSGgrYUlMRHM3dEppNlk1?= =?utf-8?B?a3RCNHp1cExHUEx3RHh4cHVDZG5xY1h4RjVFalYwcGhqcUlHOTlPTE9yb1lp?= =?utf-8?B?eExWSFNQSlZadG9FMjBXRjRnTmFSaEl3YlREdVhGNW90QnExT00wVFh6WjdH?= =?utf-8?B?dlZKRHNHTTRSbmVqNHF2ak1IbWgyMlBmZzRaZmI3OEVKa2pMNWZjcXFSM0Jt?= =?utf-8?B?aU96bDU1OUNMNlFmVWdBTElPc0xQUnFVZHdyNjdidXpFYkZyZUVXckNNQ2tW?= =?utf-8?B?eU9wT3lZYy81aGVpdHJQVExzdUE1UDJNbHJIQ09ueTZZalVvWFF4OEFFT1Nn?= =?utf-8?B?bno1YXBnWVhuQ2VobFR1bktwdDZyZ1ZIZDQ0eVMzN0dCYXplemZtNS9uTlZ0?= =?utf-8?B?TkFwdUw3VTZIWXBhb01JTFJJdFFCS3haZ0xBQW4vZXlFemlEZWlXait6TytI?= =?utf-8?B?aXZvMHR3L2h0MHNsSGJmS1lkbUViKzN2UmdPRGU0NXJqTG5NNi9ENVZrc3Zj?= =?utf-8?B?bFlOdGZydVJ5TlU2WHRCZ0Vwb05ST2JsbDhsRlJ2Z3dBdHdQcjJMdCtFVisy?= =?utf-8?B?N3hJczZRM01xUWkzQ2VnQkNNaWE3VlRrNmtIdndHWWlxSXc2V1hDSkRFTzI4?= =?utf-8?B?eUtPcjhoYjVwNkRJL0hQbXR5TDZ6UU1nSkY0dmNmY1ZKZGNEQU02UkM4MnRs?= =?utf-8?B?aHpGeVF5dTBheFQzNkJvbktpbU00ZWNJb0NtcW9yRHpqeXJoTFI0SEQwcVFL?= =?utf-8?B?c2FXTTdSM2FqODM3eHByRFRBVFA4MzFhbUVoWWN1VGZtZDRURXhCOGRIYUJo?= =?utf-8?B?R3FnM010ZDBnR0FGQ0xaSFZMRGRFOUM4c3BlN1BaRGRJOVdhZGQ2ajV0dUky?= =?utf-8?B?d2hzRXd0MS9zWURISmJjbFBRaW85WDlxSFZRa1dXSTJlNzJRaHN2aTJaL281?= =?utf-8?B?c1RoQlcwZ2o2Q2UvS0drV2dyQVh4Tk5la3pFQW9iUHBQa1l0Z2c1cWVpZ2RP?= =?utf-8?B?d1orMDJySW5QdnpQTkRKbzd6b010bjZwcGZUUndjNXZmK3M5SVB6MjNSd0t2?= =?utf-8?B?MkxvTE9tc2xqNWszeDloeHIydHR1Z3R2c1prWUxPWG5GZ3FON0VNNHA2ZFVB?= =?utf-8?B?dlVlSE90WTNlSjRzVkFqRG13eWJzQmdDeG1OWGExNTVsQU03Zy83UXlvQlE4?= =?utf-8?B?N0N5US9Ja2s2QllueTk0MEZmUXd3R0VJSHVtZ1dQRnJvRmhhc09RbFlHNGJp?= =?utf-8?B?WWNHMkN2SUphWm50VzROMjc4d3VSc2prMTkxeUZWOWh5OXNoM3lpWGVqT1U0?= =?utf-8?B?UkxjckFpeDVjZmYwUEZ3TTVPK1pLT3lVK09BeGg2Q1BQR1dJVERzNEdEaTdG?= =?utf-8?B?NXZhQ2I1eWFMMXlUOXJOZC96TVY0ZS9WSTBNdjNOVTJuQlpqQzJTcHNuMlZQ?= =?utf-8?B?QkVwck1mM3UyZmh0M0ZWc1I3eDFiandjdzY2TFBaN1JCT3kxS3F1WGFQMm1q?= =?utf-8?B?OGpnMFEvdUdSdTk3am15K3hEVmx6VFJxaytscGJOc2JXcTlWS2p5SFpJNWRH?= =?utf-8?B?RVIvbnBncGVBejRmcUlKTmVnSWRpbzV6a200NkNSbWUwZmNWSFNxVmFLcmFW?= =?utf-8?Q?Ct/6j7yJjEYEHMaYuQ1WsLwgC?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 115ad028-ac4c-4121-01ea-08dab8e0ea87 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Oct 2022 12:35:37.4341 (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: FL1/3hmKUOfSscO8Ixr0pp5pNtSDmwmJ4uUr5tsswRqKAFqtBPOYF6avT3bJRXUrvIbNLUPFBuCSdhOXXFCsAw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7151 X-Spam-Status: No, score=-3029.6 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: Earlier tidying still missed an opportunity: There's no need for the "anyimm" static variable. Instead of using it in the loop to mask "allowed" (which is necessary to satisfy operand_type_or()'s assertions) simply use "mask", requiring it to be calculated first. That way the post-loop masking by "mask" ahead of the operand_type_all_zero() can be dropped. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -1906,7 +1906,6 @@ operand_type_xor (i386_operand_type x, i static const i386_operand_type disp16_32 = OPERAND_TYPE_DISP16_32; static const i386_operand_type anydisp = OPERAND_TYPE_ANYDISP; -static const i386_operand_type anyimm = OPERAND_TYPE_ANYIMM; static const i386_operand_type regxmm = OPERAND_TYPE_REGXMM; static const i386_operand_type imm8 = OPERAND_TYPE_IMM8; static const i386_operand_type imm8s = OPERAND_TYPE_IMM8S; @@ -5812,13 +5811,6 @@ optimize_imm (void) const insn_template *t = current_templates->start; operand_type_set (&mask, 0); - allowed = t->operand_types[op]; - - while (++t < current_templates->end) - { - allowed = operand_type_and (allowed, anyimm); - allowed = operand_type_or (allowed, t->operand_types[op]); - } switch (guess_suffix) { case QWORD_MNEM_SUFFIX: @@ -5837,7 +5829,14 @@ optimize_imm (void) default: break; } - allowed = operand_type_and (mask, allowed); + + allowed = operand_type_and (t->operand_types[op], mask); + while (++t < current_templates->end) + { + allowed = operand_type_or (allowed, t->operand_types[op]); + allowed = operand_type_and (allowed, mask); + } + if (!operand_type_all_zero (&allowed)) i.types[op] = operand_type_and (i.types[op], mask); } --- a/opcodes/i386-gen.c +++ b/opcodes/i386-gen.c @@ -537,8 +537,6 @@ static initializer operand_type_init[] = "Imm32|Imm32S|Imm64|Disp32" }, { "OPERAND_TYPE_IMM32_32S_64_DISP32_64", "Imm32|Imm32S|Imm64|Disp32|Disp64" }, - { "OPERAND_TYPE_ANYIMM", - "Imm1|Imm8|Imm8S|Imm16|Imm32|Imm32S|Imm64" }, }; typedef struct bitfield