From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70055.outbound.protection.outlook.com [40.107.7.55]) by sourceware.org (Postfix) with ESMTPS id CB9463858028 for ; Fri, 11 Nov 2022 07:55:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org CB9463858028 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=HkwhEc9DF1xWeS/wymOuhkCMtZ3FhV935v9Lao6/7Z1Hcvqsuq2cPdJ7yNBTzDgwtJmCoW3qEyHcxcF1E6PKdOkQmlGMLTA5h2b1JRYnryC6d0sh0ERcgzfGbIGYzG570BR1+IaF1yfyrYHcN/gGbXTYCLoRTDGU5SYHdeXjAprQ/6ziOlpGBu5uRF8D1Jr9oD6Ct2qrQZ60Oo17IfYrkM4VjmRCufl8LvLaFLTbrFOPi/1zWxuSh0eXWKPyr+6oWL8kpJ5TbpFi7db3PBVehK8a8+yzweJW4La5oM754GFoiKNPmVzO66jgyhnj/kJkf/btN7S6xmr2ny96qHKH6A== 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=v28jIWP9R4ZHBKJ4inZHdqmuJQNpFVO6ruC8e2aMbDc=; b=KFRLlya+zgOXgXAOlejcOj+5My3JgdkvDUgUKb+dUXJU32c61jwuJwZaRBIKqHWKupgWas1BaFWp4wF4mhnvw3tA4tYb0sjwlJ+UObZfGfTx+V0DQ4NEAG12cXQsjHN2vKON58F4jv3YuzPf4um2EF3EKseYEvq2KXdWOEVqecWV0jC4O5Q1vu06Cq2okjcf+dRlsU02u8eiwqBs2UPZdVGehUNltQhwWJKLxyAihOjD3IxBw+0H73UdUs9Pt6Sx8koqhFLq9jhStBO6sO6we1DLMLRDD3cuka7dsn4YmqXbhVupARsnBqtnspO6JgLdESGwoM959ePiXZbGTv108w== 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=v28jIWP9R4ZHBKJ4inZHdqmuJQNpFVO6ruC8e2aMbDc=; b=TjaWG+Uwsm5c2Omvt5IqKbGTgxH7KgFt4oXYtWoEWa1gE+rKs0+ZhyHy4+BWGSJYuq7CkFkOTvHKi7gkbXiRnk17hYtIgMnv9zZ2IOXwhZHMxbowcfwCCASSF5Adl7dnzIMMaGr6sdA+9q8i6xIfVbuLRGVogbeC5D4htfVUm4jJvosbrdd+sPF3rUGi0EokPqjeSquqgDfA/i1iXQ+SBbGPMvrNy27YuJPGO1izeMIlwXEv+9fryQeapspJPnEiKROhm12Vc6TOtH48jJQJs1rKgvTPy0+A9KxCHIXiGUFCz8kayHIlq42EdYmNewVv9YjMEUv+R4sIzKgmg5sFRQ== 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 DB9PR04MB8234.eurprd04.prod.outlook.com (2603:10a6:10:25d::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.13; Fri, 11 Nov 2022 07:55:48 +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.5791.027; Fri, 11 Nov 2022 07:55:48 +0000 Message-ID: <443cb5bb-880b-5999-1fb5-b2507cb79cd2@suse.com> Date: Fri, 11 Nov 2022 08:55:47 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 Subject: Re: [PATCH] i386: Check invalid (%dx) usage Content-Language: en-US To: "H.J. Lu" Cc: binutils@sourceware.org References: <20221104205547.3728827-1-hjl.tools@gmail.com> <781ed098-079c-212e-7e46-a375c27f5486@suse.com> <73b15165-8615-282a-560f-30049b1963a1@suse.com> <6c7794ee-49fa-68d0-e659-435512da64fe@suse.com> <5e2a1d31-546f-23bd-bd2d-2de39af81ce8@suse.com> <3475fab2-3f5c-b761-2aa8-ffec7536d734@suse.com> From: Jan Beulich In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR0P281CA0131.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:97::16) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|DB9PR04MB8234:EE_ X-MS-Office365-Filtering-Correlation-Id: c6de80d0-d0c9-410a-7694-08dac3ba2549 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1MnDhmCP76YRdHwMoz9scGJPvgawvYvRlO5hmem0YZiqQK8K3vFKVV6DUltG0T7Gq8ZXMhSSioc68ehftpxD0HHUzvRpcV0z2clvI5xLDaQrTmNVaLDyTaO+qUhXOkSrx6WnBNWkzyBcinQ/rmHZgRfI2UBQ4Rij8Y/AHcMcTpH/xermzcD0HYm3xLjk6GN9K5LKamFlti104sMPKj01G4EMqpTMHrDgBq1v3poXN6ZwjpHsubxd0CEwlqEmnXE9Kpm9B45V6Y40Wc067CU5tZZvwAMZoDJ7m0DkpdOLwkapYR8rqRk83e2gav6VOqWl4M7y85loQkyi3BttFEtHDHO+I0AKG0g/RuEum4Z3OxXkJaKSDWnn4YXzOoEn2LtQjijp3jFZ1hiQ7c7pR6Hp7JDVXvfs2s3H5T4Y+pqIxFWsAa3JEn5JArba5eP2BaZ+6KDk1yN1gpQoYYWJnKkaDJ2NvS+Uez9vf6LUDN6Y4iLAB5YlUCIWD/fevLmz61lUnTTDMFKPBq46MVHf0oIKhabXT22WaCW7qRyygjO/E+fVzGhpuoprrwc5R+y95j4smaC4QjHQbcId7rpS8ALEH3XwUUv/acc6x1rl1GElIvnAgFXEi9R95jjQM3vDYIqzpUMoRw49dw3C3EJRFKNjPNWdqK6JD5KwoR22V/Z6YpCgiuf0ezvWAqzxGpBKv/ptPzilFtWr3ciZz86Y3MS2JLjIizO32q2n62jmxh5nlUl/AzNEp0jxpA8eqYGAzbyLr4edw+45fY+acsZ/nsFyKYYN/3Mst9GUZ/0+8ZqmlO8= 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)(396003)(346002)(136003)(376002)(366004)(39860400002)(451199015)(53546011)(36756003)(26005)(6512007)(31686004)(31696002)(38100700002)(83380400001)(186003)(6506007)(2616005)(2906002)(4326008)(66946007)(5660300002)(8676002)(41300700001)(86362001)(66556008)(66476007)(478600001)(6486002)(6916009)(8936002)(316002)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Z3BPQWJEKzBWWHlNbHI1OGFLdG5uSGhqZkwyOVdPcmFEZ2dBR3hFRlJLQlZY?= =?utf-8?B?eWY0RWQybDF4dU4wcDJpOGNBU3lqeFhhZmczTzMvUXZSRXUvZ0VDWUU2UWd3?= =?utf-8?B?UE96Wm9hRnlSLzVRL3VRalpsaGM5YmRxSWhWSVV0RHMrRU1nbjErcHlaT3Nh?= =?utf-8?B?UExSYzhuQkNUWjFVMGtsbVdDaDZQT2NUdDUyaU9RVEZMck1KUFo1SFZIM04r?= =?utf-8?B?Qk5QWXhQOVh4N3Z2ZVlpQ2FDRmdaOVJ5bXlPdUpmbG92ZStFSzRZNnJKMms2?= =?utf-8?B?UXRNbHhZdjRKbXQ5MGxGK1lwWHZCTjdRVzhicG5TcE1JR3NyQnNobWhqQmp1?= =?utf-8?B?WHd3YTFHN2FHSWJBa05uUW5OTFlZN3hTRlVTcEM4dnAzWGoxVWxMcURGWFN6?= =?utf-8?B?dkpKOFovU3dFc1h4UVhyYjAvUHBLSndtSmYvQktTdVBFeGx0NTlLblZySXov?= =?utf-8?B?a0JxTjRQaDNhY0JFY1RVM2JZRGorcThzcG1SK05UdXU1MmpKajVreXJwM1Yx?= =?utf-8?B?akM1dkgyT3JmcEdUUHkvV0trMCtyTy9Nb0phcG4vNm52b3pPek1EdXJWUkwx?= =?utf-8?B?aHZIOE1wZXFyMWwrS3pHT2FCZWJsS2duYWRNU1MyTzVMOHlSMDZnZEZqOGVh?= =?utf-8?B?SE1wTEtSSmhFYnp1bE9MVWRuNGYzOERkRXh6SnQ2QmZ0cUJ5U01CMVNkUzha?= =?utf-8?B?TVhxbUR2eW01d2ZIRDNYWkVpYjB6SkhQaSswUTJkeHpQQ25zcFRpS29BNHE5?= =?utf-8?B?Ulc5dzl3dmw0U01Dd1JVSXZQMWJncEIwWGp5ZGpXdFVYU2FUOUdFMFNVS3Ra?= =?utf-8?B?b2YxTVB6elFmcmxWTFpHQ0l3SW02Tk5naHFldXNDVFNCY3JHV2lpNVZhMXFk?= =?utf-8?B?S1p4a2h1NzFWSUZHSHJlWldrVUMyN0xtYlYvQld1QWtOdlE3VXo0OEtBRkRF?= =?utf-8?B?T2Y4ei9CTGU1YVdkVHYxK1FyRDg1amRyLzVWSEFJNDBqMEY3TTRyL2lkTEZX?= =?utf-8?B?VWN2Q1ZJYU1UaEtOSzdVdlJyY2RrWGhhMFhzS1RoR24rTHFVVWxCRjlwcU82?= =?utf-8?B?ekk5K1VGRkEyTW1FQ0UyMm1YTU9oSkIrSzZ2anpMR3BzYVYxL0R3N3E4SEVR?= =?utf-8?B?eXdJMStMeGNydHlob2NJRDgzenJmaGovYVMxQVRBUlVmUFpCelA5K0hoSFNQ?= =?utf-8?B?bk9oeFA5N0xyV0tObDROVDVhTzFKampIZzhKdFd1NGpadHZ0bk4vNCtOSHAr?= =?utf-8?B?ZkdEb0VEdGFubE9DNHJoSTRjK0JxSEE1ZFpmMW5qQTJMVVBTTHNjbXk5bHNw?= =?utf-8?B?aDV4K1dnWkhiOHI3dkd3Z2QyQk1XSzJWK2lKUFpiMzB0RGNQQlprNTVkVS9S?= =?utf-8?B?QVdRdHgwSlFINFlEWUxXWituTUVZbEJEVGVZMHFsMnpqMGhvWFlJTzhPcWFL?= =?utf-8?B?Q0FuWUtwZWUzUExzNUxPNk40NmZqZ09oWEdCdUpTOXBycmFRdGxSQ2x1eEs2?= =?utf-8?B?c2EyV3ZsMEVGYi9rR1FvMGNtZ2dvSUswSDYvM0dLaUZlMGNmak8rUGF6ZXRI?= =?utf-8?B?aVVFb0svK3F0cGdPSXVvcE9CUkF4YXltRmZFK1k3aHpTcXB4QTVNdS80OHNH?= =?utf-8?B?ZmZFajhweVVPSGs0Wk1MZGJMcU9WMjlmVWdab0lGRHNHUThEQ0RHUndlOFNP?= =?utf-8?B?U3FONy9xRnFpdmZGQ2Q5SHJCdk5xRUtjUm5pQVEyMjJiOUVxcmxJWjZ0Rm5H?= =?utf-8?B?S2xZS2FqU1FiRGZSN0VaNmowWk9xa2FpazNOenJKZmo3L09udTM5eHNZVG9M?= =?utf-8?B?cEVWVjlmaWJ6TTR1ZVhkcE01TiswcVVsdnlHNnRkeWNQTXhYNTRBMUNIbjFt?= =?utf-8?B?cmllR3JWYitSVDN1SUZmTTVsaHZUTzlsM2h2dkJrd3FDczZJZUV4Q0E3UVNX?= =?utf-8?B?UWxIeE8rZTc4bGFTcWNyOWpSRjBwVzcrMzhwVy9YZ2xkUjFSNUZzOE9wemJn?= =?utf-8?B?TWZ6ZW1nZjhrZkxKVzJKUVdIdk9IMnhoUWx6cmpodGpjeGxoSU5MZ3ZUUjRT?= =?utf-8?B?bG1PUTZLMEF2NVlTcVpCVXFGSm82d0VXZmhLbjN3KzZQNUs0NnVqaGlsYmRQ?= =?utf-8?Q?Zorj8/ZtYDKZFmPAQxYlNlotJ?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: c6de80d0-d0c9-410a-7694-08dac3ba2549 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2022 07:55:48.5282 (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: UCWuNt/9P7Aqp15Uzf+dfbnU9MuPGDz9PxjPvxYGI4cacLIaJrDp1LIcaIIy6iPn0JFQXOv+mipi0p/ujJqi6A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8234 X-Spam-Status: No, score=-3029.4 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 10.11.2022 18:22, H.J. Lu wrote: > On Wed, Nov 9, 2022 at 11:21 PM Jan Beulich wrote: >> >> On 09.11.2022 21:24, H.J. Lu wrote: >>> On Tue, Nov 8, 2022 at 11:21 PM Jan Beulich wrote: >>>> >>>> On 08.11.2022 22:06, H.J. Lu wrote: >>>>> On Mon, Nov 7, 2022 at 11:34 PM Jan Beulich wrote: >>>>>> On 07.11.2022 20:58, H.J. Lu wrote: >>>>>>> On Mon, Nov 7, 2022 at 3:44 AM Jan Beulich wrote: >>>>>>>> x86: restrict use of (%dx) >>>>>>>> >>>>>>>> PR gas/29751 >>>>>>>> The AT&T mode special case operand (%dx) is valid to use only with >>>>>>>> instructions nominally expecting %dx to specify an I/O port address. >>>>>>>> Prefix the respective checking with an opcode check. Keep that as >>>>>>>> simple as possible by recognizing that opcodes 0x64 and 0x66 (which >>>>>>> >>>>>>> Since current_templates doesn't point to the matched instruction, >>>>>>> checking current_templates looks like abuse. I don't think error >>>>>>> messages should be a concern here. >>>>>> >>>>>> We use current_templates in similar ways in quite a number of places, >>>>>> when match_templates() hasn't run yet. >>>>> >>>>> Since the first template isn't the selected one, your check allows >>>>> the invalid opcodes. >>>> >>>> I guess I don't understand, but I guess I'll also give up. Which >>> >>> Your proposed change does >>> >>> current_templates->start->base_opcode | 0x8a) == 0xee >>> >>> to allow opcode 0xe4 and (%dx) is allowed for non-I/O opcodes. >> >> 0xe4 is very much an I/O opcode, merely one not allowing for (%dx). > > But it also matches other opcodes. Let's enumerate them all: 0x64 gs: prefix 0x66 data prefix 0x6c ins 0x6e outs 0xe4 in 0xe6 out 0xec in 0xee out As said in the description: "opcodes 0x64 and 0x66 (which wrongly also match the check) encode prefixes, which hence - even if used standalone - don't take any operands, so match_template() will fail there for other reasons." Jan