From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2054.outbound.protection.outlook.com [40.107.7.54]) by sourceware.org (Postfix) with ESMTPS id 938113858C62 for ; Fri, 20 Jan 2023 10:00:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 938113858C62 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=m6bdZEjjOa5hX9k5T09k9F8IouxLMyqZwvoBtlQTh0tm82v7Dv1QKomxcmLrNqqL/yLQeAGa1STnE/5MjkdXAmnwsKt34ofpSndWUpIv2rSqu/EG44nLuL3fMx1My8kct7ZJ7/7wB6VrTp2U9nIMmsWFBo2kvDkz2lY92poKqvWB82XARwnjooNW1tNN0mSVkiWlBFjLHuS5ZdaXXh4I6LRP8hpQ8TmXIAz68UWFAkqaz7fjx/BZjrjF8FN+vX1/7nPBBN5hvRzN3gJxvIaKtXUv84a5q+tAIfje0YNy3l7j4LVomgTn3kc57BSz3xha9xKMihQ35WosFp+ioyluzQ== 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=kyzpBadJINBKcj8QS+/UbwMrNVOzi+HLofjcnBkrfns=; b=IH2c+7Pdj4e0MuxkyA/yhusUU0IyfFgvTGAfvewVvVvcocC28qrgkheMDVTrvzaRuD17YSXbUeqsENSweTSzmYm/8TPiSMOsHw/SgKl3RJS6R1GLRhEQa0Lb30QpMIkGhbzCpzbiAufZmMDyOFso4Rp0hHcuYFrq9wyOFZvoPTo2PuNzMpCrEw68yeWC92sU01IOGA7AMjYsnsY6BjS8wGP58H6VVxNYZd2xJVSfmio2PmiHJNKgFxeAsQeoEATPGkUb/RCSyBQvVJJ3cVR5eA17Ownvz4YSF92dTdE5HYPbGtp6fDr/yK7fT23RQHa0PiM8EkQkIawSVS5+EMgNBQ== 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=kyzpBadJINBKcj8QS+/UbwMrNVOzi+HLofjcnBkrfns=; b=CP4l4DV9y0zlfwvxlfsVSyhsmvHEhy8hbmoWqoNdIuZ3xduIGIA6ZZ6K/e/l8jRu1Y8wxRCvnzd0O908oP52Aux9lojyq/YN9efArlNwX3eVS145dHoiqIRTBWAV/Y5m9RVTj6fbiCDpASyxFKTwIDQP2zOZ1Vs14wZoMzCoHLSw2J9sb40bif/VPoVBD4zDL1QnlFW2jwMoV/DWHdfyXEhrMGr+OogfKp3NLmT4Alp1KferOv2Ozl0pVPgqcytmXYkEa2xsd0fklzOCfjkbaJ1k2znn1G+I/cqcrJEpsaNTTLAdFqesEHtiinDO4JcrkCki4rkauiDhWSDKm/Jh5A== 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 PA4PR04MB9246.eurprd04.prod.outlook.com (2603:10a6:102:2a1::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.25; Fri, 20 Jan 2023 10:00:54 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389%7]) with mapi id 15.20.6002.027; Fri, 20 Jan 2023 10:00:54 +0000 Message-ID: <44a44856-b7b2-5236-9d5e-6c681fc0fb82@suse.com> Date: Fri, 20 Jan 2023 11:00:54 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: [PATCH 3/3] x86: move reg_operands adjustment 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: FR3P281CA0058.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4b::19) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|PA4PR04MB9246:EE_ X-MS-Office365-Filtering-Correlation-Id: f7ed1fb1-c087-4968-52b3-08dafacd383d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +w8lc+tJV2eEghGvdbCEEygBXdLbhL0sF3SBcytbOTDSOrAU/gr52enpQVN+ikbDo+AWomLaE0Moj2LzKi8fmm1ywYcmAPu4kJj2LrV+09hdDs8JjK/Ft4TI3QPKrL/44PzGjw4hCEgXHn+ZfIP+LqSlYPem9lt4JuUdtY9TIIPAE2GeU52mIFmGTKyyo/VwFa/XLrpic4eeYLD6TXMkjSgRBcQiCQbfwi34WFhW7jOHdCgIz+RGxlV1zCldEGCeI6dQn+eUdSVXgJbhlf2E9g4HB6YUQpIrZHHED20TK+F4rIggdWH+V4xTvBdst4mvdttuDBwOOfpi4ozCK3dvm256tV4T5qTzfNTl3ZN5NmslMAFioY89FdYYKckz72QomfVh+/BXP9TSUAQPf97DuWLygNbC+2oq8uev5hTfftoPWdn1QFUPxlEAGBVrLuQ3eZFGVRUL0iS+tlTyyqTlSGx53Z1/iT2xh+CxzoxZjXZ2xMJZfEIMMV9m6huBOyLxoUJh6t6P0ZCECMRzQ4bLEJJXdWXhrFpFZD5xt5yDcUDOxuXtYrQumgm8u0e9imggdBZQ2S/2i2aaBYGwADjEejMrm9X8Q+K0drefnuKbAqJDvhqlOKg4IQic1sS4ZkecknaZ1OxnB/NNYf9aQ0BxsCfPY1tnoaWrIBrL5UnSD5UsX+aEMz69nplhv9mSl2U8HsvCIjTwrgpbTIH2A9RA2w5scTGeREvWQK020SF8GH8= 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)(346002)(366004)(136003)(39860400002)(396003)(451199015)(36756003)(38100700002)(31696002)(86362001)(26005)(8936002)(41300700001)(5660300002)(316002)(66556008)(66476007)(66946007)(2906002)(6916009)(8676002)(4326008)(2616005)(83380400001)(186003)(6486002)(478600001)(6506007)(6512007)(66899015)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YTFsNG4zYkdCVnF2SUlwcTRod0hTT3hQNlVRM216WFZpOGpFYjB1bHpaS2V3?= =?utf-8?B?VmZId1duelpWeXlKWkxreE9kamZkNFZaRjNQblZ5TXdXY0lEdHZCZVFMSjhL?= =?utf-8?B?UE11aFVWNVhrd3F1Sm5SMUIxSko4cTViaklqT3V4bExERTJ1WHN2S2ZmNEFK?= =?utf-8?B?T1dqWXRlM2F1M3hIOWZPajRQbzl6eVlUVzVjRmJqaE5KcVZnVm1ES2VGV2Vy?= =?utf-8?B?T0REbUdiZDRnUkRZb042U3RxSHdZeThtMnBrWUNuZVdpOEUyMGtITWpXZktu?= =?utf-8?B?R2FTSnF2L01zZ3kvOFlpczFYMy9Kbm5xUTlodGpEOWpSTnVCODJlZ1Y2ekpw?= =?utf-8?B?SWZTZkZSejduTEl3M3ZKUURkQ2NNVWhlYVF1YzIxd1FYV0UwaU13dEFiYUZa?= =?utf-8?B?bnRnTmN0ZnEyRnB1SmZDSHNBZnJKREM0VlZKVXowSUFjWEZDQmplSHU4R1c0?= =?utf-8?B?YzRVT1ZJK3pvQ2xYUjdabTBtd3NMbFlRYmlYcXEzcUV1R3ZXSnh4bHZrcUN4?= =?utf-8?B?RjBuZXJ2Um1zazNVRTM0bCtWTE91UTRDdE95M1l6dzRoT056RTZlU3JxWlY5?= =?utf-8?B?TTVVZUtlRDQwbmtjd0JqaU9mQzV2dFdMMDE5VVIvcllZM3R6cGpTelQ1Z2pW?= =?utf-8?B?bFhhNXBOL1dvVVhxOVBJRGFCZEFHc1M5VFowQTM0YW5DeG5RU1ZhU2s2Zlc5?= =?utf-8?B?UUl6U1hBRmh1UFE2SlVaUlJScjhwL1lSUi94cUlOVHpyTTAycEpiVEw5MWJo?= =?utf-8?B?WTB0UGJFVW0vbnEydjk2WWo0eXRodUpsbThFcjJtd2QvbEkyaGwrUHBsZDJC?= =?utf-8?B?cXhyT2NFaHEwcEtPL3VqaTBPS29QalRRSTIwR09wNEZiUFNLWXNNNEEwTi9Y?= =?utf-8?B?UWJMUWZyTyswbXlJdkdVaFBKMExpZ3k4eE1GeXJ2c3FOMjZ6Y0M4TGthZFc2?= =?utf-8?B?Mk93TUlxb1o1N0M5RCtIOTdwYlBETEZTU1JaMjg4bFl1K285UFFZT2VpcjlL?= =?utf-8?B?M09McDVWeW5sZ1pHajc2WkcyeVFJRmRJSnlKYURuU0xUcndyUkdjd0lBMzdj?= =?utf-8?B?Z0tNL1V5bEZrTzQrZDhXd0NOcDExT1hCNE5iaGE1THpYVHQvNDllaFg0Nzds?= =?utf-8?B?OWo5WC9XU3l3cHQ5RkxzRkhDQkhKOXIyOUZvNjJuNE9MZGJ3MWdKWERYYmlE?= =?utf-8?B?V1RyYjhobVFJTExtckRENmVJSktLcUpEMGNTWm1xYXNPTStzRWlVWnFIQkdT?= =?utf-8?B?dFEvdytKNGNoMlpBdXdxd3FkZ1J5NDFxRnVJZE85ejJNQTk3WFBMZWxKUGhC?= =?utf-8?B?MVdBazUyRWJ0MityQWtkUVRhTTg2Ty9nQnBPQkswNEh4MUdvWUcxdU5lRzFB?= =?utf-8?B?eHhxL2N6MXcvV0ZoaE9YUmx2UzRXWVk0bVlGV3FmQXN3MDZCNU5mZk0vOWx4?= =?utf-8?B?N0E2NzEwZ3BpcVFDUkJmcnFEa1BSOXZ1eURac3IxTDRtek4zR2tQN05ZekNh?= =?utf-8?B?VyszUVJHYVE1RVhQeUlic0daanlUUFlwcUFFdUc0V1JpL0gxYWduMFRzVlVN?= =?utf-8?B?RTVhcHl0ME5tVCtJT3AyRG5WcG02YWxIWmZmb01EMlhEU3o3R1JMS05LeVBY?= =?utf-8?B?ekdSSWVQeDR4eURqK01tdktmd1BWQjBjWGFYMWpucWh2d3kwRlhkMVUrTnNS?= =?utf-8?B?TUYwOUl4dHJHUW1SWVg1NXlCRTBKZ3JPVHRwc0Q2eDBzdXYwMFZEaVlQcFl2?= =?utf-8?B?MU1xcmhyd3VBbDdIT1R4VGh6eTRLbHV1clJMRy9KY0szM3Nncks5NlV5SS96?= =?utf-8?B?aXNwQmo3LzhLNWRGNnI0aHJycmErbjJ6WEMzNXdRWURKbjJnOTFtTkV6UnZM?= =?utf-8?B?bVhiY2hFSERLUlpDcm1aYWozd3p5SkZ6UzZnSDN4Ny9MTmpNQWZxK2M3bWpZ?= =?utf-8?B?VkRjMkw1SmJxTXdvUlpCMHFHcjBWYkNiUU5jc0FtbFJnT1Y2d2g3VWk0TE96?= =?utf-8?B?NkhPVVRzRXJTWTBYMldWc0xJamZvUEh4Tm1MbmxBUWZrTm5HaFZvTzczRE8v?= =?utf-8?B?em54ZW5RMXljK2h5REo3amJLb2tETmYwd0FhM0hKOUhGMDBWWFpTRHJyb0Nt?= =?utf-8?Q?Bm5PF+wTiwULT25Ij/KF39VOK?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: f7ed1fb1-c087-4968-52b3-08dafacd383d X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 10:00:54.6379 (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: ESd290IAegnOYnJEntL0aooyGA8OFKaSAzNciGHdbrNQAWaFUzNkY95cgisOjUXJKXsD/QSwG9QQRbXoTQdkOg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB9246 X-Spam-Status: No, score=-3028.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: Ideally we'd do away with this somewhat questionable adjustment (leaving i.types[] untouched). That's non-trivial though as it looks, so only - move the logic into process_operands(), putting it closer to related logic and eliminating a conditional for operand-less insns, - make it consistent (i.e. also affect %xmm0), eliminating an ugly special case later in the function. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -5317,14 +5317,6 @@ md_assemble (char *line) if (i.types[0].bitfield.imm1) i.imm_operands = 0; /* kludge for shift insns. */ - /* We only need to check those implicit registers for instructions - with 3 operands or less. */ - if (i.operands <= 3) - for (j = 0; j < i.operands; j++) - if (i.types[j].bitfield.instance != InstanceNone - && !i.types[j].bitfield.xmmword) - i.reg_operands--; - /* For insns with operands there are more diddles to do to the opcode. */ if (i.operands) { @@ -7936,6 +7928,13 @@ process_operands (void) unnecessary segment overrides. */ const reg_entry *default_seg = NULL; + /* We only need to check those implicit registers for instructions + with 3 operands or less. */ + if (i.operands <= 3) + for (unsigned int j = 0; j < i.operands; j++) + if (i.types[j].bitfield.instance != InstanceNone) + i.reg_operands--; + if (i.tm.opcode_modifier.sse2avx) { /* Legacy encoded insns allow explicit REX prefixes, so these prefixes @@ -7970,6 +7969,7 @@ process_operands (void) sources. */ i.tm.operand_types[0].bitfield.instance = InstanceNone; i.tm.operand_types[0].bitfield.class = RegSIMD; + i.reg_operands++; goto duplicate; } @@ -8025,11 +8025,6 @@ process_operands (void) { unsigned int j; - /* This needs to account for the adjustment already done ahead of - calling process_operands(). */ - if (i.tm.operand_types[0].bitfield.xmmword) - i.reg_operands--; - for (j = 1; j < i.operands; j++) { i.op[j - 1] = i.op[j]; @@ -8042,6 +8037,8 @@ process_operands (void) i.flags[j - 1] = i.flags[j]; } + /* No adjustment to i.reg_operands: This was already done at the top + of the function. */ i.operands--; i.tm.operands--; }