From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2073.outbound.protection.outlook.com [40.107.22.73]) by sourceware.org (Postfix) with ESMTPS id E26DD38451A7 for ; Mon, 31 Oct 2022 17:01:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E26DD38451A7 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=FIsVvT8NBgsJaDqcRw5Wkj/3Luzva77rP0hgWHnqQEzaa01JcltyIFx7APN97gkdM1HdBryIQHW87zeQYOPXdb9R+qSgvpw/kj84JgYYIzYvvtrxYqb2j0BGeesn6g4DbIV4PXlUUubdfh8KE93kyk6BrIF9CaVN4MN5T8LmjePYZEaH2QTdrHToSuf4PfNKPWyqmhS9S45HJrK4wdwf23iczpebK3bt71lvFqygQgCBCfYFCsdJ0aE6fja+FoknsLB9GtiX8xmgOeRSKoYX2WnQyiHeivsxQugv0cbmgXfjFBvpG+goc+V0/lMqQhLtvkSgDVjFrJmv41oSKr71TA== 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=Q8wJ0q5KNEbx/bIKO0jcAVLE9SAcMHyoqBzaxHzzx64=; b=FC//aWdp4DGcM+nPn1cTnYFM0EYUXAjhuRSooN+gUngdZB/KJZH2ABSlMcK+CP5NYNizYNuzNzVoTuKgUnM3naFxicY9uaAyJKGWM2BU1dbAAHLaNX44q6LE+3iqimXQLyZTW167MWgVRKUrz9cTqta0XUWYaao09oaHlpz3U8eDRYqEEggwSZJFQe8Xp8Kppy2Lx2bV/F/bbxqUJGlM12qgqdvY4i3V2FiVv9k5gR2qo6N7lBZhwjGAhB/OR+7u3SdbXAbKPmXLgKqWPQiAlZy3+OQSWRaWGz27ZcG4o1wnVlIXXn3PMOZpzWpmGHQbr+hiYRozMzyqGzOb6F3Uhw== 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=Q8wJ0q5KNEbx/bIKO0jcAVLE9SAcMHyoqBzaxHzzx64=; b=pk2UyXGduF9QUq4Ra4+WQaXLppjlXep7gIhMDPLS5lZtQpIHCV+JprjQNjLCYCGS5Fc+jec/+c2a3tK2kSlp7OQCSp3dkgWZKGoW5p9fKY97k3H4zd6wRzzxCc6FrbIyHy73d17/jlwpvAUsgBrWnWBjp+8Ombgij57/wz1DDziQ4yCxmzdvhiwjzlb9NkByxfL0je91nd0cXVgWV4oYsVr1It8dKx4e/ImRwlqz+Dnd99znQIYUoJlLIpJUWUn4oNgg21eGK0WZWsfs8Fe8ub2dEygrm21qBa92rIz/XXmL6NFENdncBCbLezjBIS8weqZUzmRbVYWFIAalCKr6Qw== 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 DU2PR04MB9131.eurprd04.prod.outlook.com (2603:10a6:10:2f6::15) 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 17:00:58 +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 17:00:58 +0000 Message-ID: Date: Mon, 31 Oct 2022 18:00:56 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 Content-Language: en-US To: Binutils Cc: "H.J. Lu" From: Jan Beulich Subject: [PATCH] x86: simplify expressions in update_imm() Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: AS9PR06CA0188.eurprd06.prod.outlook.com (2603:10a6:20b:45d::15) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|DU2PR04MB9131:EE_ X-MS-Office365-Filtering-Correlation-Id: ca639a99-0714-4135-b95a-08dabb617b61 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VgAwf9vDiE6iqArfg1Cbs1gpj1Vc70tFvm87LOqhtEgphV/aAvphdcCRfpUOc7wcOWbt3jFw69m/36wL2/rDyrUBBJz36jYN8RRJ8Pprq3ASBhPX/MvkCoaUfwsNHc7ZbsMzVlVrEeWuJn3XXAdpv2NokNW/IDdqQphfaN+KGzWvprxrpLsjb+jsQN7QIcYU2u+0sfaQE6S5q6HhxuVIMPZlH/UvSK3zYhVi8JDp6ZfyTfQi6/XjdKdE5Y3bQ+6kp8MkbR8exCB8DEZXSTBnwD1HzJ/z2sGsenej+/gD8F4jAVhXLicmRNr6HG+HRgoK+f1fqmFyrupdeNr2v1Fa046YZ53GgUi5DD8znH3B4YfOhNIwyLS26DeOL0MXPDTF23X+cYF5zSndwziQAldkAa/2vi7xlyRxEBH/YlR+p939u8lXvJTVsgBC5576gHBRwfGM8SDH/CJD+oRETk+Jm56iJlUOkvqAAtu0mosDf4c+13jGeNhKSmlXbi7sYHYe2aLq2K0ko5u75APw5tZpLnvOy/8eZmzHfWREFvlcgDTaCv/e2vLhCad866cyigKa3qNAjEPxnlbM3A6QrSvirn7ddjiNvO5ftivWMTiAYJHpaCpBTppdUE2ckhU0Tczv/FCpZ6bX+IOpvCvTbKAe0HWFI7SP1Rzc1OWSBVCWtPKOosUPhpemmPMpFGlszvksDy/3gVChlE5zjuubPLy15xjZQ3MH5s1ziF1eEkno6K2vNtlalINL3r2olzZ5IvY6IatD5eRnOeBn4YLkYmxxHYJWzLt9l8NZxzjZBrT/hLM= 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)(376002)(136003)(39860400002)(346002)(366004)(396003)(451199015)(2616005)(15650500001)(66556008)(66476007)(4326008)(8676002)(66946007)(6916009)(316002)(36756003)(8936002)(6512007)(5660300002)(26005)(31696002)(86362001)(41300700001)(186003)(6506007)(6486002)(31686004)(38100700002)(2906002)(83380400001)(478600001)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QkJkOXpiNkxHeUVRcUZsM2xCclV6M0VVbllVK1R2eUZIS0dLbnRYamZJTVlM?= =?utf-8?B?YjVBYXVkY1VudDdKbnM0azFOeFZ6ZXF3SXNqUnRvamFyN2I2WXNhbXptWWwx?= =?utf-8?B?NVBLbUJlTDB2R1ZmbWt3aHQyTE9lVFpvblRoZXAyNHdMcHJuMS8yU0FGTjFJ?= =?utf-8?B?WDJmRXZITFlVeVJLYVNxQlUxcExBWnQwbW1EL2t2K01vd09odnpTcG9RcUYw?= =?utf-8?B?YTM3T1RBMVE1NmZ4MU0wYVZSMnU2aWxMRmNYT3dqVVdjK3NaT0ZWSkVzU0ZD?= =?utf-8?B?eDE0Y2VISmpkOGgxRlZuYnoraFZzdEM3czdLUlIydEVFb1JqU3dFbC9mVE1H?= =?utf-8?B?UXJ5QVhmYmYrdlFIdDlxdldmcFVGVW9YK0FQYjFVRDZKZnJRb2tVc21HcU9u?= =?utf-8?B?MTFsd1lVZG40TUFWRzJSY1drOSsrVmYyTHRGa0p3R1FNdmpIUU5wRVlMOEJy?= =?utf-8?B?VXZJRGk2bEJrWjRua3F5RmljNTc1N3NCMDdERE40WWkrVG1FcHVNaWhYdEl6?= =?utf-8?B?WDRpOHJBRHRqRGhvdmdpQjJlcEw2VFZOSTVDcTRxV09jZFJSVkRiQzVsWmNp?= =?utf-8?B?NUNlTUJ6am1PajJncHpHVUwzZ3phZjdQYWlYR3FzMXFqVlA2TXByaE9zNEww?= =?utf-8?B?M2F4M25SWFhmTzBlT2dMNFdnSG5FeG94UVhGOFBJckRJTzMzT25yRzB0M1U3?= =?utf-8?B?WE9QTVoyaFFHRVhNNzBTRi9Odlo0bS9oVEkwUjRVTG5hbTgrek16QkZsaUdL?= =?utf-8?B?WjIvSmkvRnFsRVQ1RXBPM1ovcTJxZmxYMXJCUFcwZnJSdEUwRG1iSkp4M3RC?= =?utf-8?B?V0w4QzlpL0hDUG90bWtDUkpGak9qdTMvL3dwZFNDM1FuL3hSZXgzc0U2UGc2?= =?utf-8?B?VkxzQStzU2syaXdyb1ZUZkhpeEJJVHFsNS9CL2tpY01OcWtJLytzbzZlVC9B?= =?utf-8?B?OEw5L1B4YmtqUndRSElJbEQrMXdpL01pYTNzVWFFYUYyVGtZWUJIL1l3amYr?= =?utf-8?B?RjdDYnNPVVBibVhhbVZaWll5WmdQK2dCbG80bmt0dVJxYjE5WEEvRVhwbXk0?= =?utf-8?B?ZUVmS1IyaFhnQ0Q5aXNsOVRzU1hKNlgwUWVPSXQzbkF6a2pmeXBXbmp6eVB2?= =?utf-8?B?TW5tNnRvZFdWdWk4RDdDazBFN3NrclZGSlpUeHZXbCttRXlSYXVTZVNrL0p3?= =?utf-8?B?UEFkR1hCWVBpNHoxdGluMXYzTEZYRVlBTXp0L1FKRkNEWXNvaUh4SmxFMEFN?= =?utf-8?B?bFovdXZ1eExLRWw3K1lhZ3dVbmFFbXRScnJ5VmI2QXE5Q0NGQy9pdVZGMWwx?= =?utf-8?B?aXVqMlBCdTNtNWRIMmg2VFQ3ci9Kamk5ZzE4QVZaS0ZaYk1ia3NuM3llZytw?= =?utf-8?B?UjVGbTVUaUpIOGt1cmN6NGp5RHpobWdXUkc5Yy80SGV5elQrMEEwVGtCaCta?= =?utf-8?B?V0tCR1VSZE9aZURsQ1Rhc1dOM0g4T1l1NmhLdXlnQkhic0U1MlBreERwVW9I?= =?utf-8?B?K1QxSlhFV0l1Q25GcTV3OTRVZXJqRkdSUlkyTUFaSGZMRkdFeUp3bThYNzRM?= =?utf-8?B?Uzg2N2hZemg0cllrMkxLL1B4ZmZGdTRMcWhwcUhmVEZxVmRWQml6VllqbmRn?= =?utf-8?B?dXdGenlVb2NXeXBFQks2eHNrc0t0NFNDTlVENGU3V1IxdVhORWxVVGFUa2th?= =?utf-8?B?Z3hlUkZyNXVzelcxdWlsVHZnWEJ1NExiT1BvT0d5T1ZmOEtIWk5uVmxucmtQ?= =?utf-8?B?eTZjWXBUSEQ2Zk1oN2NpNnh3Njg1Zkp3Nk5IRkpnUkNqcEJrcTJtaFYycE9P?= =?utf-8?B?VU8rMExndnhreDl1QjEvbUdudk4xL2VGblpGbnlRYVV0RVZSN0JrblZXNTd1?= =?utf-8?B?SkVEM3R2WXZreTBjNjdzT3FmWHp5V2VCY2gySXlUR1hzcVRMUWNtZDNydmFW?= =?utf-8?B?R1VDaU5IeXFIcXprb3Q5Qzh0bjQ3eGRYcExwb1Q3KzFnMThDanI3Z0ZvdSto?= =?utf-8?B?MytBV2dPN3BuMG9qamI2U2RZNDVOUnJPTTdZb3FzbXNzaTRlVmNuZ0lRNzYw?= =?utf-8?B?cWhTTkFMQ1NlM2d4czhXd0NNOVRPY0g4NXR1MWlYOWxEWTJMT2o2RlN2a09U?= =?utf-8?Q?nlZDurPurEgMGe6BrV/5BuXRV?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: ca639a99-0714-4135-b95a-08dabb617b61 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Oct 2022 17:00:58.3976 (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: 6exolRBveFh+5v1Vs/GCraLPyfYUSLQe2vQsmfz7GoQXf7nwuegdziRsF3hgewkTgfZxQNg+e0dIzS6grm6nxQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB9131 X-Spam-Status: No, score=-3029.5 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: Comparing the sum of the relevant .imm fields against a constant imo makes more obvious what is actually meant. It allows dropping of two static variables, with a 3rd drop requiring two more minor adjustments elsewhere, utilizing that "i" is zeroed first thing in md_assemble(). This also increases the chances of the compiler doing the calculations all in registers. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -1908,12 +1908,9 @@ 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 regxmm = OPERAND_TYPE_REGXMM; -static const i386_operand_type imm8 = OPERAND_TYPE_IMM8; -static const i386_operand_type imm8s = OPERAND_TYPE_IMM8S; static const i386_operand_type imm16 = OPERAND_TYPE_IMM16; static const i386_operand_type imm32 = OPERAND_TYPE_IMM32; static const i386_operand_type imm32s = OPERAND_TYPE_IMM32S; -static const i386_operand_type imm64 = OPERAND_TYPE_IMM64; static const i386_operand_type imm16_32 = OPERAND_TYPE_IMM16_32; static const i386_operand_type imm16_32s = OPERAND_TYPE_IMM16_32S; static const i386_operand_type imm16_32_32s = OPERAND_TYPE_IMM16_32_32S; @@ -3976,7 +3973,7 @@ process_immext (void) exp = &im_expressions[i.imm_operands++]; i.op[i.operands].imms = exp; - i.types[i.operands] = imm8; + i.types[i.operands].bitfield.imm8 = 1; i.operands++; exp->X_op = O_constant; exp->X_add_number = i.tm.extension_opcode; @@ -7652,18 +7649,12 @@ static int update_imm (unsigned int j) { i386_operand_type overlap = i.types[j]; - if ((overlap.bitfield.imm8 - || overlap.bitfield.imm8s - || overlap.bitfield.imm16 - || overlap.bitfield.imm32 - || overlap.bitfield.imm32s - || overlap.bitfield.imm64) - && !operand_type_equal (&overlap, &imm8) - && !operand_type_equal (&overlap, &imm8s) - && !operand_type_equal (&overlap, &imm16) - && !operand_type_equal (&overlap, &imm32) - && !operand_type_equal (&overlap, &imm32s) - && !operand_type_equal (&overlap, &imm64)) + if (overlap.bitfield.imm8 + + overlap.bitfield.imm8s + + overlap.bitfield.imm16 + + overlap.bitfield.imm32 + + overlap.bitfield.imm32s + + overlap.bitfield.imm64 > 1) { if (i.suffix) { @@ -7700,12 +7691,12 @@ update_imm (unsigned int j) else if (i.prefix[DATA_PREFIX]) overlap = operand_type_and (overlap, flag_code != CODE_16BIT ? imm16 : imm32); - if (!operand_type_equal (&overlap, &imm8) - && !operand_type_equal (&overlap, &imm8s) - && !operand_type_equal (&overlap, &imm16) - && !operand_type_equal (&overlap, &imm32) - && !operand_type_equal (&overlap, &imm32s) - && !operand_type_equal (&overlap, &imm64)) + if (overlap.bitfield.imm8 + + overlap.bitfield.imm8s + + overlap.bitfield.imm16 + + overlap.bitfield.imm32 + + overlap.bitfield.imm32s + + overlap.bitfield.imm64 != 1) { as_bad (_("no instruction mnemonic suffix given; " "can't determine immediate size")); @@ -8064,7 +8055,7 @@ build_modrm_byte (void) immediate operand to encode the first operand. */ exp = &im_expressions[i.imm_operands++]; i.op[i.operands].imms = exp; - i.types[i.operands] = imm8; + i.types[i.operands].bitfield.imm8 = 1; i.operands++; gas_assert (i.tm.operand_types[reg_slot].bitfield.class == RegSIMD);