From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) by sourceware.org (Postfix) with ESMTPS id 4EB01384781A for ; Wed, 16 Mar 2022 08:45:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4EB01384781A Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02lp2051.outbound.protection.outlook.com [104.47.6.51]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-30-RU65fM1CP0erWKnaZI5yMA-1; Wed, 16 Mar 2022 09:45:18 +0100 X-MC-Unique: RU65fM1CP0erWKnaZI5yMA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ICvvakECBN53GxDVW1GCU+j1BFbeD2M+SH6oD29dY4Z1hBck6kOJOXzhizVrKfO+Qc7cAuUehim1reQWmnOROKw42FPGV4eiQP12dxoRZ72nWqJd/QJi8gI+YrIzS2GeAj172T1WzBg6GuBfYclnyNKOIRdySvY6dJZPlO6QM1h0M7+6TX4DjHLVadZrKXkU9/8w5jqrfnHN0jfaFAbkfYGni56RAccdwEusUJ7O42/Xu6YZjtE5hSG9Ee6wzQQKWlpkdVnvgm5RlmTmZHFuxlbrE+iNmkLNCLiOmRM0jQF93DT37GQVrhMmr2Cyr+Jgiu9jVIYDcDQQc4IzKiQEbA== 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=xZTXI8af/1AURL41XeOwarCtLbo6KHkO9DXJWMQFwKA=; b=b2Mxa9mEL9/ne2DyP+/Mqfe5mMn4f6nyGwdDq/y/nH/6SVQj7skYho8rKLzIYXbvL4aKso8bKGiDfB6eldx6fSiUzM2Mi6c2TtWkny7KMLwDaicpsk804XUqdIcowr+EvOF93aUXeDwaZk7LiQvreoF8Jw57vbsABWmstxfit+xzq4bs/BV+o0nvnq2oq0gw4XBnCBZhfKK0lDAvDntanSGITOk16T/a6QFwJWHVshxdUXapEWqs//3cnMuLFpNXzvQKYsAOxxULBxG9uOs4EWvVhrCiJqN6KrQYiG1uun9QABsfoAfO7gWVlfCGepUzRRwdloSY/Tx4S+ZfXzaYNA== 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 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by DB7PR04MB5401.eurprd04.prod.outlook.com (2603:10a6:10:82::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.15; Wed, 16 Mar 2022 08:45:17 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::e8ce:db1c:5bb0:af0]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::e8ce:db1c:5bb0:af0%6]) with mapi id 15.20.5081.015; Wed, 16 Mar 2022 08:45:16 +0000 Message-ID: Date: Wed, 16 Mar 2022 09:45:14 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: [PATCH 1/6] x86: assorted IAMCU CPU checking fixes Content-Language: en-US To: Binutils References: <93cecdf2-b805-4508-9e34-89fd0011ccc9@suse.com> From: Jan Beulich In-Reply-To: <93cecdf2-b805-4508-9e34-89fd0011ccc9@suse.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: AM6P192CA0101.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:8d::42) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e0847b13-3363-4d38-e73f-08da07294b77 X-MS-TrafficTypeDiagnostic: DB7PR04MB5401:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PTn5bFa0DFgg0bp3EwPGhDefr1u7QtdTlJWd8f3yK4wuG0Ik31l2mjMxOLDDc3jMYDRb09SoUiD70opT8H0r/ocxhVjZv2P8OHja543l4Sw3Q/vChRxdSYgBP/ZAeN99IjRixmunz9SMJVerC3GHr8FnUp3Pd6uEveAEbRid1uoj5TTftg4gi0n7xUYow56EqhRgqlv5DUOOj55W/f5aMKGhnOz8x12rbGOk/i9JOIr0DyDuPCLxFUDum00EK0ONAwo4yWZErWS6PjP4IgiXQl3+ckROKuBt6mQYZCNAnEsz01foOlX1P5DYSvus/tzeFKEGwpaOkvjapZxDJDvVzn3jDCcpOaT4vIOtdSvmvL4rKlMOHunDubwpq7qki5V4/ZhTZlR3qYXyjTsB03V2dX4zSzQ+xIq4iyxQZLX+7mQSBuiSHW2vqwoVS6pavn5gJNISDDnDr7ojqV2jeakN2gF9M12+kTbqEJyvy4PcW2TapoOGnvO6cUcTmlWwZgjZ7yDnuZtDevbRulZgTbqNlETj0DqSYFOtaK7mLeMrQedlJoMGJBbsql8wb5aHmdj/WTwrVhZKKqnNnd8EDy3PYhHSvfBjYPNSxCgLCPz+eMBbY43AYWdegtHV57sIdxhk3MwiZXF5X0XafK+oxc4QaNv3LItjsLsqDLrPKEvMC7QgVpod+p1eevYTl2E8nUCJGURr+Utoe6aZFisOcGJ62VLTmWfJQp1aOHTiNp0UFB8FuXE2QdkAcnUIZkQY92/7 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB5600.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(508600001)(8936002)(31686004)(6486002)(316002)(6916009)(36756003)(6512007)(6506007)(5660300002)(2906002)(8676002)(186003)(26005)(4326008)(83380400001)(31696002)(86362001)(38100700002)(2616005)(66556008)(66476007)(66946007)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YWxBTFJ5SUhKbHhZcWF3U3I0dUZBVXBGWEJmaU1WQXhTU0w4aTh5bXIzcmVo?= =?utf-8?B?Ly9vTHVwWE5VWmN2VDhyS0d3VXlsSWZXdnVrckdpUzUwWWhPb1BrZ2VHZERl?= =?utf-8?B?cGxGelZuVmJYUWZCRHB2VzNSQktibDl6VkFYZW9YQTROVXIyN2U4ZDhIeCtj?= =?utf-8?B?KzBPL0JwZzdTd2NtT1dzRk5naXVKZWNzZVk2RGJqLzJDM0FDbHo0QTBwbTNI?= =?utf-8?B?b1pWem8zb0cwS21HMFo5eHUyV0x5cHNBRHQzVm9Vd2xzejYvSlBuM1pYUFRM?= =?utf-8?B?RjlTZXJZMWRkdk9MbTdOTFdvZTVWWmpCZ1ZuVTkveGZXejUrOVZkQmFLQU9v?= =?utf-8?B?emRQMHltY1JTdHdmV2hRaHVOYnRyUHM2T1hSRzVSSWVBdWpKWXRtM3hFdDA2?= =?utf-8?B?MFdzdUpXYkJwdDFtWHM3dFlmMFZtVWNtVU5GYVQvUHZpQ1duY2drb0NlN3lu?= =?utf-8?B?Vjlxc3RaL3NkNjJpajhCREp5d0g4WmtUMS9OUUtHZHl5ZjJKQUwvcGx2YUNw?= =?utf-8?B?RklhRHFrL081TlZiTFl1cUY0UERqQ0t5OGhDaG5ad04xZVBURDBpYVJ2TjRQ?= =?utf-8?B?QTNmZXcvYnFZbHh6MUoyLzA4NjVCQ2s4OTJUOEE0RlRyTFpQYUZnbi9rRkRw?= =?utf-8?B?Y0k3M21nTHVsTFlNd2VqSE9mNDBJNFltRTVGbVZOaW05dGVJbzdTcWVIUTJH?= =?utf-8?B?MTlUaXN6NE9wT081bm1Tb1I4MTh5SEw1TTJkanMyZlo0Q0R5ZHNEcmRhNEQ2?= =?utf-8?B?YXpKQmpuWGNZcFJLNWlVYXQ4dmhBQlc0TStxaTZEdkN1NENnTEpmZHVqTFpM?= =?utf-8?B?Rzh3SDhjS2EvYzAvWVpSMnh0Smp4dkhubmhFTzJ5WGJiRGErTUVJalRIOFIz?= =?utf-8?B?WVNPbFVmb2NGa1R1N0xRcllSMTByZzdQVWlOMU5kVnpWQ1hHMzd1dW5wQlI1?= =?utf-8?B?cEo2c2ZnODVDUmMvWU1EMnVPY2pDRS9UWDZiUXkwWDNTMmF6ZVJJd3U1VGdW?= =?utf-8?B?NzhhMmJrWFNTZzBDQ09jNWtFT3dLdVVCeldVQnNzM3ljNHhYeFZSemFlMms4?= =?utf-8?B?QzNiV1lpMUFOdDI4c0VqcEFOblM2SnphNnN5QklWSWtSd1ZBbEljNWpORi9S?= =?utf-8?B?U0RqdFRock96V24zOXZJVlRDb29QdnNleHpSK0R6WGZTcjFyQnAxQ2NUK1kv?= =?utf-8?B?V293dExyYk5TcTExdHdQUWpsbWphZENZOGltbzJMc0RGeE9uUnhaY3pva3Fq?= =?utf-8?B?SU0wd2lMQmF3OHZraTlCUDE5OWk1SVhDL0YyZXUzaVdlSGRnb2h5dkNPMkZr?= =?utf-8?B?VkkwbjUyaDVlUnU0SElhdWhtbjZ2aTJsMUsrQnNzV09YNUU2Tm94Zit2UkMw?= =?utf-8?B?VGVtZHpHeDdRSERFa2dLMGN6VisvOTNjZmdXK25TQlM4YmVDTzFqYWJJVkIx?= =?utf-8?B?Yi8ydHVjc0o0aEN4M2JhdnZITTBJa3BVdzk2YlhJay8ycGdLQng5ZnJ0T0RH?= =?utf-8?B?bS85UlJaZHZnZHZxbWtaZ2s0VTYyMUlhU1lWNUY0S2FlbUZFbEU0dHJDMi9W?= =?utf-8?B?cndudVFIQXBZTXRlL09QQUhWMWVNQmZEanptei9EcC80cEEvT29KamhWMkFZ?= =?utf-8?B?cm00MEEySEhYRVRHcFZWZTRkdEp1aTl6T2FxOWhlL3lZaUtJbldJUlZ0ekRC?= =?utf-8?B?VTFka3I1ZFBGS29GaGVickNwNHpIYWZhamlyTzFOZmFrVDRnVG1FT3BtVlZE?= =?utf-8?B?RFJXTnpJWFBZNUVrQ1JDQjJ6K3pjSEFwYWhhZ1E3QVNhZSt1TTljNjBkUzFn?= =?utf-8?B?OGlKM1lmOE1TTnRieVQrYm9TNGRyVEtSa3ZGNE1MangrZm5Qb3gwbDlubUVW?= =?utf-8?B?UHBjbG53emRyR2xnNkk5WjJBc2xuVW1ScmM4UXFFa2VpQi9ublppbVJwS3Rv?= =?utf-8?Q?O0GNZNOlYAjItnOG3P1u3yqyUbPbyqGf?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: e0847b13-3363-4d38-e73f-08da07294b77 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Mar 2022 08:45:16.8799 (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: /r1LOyD7fNNp7jPcVcHj9uqWGdybk0FAuIw07D1UBZVi1LhmJL0REBNG4EUiKDxtClafQFwUqEEHvIAoQen2hg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR04MB5401 X-Spam-Status: No, score=-3032.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Mar 2022 08:45:22 -0000 The checks done by check_cpu_arch_compatible() were halfway sensible only at the time where only L1OM support was there. The purpose, however, has always been to prevent bad uses of .arch (turning off the base CPU "feature" flag) while at the same time permitting extensions to be enabled / disabled. In order to achieve this (and to prevent regressions when L1OM and K1OM support are removed) - set CpuIAMCU in CPU_IAMCU_FLAGS, - adjust the IAMCU check in the function itself (the other two similarly broken checks aren't adjusted as they're slated to be removed anyway), - avoid calling the function for extentions (which would never have the base "feature" flag set), - add a new testcase actually exercising ".arch iamcu" (which would also regress with the planned removal). --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -2839,8 +2839,8 @@ check_cpu_arch_compatible (const char *n } /* If we are targeting Intel MCU, we must enable it. */ - if (get_elf_backend_data (stdoutput)->elf_machine_code != EM_IAMCU - || new_flag.bitfield.cpuiamcu) + if ((get_elf_backend_data (stdoutput)->elf_machine_code == EM_IAMCU) + == new_flag.bitfield.cpuiamcu) return; /* If we are targeting Intel L1OM, we must enable it. */ @@ -2873,10 +2873,10 @@ set_cpu_arch (int dummy ATTRIBUTE_UNUSED { if (strcmp (string, cpu_arch[j].name) == 0) { - check_cpu_arch_compatible (string, cpu_arch[j].flags); - if (*string != '.') { + check_cpu_arch_compatible (string, cpu_arch[j].flags); + cpu_arch_name = cpu_arch[j].name; cpu_sub_arch_name = NULL; cpu_arch_flags = cpu_arch[j].flags; --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -698,6 +698,7 @@ if [gas_32_check] then { run_dump_test "iamcu-3" run_dump_test "iamcu-4" run_dump_test "iamcu-5" + run_dump_test "iamcu-6" run_list_test "iamcu-inval-1" "-march=iamcu -al" } } --- /dev/null +++ b/gas/testsuite/gas/i386/iamcu-6.d @@ -0,0 +1,3 @@ +#as: -J -march=iamcu -I${srcdir}/$subdir +#objdump: -dw +#dump: iamcu-1.d --- /dev/null +++ b/gas/testsuite/gas/i386/iamcu-6.s @@ -0,0 +1,2 @@ + .arch iamcu + .include "iamcu-1.s" --- a/opcodes/i386-gen.c +++ b/opcodes/i386-gen.c @@ -250,7 +250,7 @@ static initializer cpu_flag_init[] = { "CPU_K1OM_FLAGS", "unknown" }, { "CPU_IAMCU_FLAGS", - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586" }, + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuIAMCU" }, { "CPU_ADX_FLAGS", "CpuADX" }, { "CPU_RDSEED_FLAGS",