From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2051.outbound.protection.outlook.com [40.107.20.51]) by sourceware.org (Postfix) with ESMTPS id 2EC4738560B6 for ; Mon, 31 Oct 2022 10:11:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2EC4738560B6 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=fD6UXKKTusDszwmOENPGaKeMhs75PhEEPvLeZI4c6/Qk6IoPOHxrSJppiPZJY0pDV/GjJljua5+CsflizulgLVHRI/6EkdKqnIDR+yG1izhuJEaI0Hb2H9qWP/idiW5ZFj5ztew4RQYTU+ENBmQ+l3WdOQ4Y7Y9zQILNCKkQ+JFMudpOSs6MfDbDYJT+3JYJ+lwqPepw/tKYrrg4Jc+v9jf5rtFZEq3Vn/3PO5lGMfYWMI3gUFYdDma1bRLFteiTdtrwq7Ywr8lpfFh0m0k8X5ZEFQ4oNpnphkfDXYS0aR4IG8YMc/UswNsTqqcf5Ma2GkvxL/r56RDDqqGfMZGK4w== 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=2965G4uVnm3KNoLX73BK7I4CHBQ/uP2DP9TEQXrbBw0=; b=Qgar+wfwiELqVrj3i/nB3cThuM2mmSu2vxPsGeCAYVj+UzUsJdWdR6Z+fvTXewmbpn9AbHROJ/oBPgGHg8Pt4H+Yw+Igxvjb1UimF7NY+Fe79EMBtizJEysb8aAAgjxDH0hiBLceaSsvm9kLfiT2uzlsKcOu0F36dZ+66JPgwzEKCbDAWyR17qKRszMr7skxnNOhkbqqs9VZEFFdNW86P/1bv9eVgTSPMkdWTPieJevPoKGXI75cgrnf4UIBJE9mrHlpSCWVLnZvsJzoU05qihfK1qM53ALMA5/kU78OEX9NWEnEtvoMmdOOhTBk64hGcDaRmgV+Dieeh8xmEKIBsQ== 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=2965G4uVnm3KNoLX73BK7I4CHBQ/uP2DP9TEQXrbBw0=; b=kQorIhkuc8hZL2md61xQqh+mJ01jOPTziddhZxu3B+GwoY9VzXCc8mmvYyJsbfDC0rn5ZM+gjsysYF8kGpVCuqQXH8f/Bf0+FKBInTx0sPfZ9qDcJwKB+ztYXPjhhbCz9ij1aav5hkHQ88v5MqY8ksRvlFOyqL3AG3ttpCcgXL6rWmnhd+jsTwi1WLbPyhhCPr46nyEbWLvvEB4pkeffF8gFRc0QM1CBYg1ptB9AbZiKZaiN/MOR1Mi0aUiiwyO3W2tPohwfNsxVbmko/DQf5/+WOXdGJE2UMQkKWs0qMvFuBB7FnIs5zqf0kmES4GrHrzF27apLE4VIqFVr5d/XtQ== 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 PA4PR04MB7534.eurprd04.prod.outlook.com (2603:10a6:102:ed::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.16; Mon, 31 Oct 2022 10:11:57 +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.5769.019; Mon, 31 Oct 2022 10:11:57 +0000 Message-ID: Date: Mon, 31 Oct 2022 11:11:55 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 Subject: Re: [PATCH] x86: minor improvements to optimize_imm() (part III) Content-Language: en-US To: "H.J. Lu" Cc: Binutils References: From: Jan Beulich In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR0P281CA0064.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:49::8) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|PA4PR04MB7534:EE_ X-MS-Office365-Filtering-Correlation-Id: 1d32d005-8352-46ca-45c5-08dabb28579e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9BVWG39hGZ3jsm8iqoUW+ohHNP0Y+mwJiY0OoobUPTglc3aCTbzURm19OiuPYssiJbBAy+NLIHOia8xEsheXQ8SAgQZGU2yoEuNWlk8mYE71AeFleeF3P31lLUhSBqTk7slc9AvShwBEm1rcO5P4Eh1IlM/GHYfW03dAGW+1ceZjdxhaBNPGk8sbER9UAnwRlY/bO8fcpqUH3Sb0eSJ6+j1FE9a6J+ZiYgHh9qUHY8UGlzBu4mUat78x2CXKubVlFr4onIqRPfpIooLryQPRiCbm69ez+AeTrM9OlnmapfoRovWBhFbjcW+9sNQhQ4tFazhKVgsOVh2yehWPW69sXVvusF+JZVx4CXLTmBUpIwq8v0MqRkTFYa8ICntqYoHABqFXPM9ByYyY2kDWLOhIfbGsfF4FNulCy25BjGB0WRUFh4jQ2DxyoH5qgnBwixwhWa9R9ZzDP0EUFrbeWsAAc+7zzWFv6008t0xioVMedtuyeW+UeVwnf2JiMDAdKn0ixu+ym4k83rnI4q6ieZWd/vTSBI2sI9YKezKX74txcW21m/tqq0PmMlC1WJHJjnGXp+18dXL/aAYIZuT48ngy0VsL6glSwPterFmv8xewccS1p59DpH696cJmYwq12dmKHGhHNx6WiAsdWvwgVN8p7bTthie8z5H7d/InSQ0X39k3NO1tHJcrLq7oVav1lufjDVDXRlCHSDhhaZcKFLGTyQxz43N1wwtFvLprN6fjPSMyhZVY4Qgl5x2nttZQ8umqklv7AD+Ou9fKjIG67NvqhzQKDNlhgjVbLxDCGVI8/Ao= 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)(39860400002)(376002)(396003)(366004)(136003)(346002)(451199015)(6916009)(6486002)(2906002)(6506007)(31696002)(38100700002)(5660300002)(186003)(2616005)(41300700001)(8936002)(86362001)(6512007)(478600001)(26005)(53546011)(36756003)(8676002)(66476007)(66556008)(4326008)(66946007)(316002)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eE5SdVdrei8wYVlCUGpFS3E5b25aK2JnRmxjYndVT0g4SlNYVVE5RzcvUCti?= =?utf-8?B?cVV4M1FGek5XaXdtck5HMDVkQkZLZnJzazdOajNhNXd4eER5ckM1RmNEWnp4?= =?utf-8?B?aUgwWm11eU5NSXBMRE1iUzdOTUZMVGlRWThNVnFIVkNHNVBCcUpSRy95aE9Y?= =?utf-8?B?UDh1bkZzdWFjSUM4eE1iKytxOFV2clJhTExYTXpZekFFL3YvemM2aVEzQzdY?= =?utf-8?B?VTF4VGxibjRrZFd6MHJydUs0TUExRjJ5YmFBTkh6d21kMDNrRjVIVVk5YVdz?= =?utf-8?B?UTF1a0dxbWxSSGJMRFAxQmYxNVhLTDk1Z1R5RmZHMkh2Q2dNb3NhSnl0b3Fm?= =?utf-8?B?WXVDV0UzZ0RjRUNablBoYzRLYUR0TGE2V2VNdXdnNFBKYmRzb3pzMEFId2ZK?= =?utf-8?B?QkZUNmM2KzBzYUpSVFNYZ3RodkpPSUxybnFqM1lpM0ZjR05MTW1VL2tHY05J?= =?utf-8?B?dHZ6OGpYVlRqVXRZUVBLakVUYVhnMXBOc2VicU9mNHN6OFRGQUhLVzZIWWRm?= =?utf-8?B?ZU5PRVJuN2VOUUhRRXJYbHZnc0x2MDNFeDVydnVrYVVZU2NZeGVzN0kwWmRw?= =?utf-8?B?bGY0UlF3d1p4K01obDNNV3o4NWxMbklwOWxsZU5FaU56Q0QwZThqdzYrL3hk?= =?utf-8?B?aldrZDVET2dPUWN2OGgzT2xYb3NHTzhUMW1qcDQ3bXlIMm9RRTVueHdnUDlD?= =?utf-8?B?Q0NPNEs2VTNjeEdCd09paDRWaENjQUZqRk14T3RtbnNxN3pJNGF6byswTDVR?= =?utf-8?B?d0VqRDRBVG56NHBOa3Y5WWQ5Mm9hU3lYRnQwNCtQOXdxV21nR3NpMy9yV2tz?= =?utf-8?B?S3dLaWdBSnRZY0xCVTltUzJ0bEQ2SWYwOUlVcGhhWVQwS2tRR1RBSjBacHF0?= =?utf-8?B?WGE2ZWg5czBIK2ZTNG4rUG5qN1d5MnN3ZVNiZWd4NEgxREJnaWpoVk45UnhK?= =?utf-8?B?d0NDTXQraTA0TlFlVGkzanRyMFgrb3F5Y3ZPNTJhMGFmKzBPb1NxK2IvMTl4?= =?utf-8?B?cVlBV2dtT2s3RlVFUHpvZmN5TXFYR082NUZOaXN1Z21uaUk5ckJ5a0ZkSm5q?= =?utf-8?B?dXNXNGRneWlLTjNzckw1SlVNZHJzR0oyV0NYWkRRT3FLcVV5V3ROeER2Tkht?= =?utf-8?B?NThySHJ1WTZIMDlITXJ1RFkxdTllMUJsMlcwOTh2MHZvRnhINWdtaWFEOEFG?= =?utf-8?B?UlFsTHQ4V2U0ZC9JMnNodXlUM05TaHJMQ1NrV3Z0ejdZaGdSbG8wSUxOQkNn?= =?utf-8?B?c1U3a0d6Q0lxeXpOeGdNNkJWUmFOc3lYQTJiQVdKQ0JIOXdMQmJaWERFSFdt?= =?utf-8?B?Ymo1MDU0c1VKdDJRRThKLzJ0VWpHcWJqbVNGMEJpT3dMRVNIQkhkSjhxVFcz?= =?utf-8?B?UFZsNDJoSnlrcXRFSnJLd3Q1SjhkekFqZFhIZEFocVdXbWh3R3RJUFRydHJU?= =?utf-8?B?Z0RBN2ZaeDVsWVRvS3I1S3p4RnU3OWhHeGVJbHJONjljd05KZUhiZ096bmtS?= =?utf-8?B?YndkNjFxa0N0eWk1Z2RKakdNUWVXQ2gxZkpIS28xcEphd09uM0R0SnV4Nkll?= =?utf-8?B?WVoxbWJDT1BodXVFOXhOZmdaV0NFV3hOWGVzcE0xajlhTnhMdW9PemFCU01T?= =?utf-8?B?cGw0cEp0R2FWSXZIV3FRVmdzWFRlbW56ejBCOTdrdlQ0T3NIMnFEWkpGS1Bk?= =?utf-8?B?YTc1QUl0RklHYXBaWUx4UUxnaE43amp6c1lSSFU2VFcvMHJvYk8xTzMvY2Rh?= =?utf-8?B?TUlyclc0ay9JYU5QUGlZSng4NWwxaStBd2ZQbWpLS1BQREs5WkQ1Nks3cHky?= =?utf-8?B?L1R2VkdJM0NNVmJSSGFnTGtvb0RlZHhjNzhGNHF0OWxzSWIwS0E5ZjBvdERI?= =?utf-8?B?TjhwUjB0ZFJ0RUhqOFgxSWorbU9KVUpKemZqdzByYXZMU01zNXkvYy95Sk45?= =?utf-8?B?MUVFaDd6L0dLKzcxWGhvWUxiNzIrQldDc3BlWFFrUlVxMUl6WkQxY1VrUFQ2?= =?utf-8?B?dXYwR3dpRHFULzd1cDdoZkZrNVc1cnltRTlvdktXTTNsc3BMNEI0aVh3T3VJ?= =?utf-8?B?Y3dTdThEQllpbmR1ZG11KzNqQUJiMkFQeVM3MVZhM0tDcktTdXdZN09NTzZZ?= =?utf-8?Q?nA8lGUIxXkFdqVqx/5daBOu7m?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1d32d005-8352-46ca-45c5-08dabb28579e X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Oct 2022 10:11:57.0828 (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: btBS+hwdxM3nScEKR/PcwVaTL7uaKdcD3V5E5kaM3kLRmloviwnGsJOmno2WPTqKi2NfesoMwPkuoAXfNbWksQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7534 X-Spam-Status: No, score=-3029.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,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: On 28.10.2022 18:03, H.J. Lu wrote: > On Fri, Oct 28, 2022 at 5:35 AM Jan Beulich wrote: >> >> 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); > > mask isn't changed in the loop. Can the AND operation be moved after > the loop? Initially I thought it could, yes, but it cannot: As said in the description the AND-ing "is necessary to satisfy operand_type_or()'s assertions". Jan