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.109.102]) by sourceware.org (Postfix) with ESMTPS id DE4933AA9816 for ; Fri, 18 Jun 2021 14:52:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org DE4933AA9816 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05lp2106.outbound.protection.outlook.com [104.47.17.106]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-17-GpDUqEoNO4uI8ddEI68F0g-1; Fri, 18 Jun 2021 16:52:13 +0200 X-MC-Unique: GpDUqEoNO4uI8ddEI68F0g-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Rp/d9qwEF0j3hAQG7wLSdTv1BqOGQsEMzsE/OOdUzEv/V/SbbKCBvz/A1O8hyhvHFGVAWA7K/2BVHXgYovz8lvXFR/G5SsL3VIxjxDLeA1IQfEX/dZ8BcqgRvyeDwXSyulLqiIBlWwi2UfN3xVgVFTnRNBguWsknxsCvw8O1Brin0zNzFbcEPSaT5BKza0RsJtPgOhPRrznUYd/YAxnssAtzsXQjQz6kWIH/GpZYHQdxMFvp+WG2HIj7y2lN1T04C/PsaVslJr4fHGofx6VYwhhmH5viYKlJrihg/B7re8kewZOnodXLuWPzbc1yLMQijryfdNcBsO8WNGocvuSczw== 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-SenderADCheck; bh=XJzEsDDfoMFcPn7QNOsCM7hl9lvzuqABcL6Y7lDM3GI=; b=ju3R+CjiGOlgQaNoB3YB+pFt2E+qCmrUYk5MizbBDXD9wIExujxlyek8oqDS5nwvIS4EMaSMerH9aXc18XmZu8o3pfFI5AMXnCFcaE9VJ7UjIQzCjBT/XVPI0+VSOWknKkXt0pAsn/3k3quAFzPoYQPs+3vAnb4o2Of5PmWKvgN0+y0YvUSlQfiAWza+wkN2c3om+8PmQ+qmSGwbpBuZcMOn6FQnyQnldLVK9uXtkjs2zPR3IdGmQ5OyxUu8I6xonTMZxTvolhy438kRbhCpV13wEUFcO5VkYxJHMPqLPB+MUl1MN9dRK1byiMlWTGF/uGQ1fsHjBOVAf/Szd4GQ6w== 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 VI1PR0401MB2334.eurprd04.prod.outlook.com (2603:10a6:800:29::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.19; Fri, 18 Jun 2021 14:52:11 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::f06c:6f5d:34d2:1c36]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::f06c:6f5d:34d2:1c36%5]) with mapi id 15.20.4242.021; Fri, 18 Jun 2021 14:52:11 +0000 Subject: Re: [PATCH 3/6] x86: harmonize disp with imm handling To: "H.J. Lu" Cc: Binutils References: <0babbec4-06ae-f980-18a9-20608046891b@suse.com> <34a3a825-8c9f-d52b-9a1d-6cd45e051332@suse.com> <803f03a4-bb6d-5580-b2ff-b1df2d5152f3@suse.com> From: Jan Beulich Message-ID: <9212df8b-01cf-0c0c-45c3-39de3dcf1bd9@suse.com> Date: Fri, 18 Jun 2021 16:52:09 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [37.24.206.209] X-ClientProxiedBy: FR3P281CA0001.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::10) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [10.156.60.236] (37.24.206.209) by FR3P281CA0001.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.7 via Frontend Transport; Fri, 18 Jun 2021 14:52:11 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 659874bc-ddc3-4df8-ff3e-08d93268a72d X-MS-TrafficTypeDiagnostic: VI1PR0401MB2334: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4gY/NPTq3JF2hQY7v1uIq1W7o1NsiULAMItNh0psUkXn0HzVfJ0j4dJNXkZVOHIpQHsNPeDfn5R1fhgz5kmIGoqtf6GbjdzgmRBp5YnWcP/xda41oMRiR/9W2CIZ1R+5+Ek4FjmLMywo/4QgWzyLFXAxmsD7qjgA7DYmUBJpNGKWLgr7ZRdVToQoiyaUduyjNbcungkvOGBaoHQL+cyqVMzua8rm7W4c9imLDn5TnI2rXp0HSmKLy/qpRnzMrUlM559+z/sqkhwfEhhqdEwnGItuF2KIBpi3HDzdXvQxkaog4bR3l3jShK9NxlqLbWl1PsbA9uMi249Mb6q0BfjNSWZ3f1BVD0tmbTEziYShz9U5S5pqNuRMQawP4c5OL/8Br9ZiFBcdfBgMXHPBjzPokNP/uFZPlgg/xE/GhNr7bXC3MIyJTJNmLmzhWXCCvR/LljGTcn6RTzLET9opEsDTs3AtGVZkI868mJh3sauoD8u3unrK+B+dUejnpge+L+y6XneHqf/4rjQfkmb0h0S2vy1Ls3EFtI5LRTzkMxPik3AagUuUE6+kpI89ZpoKloun4h/8yIKdQqdYU142nbiiYAezxQqNoFJWRnTGH/Z4eWxvghDgHDS18hm6PjaZp3HKpBCndc+3XVWMvT+04fWOq5/yYekeemYqf02xRzBA77bnSLfKU83yJKMYZ55q28vp 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:(39850400004)(376002)(396003)(136003)(346002)(366004)(66476007)(66946007)(66556008)(36756003)(6916009)(478600001)(86362001)(53546011)(316002)(16526019)(38100700002)(186003)(31696002)(956004)(6486002)(4326008)(2616005)(5660300002)(26005)(2906002)(16576012)(83380400001)(31686004)(8936002)(8676002)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?c3dmajVaRzdNQ3lPeTdkM3F2Q081VHl6TkpEeXhkM3Y2SEJsTDAxUUgydnNi?= =?utf-8?B?TjNpc3F6Q2F6TUJxdytBaHNmUEdSSDNBbDlhSDd1ZXlSdnlxVU40RWJrT0VR?= =?utf-8?B?ZExQeHFjdk9BUUJWbURJR0NmQTcyT3BUSCs5Rjl1Nk9aOUF6VmdJenpFMWha?= =?utf-8?B?d0xkemdiODNzcmhVOUg1VlZNbWVqRk5PeXN5VFZDNExHMjRwb1B2eVlvTnNn?= =?utf-8?B?YTFYVW9uV3lvU0pjdFdEUVRjOWRMQzg2bHdrMXpjVVc5blVINEJCQVVSbEd6?= =?utf-8?B?NWRVcjFYQU1VdjA1dkRzNUdpQzFMVmRZRm5uR1BEUFlLd0RpOGZQOVJsSFRr?= =?utf-8?B?emlnNW1PNktDSVZpU1FUVStoVjU3QktBZW5SZWhaZWFLWWowTi9yejNZbWFB?= =?utf-8?B?dFo1WFdTOSsxZzQxVGM0TWhNWWMxNzBWUk1uelJzZ2dpcGdIVzFmTHNqaGxE?= =?utf-8?B?eXRyS08zOGFUdjZMVURlZTdldmh5VU1oOWtGK0VaOXQwWmdVa0Mwam1MWllS?= =?utf-8?B?TlV1d2NCZVl3UmRnWW5CYk16RzlrTU1MSTl1UmQwMFQwMzNqRTJWeFlyRSs1?= =?utf-8?B?cE13ZEljdXZDeVdoSENNK1ozRlRUZEx2RlozUUFxQzFPQk9sRjV5eHpsRnI4?= =?utf-8?B?b295QTYrOXpBQ2YrdCtHTjFuMWpXQUN6RlpNcEUwQlpqbVdkQ0V3c0JYNFBw?= =?utf-8?B?TjB4ODIyc0hDQ2t3MEpRZjRXemVZVjFzMnQ2aDAzVXFRYU1mNjNhM1NBREhW?= =?utf-8?B?MkRNMGovb0Z0VlZCRDJFZUF5bHZrQXgrQ0ordUtoTm5YbWpOaUlsN1BJSzFU?= =?utf-8?B?YkRyUFdwVitoSkdhVGYycWNCK0VYbnJJblVsanlYRVRVZitreThiOG1JZ0d2?= =?utf-8?B?VllWWVJZcWRhM3RUTTZqMUJrZERwRDQrMTJsaGVMcFliQkVIZXhUSlFsNVMw?= =?utf-8?B?QjYxVldrRUVudEY0bDRXWE5zY0RyNGpMVytjSk9KaVk5RmloMEJCTHptWTdY?= =?utf-8?B?MTVTZ0lhZFhuN09uczdrVXNvaGJMR21xeFdIeGlNRUx6TmxPWnB3MDFmeUhF?= =?utf-8?B?MWxKU2hyL0RyRnNiM1lrV2tvNWxrZWxNSS9lOW8zbUpWWkg5L3NTRDE0dFVa?= =?utf-8?B?cG1aeWVDUGtXZS9XZUtqNUtJOFhCZjhYSTd4dUxrN2lnYTdyNVFLUmY0VGcv?= =?utf-8?B?TnE3Z1NJdHZLcXh2MDgxVWVuL3JKSnBVcGgzQmVKb1NiK3RUZ1J6ajdYK1pr?= =?utf-8?B?bjZtQmd1OTV3VFk4bXRiTVhVQVVDRkdqWVBEVHpYeGtqLzhYQVdyNCsxQXVI?= =?utf-8?B?Q2tHZ2I1Y2JJQURsb3VHVk1wb05OSnFPTGxDNDkrZ2krZHFrZkhnODQ3YjRq?= =?utf-8?B?U3dDdUl4RnB4L3J4WjBLM2lOeWJGdXpFWndoOHFRWFJ4d001S0dTYWlBNXNl?= =?utf-8?B?L29BT01VRnJjV3RKbVdCWTBLc2lKZWVxMGwrU1Noczl1aGdHY3ZjelBhVFli?= =?utf-8?B?TUhIRDU5Rk1jM0pxa1RBUThCV2ZLbjNFSjkyRGhJdVd5QlMwUHVUaUUrdkF3?= =?utf-8?B?VGYwS0w3cDBKazhTNkIyN0hSbFhxQ2MzS3NQSktRaHNNYU5zVnN1bmhyZ2wv?= =?utf-8?B?bUM5QXNDV0QzYTRsNVFHb3NTUlpseTdFNS8wV2ZROG1rbHFjcGptcmxQeVc0?= =?utf-8?B?SU9UdzEyeGFhS2tPL2JZR203elk5NU5kS3JHL2JnMnJiQnJGQkYrUHJrTEVJ?= =?utf-8?Q?ZDVp4h4tovgwG+eBHZWepgFH3sZMzPOZu6hMmKg?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 659874bc-ddc3-4df8-ff3e-08d93268a72d X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jun 2021 14:52:11.3332 (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: wPTz0nLlATGdzLnaXnuq9n0ssi6pL+Zk8CeKjVM15UkdasdYiVc2L2GBkc1m538bG3UMEq6WqJJQ4PIijCnnng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2334 X-Spam-Status: No, score=-3126.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, MSGID_FROM_MTA_HEADER, NICE_REPLY_A, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: Fri, 18 Jun 2021 14:52:17 -0000 On 18.06.2021 16:12, H.J. Lu wrote: > On Fri, Jun 18, 2021 at 2:03 AM Jan Beulich wrote: >> >> On 17.06.2021 18:12, H.J. Lu wrote: >>> On Thu, Jun 17, 2021 at 9:05 AM Jan Beulich wrote: >>>> >>>> On 17.06.2021 18:00, H.J. Lu wrote: >>>>> On Thu, Jun 17, 2021 at 7:57 AM Jan Beulich wrote: >>>>>> >>>>>> On 17.06.2021 16:46, H.J. Lu wrote: >>>>>>> On Mon, Jun 14, 2021 at 3:25 AM Jan Beulich wrote: >>>>>>>> --- /dev/null >>>>>>>> +++ b/gas/testsuite/gas/i386/disp-imm-32.s >>>>>>>> @@ -0,0 +1,17 @@ >>>>>>>> + .text >>>>>>>> +disp_imm: >>>>>>>> + mov -0xffffffff(%eax), %eax >>>>>>> >>>>>>> I don't think we should treat -0xffffffff(%eax) as 1(%eax). >>>>>>> We allow addresses to wraparound. I don't see a need for >>>>>>> displacements to wraparound. >>>>>> >>>>>> This then is entirely unexpected to the programmer. In fact the >>>>>> same (abstracted away behind some defines or equates) constant >>>>>> could be used for both purposes (and should be usable both ways, >>>>>> imo). >>>>> >>>>> Since hardware wraparound on DISP + BASE + INDEX * SCALE, not >>>>> on DISP, it is wrong to change DISP + BASE + INDEX * SCALE to >>>>> wraparound (DISP) + BASE + INDEX * SCALE. >>>> >>>> But this is true regardless of how small (or big) the displacement. >>>> Without knowing the register values, you can't know at what >>>> displacement values wraparound occurs. Also, unless I'm mistaken, >>>> wrapround(a + b) == wrapround(wrapround(a) + wrapround(b)). >>> >>> Hardware does wraparound (DISP + BASE + INDEX * SCALE). >>> Assembler and linker should only wraparound on the final address. >> >> I'm afraid this last sentence makes no sense to me: The assembler >> (or linker) can't know the final address. Instead, both immediates >> and displacements should allow for anything the programmer might >> sensibly use. If 0xffffffff as a displacement is fine (meaning >> -1 really), -0xffffffff (meaning 1) ought to be, too. Or else >> where do you draw the boundary of which displacements are >> "legitimate" and which are not? > > If the program wants 1, use 1. You realize that for the purpose of the test case the -0xffffffff is an over-simplification of what might appear in "real" code, don't you? It also feels as if you didn't really read my earlier remark: "In fact the same (abstracted away behind some defines or equates) constant could be used for both purposes (and should be usable both ways, imo)." If what you say were true for disp, why would it not also apply to imm? In the end, an imm loaded into a register may very well be used to access memory, i.e. possibly fulfills the purpose of a disp. We shouldn't force people to write quirky code just because gas accepts certain things for imm which it doesn't accept for disp. Jan