Message ID | 764b9e03-18bd-6945-692f-a250522196ca@suse.com |
---|---|
Headers |
Return-Path: <binutils-bounces+ouuuleilei=gmail.com@sourceware.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp391350wrd; Fri, 3 Mar 2023 04:55:17 -0800 (PST) X-Google-Smtp-Source: AK7set+U1SNoVyQmW27KGh6srvHMOnpcI9vTSLBzmCkHh/7WRTYcaC6W+ztTJnYCYv32M/EfBEIc X-Received: by 2002:a17:906:2a58:b0:8b1:2614:fbf2 with SMTP id k24-20020a1709062a5800b008b12614fbf2mr1362817eje.70.1677848117207; Fri, 03 Mar 2023 04:55:17 -0800 (PST) Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id z2-20020a170906714200b008c35025ce33si2164019ejj.838.2023.03.03.04.55.17 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Mar 2023 04:55:17 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=sTaab65m; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 50AFB385782B for <ouuuleilei@gmail.com>; Fri, 3 Mar 2023 12:55:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 50AFB385782B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1677848110; bh=1IAoKyg9c/q+MrzkHWiCLmTG7vwPVrOxSf42xmc/ujg=; h=Date:To:Cc:Subject:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=sTaab65mAQmJfP4o4ZI40/Rh5CVZHStHJxWir1k4+z7PJPoRHfWogpObBc1porq9S PZpFlo2R7mvF6ojWsGKbkypBqPnX+NizCBF8ossHOU+YyKrdUMf77IjNaiMB/S9a/R xujKi0EYcz9u4YPDOnwjHZ30YsXSxy5DGF4alwWU= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2048.outbound.protection.outlook.com [40.107.8.48]) by sourceware.org (Postfix) with ESMTPS id 6FFCB385802F for <binutils@sourceware.org>; Fri, 3 Mar 2023 12:55:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6FFCB385802F ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Nl4GH1SnxcBXK0/6UlPiQdCSvMZrNJryw6CSnKa1V03kPAAmyybjQ5gvkfVD4vSaAuUHNr2wo3TSEuY71yR59VhSuSPbRa79BYXJ/o9e9X88Pawo9EAHHzGYLE4rYMbAQv9uYsLjU97GGaWqCd/nyJ0LNEKeQJpzJIi9jRHRn9b+70+9Bz6scdlXv3FORQhr1PhtIrAMFyrQAhLhTeUcrP7umyRLr06rf4bCAiydKNYNSH1eyPv9BUAi6nrivqIGq+EXzUPccY1ihdF/yuQzZhBFHw6JZFXPWTcp4XenNnLs7DIARU/yQuatgSLXyGgHiKpMQsai3pou8N3XP7wACw== 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=1IAoKyg9c/q+MrzkHWiCLmTG7vwPVrOxSf42xmc/ujg=; b=IP7ka/ja+sG/ktC4gMGjtY6448Zmz66iSTMV+hvYBHSrcdMChJMua+4FZg9GFfJEhBol2xVYPMEQifqeNn2ukcRcBpTNLTm2NBX7WnYy4JzJMS5dXvaqWRibImyP6eYDptEDITU2JAkOyuLKpXF6MKIL5GTgUwDThh8x0AL43RslGDUf9CqZkqMELcZUO/NgSEq3z5tuuGtiXZ4JT2QzbWmsHAah9+R4sazqXZX5GeDhMLCTGP2qxrO0EQZ9Pghzzheora2+hU6L6wq5qqHphYaN9tDh8tgqICtpkbT2XBXYiiPdaNS7xqAG7O9e/K9mjMyVVHEL6CNqFymiQhF+8g== 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 VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AS8PR04MB7496.eurprd04.prod.outlook.com (2603:10a6:20b:29d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.22; Fri, 3 Mar 2023 12:54:58 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::154e:166d:ec25:531b]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::154e:166d:ec25:531b%7]) with mapi id 15.20.6156.019; Fri, 3 Mar 2023 12:54:58 +0000 Message-ID: <764b9e03-18bd-6945-692f-a250522196ca@suse.com> Date: Fri, 3 Mar 2023 13:54:56 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Content-Language: en-US To: Binutils <binutils@sourceware.org> Cc: "H.J. Lu" <hjl.tools@gmail.com>, "Jiang, Haochen" <haochen.jiang@intel.com> Subject: [PATCH 00/18] x86: new .insn directive Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR0P281CA0139.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::14) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AS8PR04MB7496:EE_ X-MS-Office365-Filtering-Correlation-Id: 7a083bbf-4a3b-4ea6-b516-08db1be67e58 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jvlq6BZacgpzfMwKGVQxBAQauIjSnhzOwcolp0pVgh8ey4gv4of9Y53W6Qog+TG88QGtcxRRWF/aWntiW6u6DhXnsVJop9PG5/2BT5oZEMyQw2NTZtYjw+xKEDr5+3xTkeuMm0hR7ywOcFEytX/dKBdg2FX0Xzlj7ACtqs6Ngn9PXC7XEtk9LAyZJLGcPFg/FXLPUNGDk4Vd0mzVAcr2P7XFkFhX6IScw5sMZOAtCFALTLo5ZTfwbuIlPeCkccQgI7+H+PH0F7c1bWRnpzNFpbMpv41PUE1Iy2i1tNWD/+jZTrcjKiLFGBUAh+EfPaLuXcqSLl+VNIBv112v/Xign8Emy+SYnz+mA4JHv4FhLuVD6IpfVTBi5OHTYxUJGhNL9VlydDPwEDJP4ZxJP0afULDF/398AUH2C8x9GGRziQrzbJbovtkM0R6TpV8Sa4AGWfL4YvZqFVnTF1GCMs/LLqhoEOc/2RznurURweZxoqfSu70xGYCaQv4NbiS9YWFyPdpLuuzfjXC9n40VD8jFDTx8sYrNVo/rEubg4l5SAaGvZ31SH4XkPbrFuRCUNSK7fi3l04DZkMMIRKAYwcpBf7Wz8m4ivHh4Kle/CrN4kUqkrRTWSENnlhcxLAB6IZNfEl3w74CI3tpek0zE3+rQYFXmkVDicxssFkTe/mFrP8vF9Ko2Vwm2u2RgYopICXW+nl1i56hlZiOlzVd7UAABX29lHktiCrmsP1sd8HTC7MYAliyvlcYqTlGjTmUo4aIXWVH017gapYuciYGp10TcGw== 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:(13230025)(346002)(396003)(39860400002)(376002)(366004)(136003)(451199018)(2906002)(38100700002)(31686004)(6486002)(6512007)(478600001)(6506007)(186003)(36756003)(86362001)(31696002)(54906003)(66556008)(66946007)(6916009)(8676002)(66476007)(4326008)(316002)(83380400001)(2616005)(26005)(8936002)(5660300002)(41300700001)(142923001)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?DmKe3Fn8ZJoIDeeuBSIGjF63LH7b?= =?utf-8?q?sG/mk8f1lWTySVc/iXyZb6fyoa4lOghf/aQuodEBq9xl2PC8x+76wldIplj5XT7MT?= =?utf-8?q?Jf3EeQ0bEyCrJvcsE7RTdz55qhuaUZ4LU8w29IHLoaBSXEO+IS4sZWVifJOFPdA/z?= =?utf-8?q?7JmssWPLfNOraGXtnSzWzxFnRenTk+Z4VEK5x4kZA+tlpHA8CuGSnOm7luop7vHRo?= =?utf-8?q?NinutCcVNXTiioDdZMcvGepsL9CTKqmyox3YLDOFJWbSmzQMpbQ8xHOzoR9nUPZ3+?= =?utf-8?q?zHF1b1l5Jt8r8VtoG13aMVF8clYPqT10+gs1P4DTDs+r+AoAzaasGHKeMdekl+s2O?= =?utf-8?q?jmPzA4YdjBCrS27glFcTX1gAmKkDkcxW1nUWpdll1LxULXeqqSezPKc7cAxBLBQRs?= =?utf-8?q?ZLWta0+XVXr5n7XAU95Ugl1IV989DHSD+zTKUXmhk8lWqEHX5bjZa2JFrLe63Ryol?= =?utf-8?q?ynFnA4pYCOcov1+wD7LSUN15lJhzlI8MM6wGkVc2Y1nFe1/622LB3FI4FHnDsqPPi?= =?utf-8?q?7ISctNL+inYyXFoqpXeS2PpWssoyJRKiIbIOIRffKQusuDqdp0RqyCSPOMxKyPcY1?= =?utf-8?q?DmSW7OhoOd34N1/65ryTd70wRSKyzduvExo/9c+3atv8OtRhXZkEAMRG66qTEWIlV?= =?utf-8?q?wlcTvMzA53qZJT3YWVX3ckhQ3XV5PNxbDmrsLHFRoGm6Hvve1SaNeb7FKWgUHVzok?= =?utf-8?q?SMstsqW1ag4Mh7MZXJuvNDMTOenxd7oOUM1d9SuZwcMZT4WKq6uBcJ5AGqmj8an9x?= =?utf-8?q?SIroOW9LP84GQe4ypZnMCSBwiVVeE3iVFJsaPIv3GFDNji+wSsNSJ048DS88JsFwV?= =?utf-8?q?t+cqaj26Dc81dVAgldAa7/IkwFUzMrSC7olbrW8PpJ2dVLeak5rH4E/+tt9B3d/cC?= =?utf-8?q?TsFIEJz2WpCEJSvuX0pgRL/h+grBTg35vZSQNWP2dE3YnXBurxzv/Q3h0GPv4mR/Y?= =?utf-8?q?rwJVmZcuJuTb/7qE39sfePX2j6HzkMJh9BQXm07nSYR+AsveDW9kNLzDqQnitghdz?= =?utf-8?q?6t9qGcRZKUPWouYLRApggydeSbg19vnca+Pd6PGDRyP3/UbtFmK+uSEYClqMV7q1p?= =?utf-8?q?41RBR7omnoq5eO1XZkcZHtsOiJDlupY+OmfyIxobvSTn0mq/9wQDqdFvol+Z2ahrN?= =?utf-8?q?N8Mnbwu5WRsaps2LhnOo66fmDqNRIzfwQsp0/oU6g3Fx+u8DuSdzIQLOwExaOb/fI?= =?utf-8?q?nFK2iWgNvb0FFum2wuhOeqUwfFI51A5xM7UZitn20YaTzFEnnYwrL7WPLfV+tVRfg?= =?utf-8?q?+VcrC9uZobA5gSi8hA0N/G53WD7bis3ZHTyGZ1ydlaaXw3i8kGRYNPFYnn2vprnYy?= =?utf-8?q?yk5kHRDiLt3SRWeqWFzHDSlz+Ej0xWyc5Z2kGP0rRpxN/ssejYBBSIF8aFMGcR0/U?= =?utf-8?q?1vP0NJhIwQjHipSWmtyINRnCwGZbWhJ/TcffbUi53MZL2NojIRPbRUr0T4WT72f+W?= =?utf-8?q?KhQ3b8gRcCwNsZY9CrVHnu2DiU9eIKjhFzItmK0Fq5SDNORjvOSLvFPTbZ0n5DRZm?= =?utf-8?q?Xd9XJEJmAhnB?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7a083bbf-4a3b-4ea6-b516-08db1be67e58 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2023 12:54:58.0946 (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: X4qxDyGicsMlKA0YacVUG/+tpL+JwPAbnLh6mrZG1rDbMUUw5fL8PtUcUX7iZm+SCbtnpdERos6FfbvQEWjTuQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7496 X-Spam-Status: No, score=-3028.3 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 X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list <binutils.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/binutils>, <mailto:binutils-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/binutils/> List-Post: <mailto:binutils@sourceware.org> List-Help: <mailto:binutils-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/binutils>, <mailto:binutils-request@sourceware.org?subject=subscribe> From: Jan Beulich via Binutils <binutils@sourceware.org> Reply-To: Jan Beulich <jbeulich@suse.com> Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" <binutils-bounces+ouuuleilei=gmail.com@sourceware.org> X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759351267173349446?= X-GMAIL-MSGID: =?utf-8?q?1759351267173349446?= |
Series |
x86: new .insn directive
|
|
Message
Jan Beulich
March 3, 2023, 12:54 p.m. UTC
Especially when instructions which are not known to gas yet also take register or, yet worse, memory operands, encoding such in code actually wanting to make use of them is often difficult. Typically people resort to hard-coding the involved registers, thus being able to express things via .byte. To overcome this limitation (to a sufficient degree at least), introduce .insn. This allows users to specify operands in their "normal" shape (possibly in slightly altered order). Peculiarities require two small syntax extensions; see the implementation or documentation for details. In order to re-use sufficiently much of the functionality md_assemble() already uses, some adjustments to existing code were necessary. The one item to call out here is the partial re-write of build_modrm_byte() (patch 7), which actually turned out to simplify things. Subsequently possible further tidying is carried out right away (patches 8 and 9), even if not strictly related to the .insn work. I'm pretty sure there are still corner cases which aren't taken care of correctly. It's also quite possible that I've overlooked further places in pre-existing code which need tweaking for .insn. People taking a close look and/or playing with the new functionality would be much appreciated. The last patch in the series is strictly RFC, as I'm uncertain whether we actually want this kind of a testcase. 01: introduce .insn directive 02: parse VEX and alike specifiers for .insn 03: parse special opcode modifiers for .insn 04: use set_rex_vrex() also for short-form handling 05: move more disp processing out of md_assemble() 06: adjust REX-prefix part of SSE2AVX test 07: re-work build_modrm_byte()'s register assignment 08: VexVVVV is now merely a boolean 09: drop "shimm" special case template expansions 10: AT&T: restrict recognition of the "absolute branch" prefix character 11: process instruction operands for .insn 12: decouple broadcast type and bytes fields 13: handle EVEX Disp8 for .insn 14: allow for multiple immediates in output_disp() 15: handle immediate operands for .insn 16: document .insn 17: convert testcases to use .insn 18: .insn example - VEX-encoded instructions of original Xeon Phi Jan
Comments
On Fri, Mar 3, 2023 at 4:55 AM Jan Beulich <jbeulich@suse.com> wrote: > > Especially when instructions which are not known to gas yet also take > register or, yet worse, memory operands, encoding such in code actually > wanting to make use of them is often difficult. Typically people resort > to hard-coding the involved registers, thus being able to express > things via .byte. To overcome this limitation (to a sufficient degree > at least), introduce .insn. This allows users to specify operands in > their "normal" shape (possibly in slightly altered order). Peculiarities > require two small syntax extensions; see the implementation or > documentation for details. > > In order to re-use sufficiently much of the functionality md_assemble() > already uses, some adjustments to existing code were necessary. The one > item to call out here is the partial re-write of build_modrm_byte() > (patch 7), which actually turned out to simplify things. Subsequently > possible further tidying is carried out right away (patches 8 and 9), > even if not strictly related to the .insn work. > > I'm pretty sure there are still corner cases which aren't taken care of > correctly. It's also quite possible that I've overlooked further places > in pre-existing code which need tweaking for .insn. People taking a > close look and/or playing with the new functionality would be much > appreciated. > > The last patch in the series is strictly RFC, as I'm uncertain whether > we actually want this kind of a testcase. > > 01: introduce .insn directive > 02: parse VEX and alike specifiers for .insn > 03: parse special opcode modifiers for .insn > 04: use set_rex_vrex() also for short-form handling > 05: move more disp processing out of md_assemble() > 06: adjust REX-prefix part of SSE2AVX test > 07: re-work build_modrm_byte()'s register assignment > 08: VexVVVV is now merely a boolean > 09: drop "shimm" special case template expansions > 10: AT&T: restrict recognition of the "absolute branch" prefix character > 11: process instruction operands for .insn > 12: decouple broadcast type and bytes fields > 13: handle EVEX Disp8 for .insn > 14: allow for multiple immediates in output_disp() > 15: handle immediate operands for .insn > 16: document .insn > 17: convert testcases to use .insn > 18: .insn example - VEX-encoded instructions of original Xeon Phi > > Jan X86 encoding scheme is quite complex. It may get even more complex in the future. I suggest we wait for a while so that we can get clear pictures what the future encoding scheme looks like.
> 01: introduce .insn directive > 02: parse VEX and alike specifiers for .insn > 03: parse special opcode modifiers for .insn > 04: use set_rex_vrex() also for short-form handling > 05: move more disp processing out of md_assemble() > 06: adjust REX-prefix part of SSE2AVX test > 07: re-work build_modrm_byte()'s register assignment > 08: VexVVVV is now merely a boolean > 09: drop "shimm" special case template expansions > 10: AT&T: restrict recognition of the "absolute branch" prefix character > 11: process instruction operands for .insn > 12: decouple broadcast type and bytes fields > 13: handle EVEX Disp8 for .insn > 14: allow for multiple immediates in output_disp() > 15: handle immediate operands for .insn > 16: document .insn > 17: convert testcases to use .insn > 18: .insn example - VEX-encoded instructions of original Xeon Phi Hi Jan, Since this is a complex feature, do you have a branch for those interested to test so that we could all give back some comments and see if there is something missing? I could also do that from scratch but I suppose it is much more easier since you have a branch. Thx, Haochen
On 05.03.2023 11:07, Jiang, Haochen wrote: >> 01: introduce .insn directive >> 02: parse VEX and alike specifiers for .insn >> 03: parse special opcode modifiers for .insn >> 04: use set_rex_vrex() also for short-form handling >> 05: move more disp processing out of md_assemble() >> 06: adjust REX-prefix part of SSE2AVX test >> 07: re-work build_modrm_byte()'s register assignment >> 08: VexVVVV is now merely a boolean >> 09: drop "shimm" special case template expansions >> 10: AT&T: restrict recognition of the "absolute branch" prefix character >> 11: process instruction operands for .insn >> 12: decouple broadcast type and bytes fields >> 13: handle EVEX Disp8 for .insn >> 14: allow for multiple immediates in output_disp() >> 15: handle immediate operands for .insn >> 16: document .insn >> 17: convert testcases to use .insn >> 18: .insn example - VEX-encoded instructions of original Xeon Phi > > Since this is a complex feature, do you have a branch for those interested > to test so that we could all give back some comments and see if there is > something missing? > > I could also do that from scratch but I suppose it is much more easier since > you have a branch. No, sorry, my normal work env continues to be quilt based, and hence I'm not really maintaining private git branches. Jan
On 03.03.2023 17:50, H.J. Lu wrote: > X86 encoding scheme is quite complex. It may get even more complex in > the future. Indeed. Also some complexities did exist only transiently, like AMD's DREX. MVEX is mentioned in the series, and I'm not sure whether to call this "historic" as well. However, ... > I suggest we wait for a while so that we can get clear pictures > what the future encoding scheme looks like. ... I have to admit that I'm puzzled by this suggestion. The rate at which new encoding schemes appear is pretty low. So unless you know of something to see the (public) light of day soon, I wonder what meaning you assign to "a while". The plan certainly is for this work to land well in time for 2.40, unless there are clear technical issues speaking against it. In no event do I plan to wait very long with committing not directly .insn-related changes in the series, like patches 06 ... 09 or even 10, and maybe 04 as well as 12. I shall perhaps also add that I view entirely new encoding schemes as less of a problem - support for them can be added to .insn handling incrementally. What could be more problematic are changes to one of the existing schemes. Jan
On Mon, Mar 6, 2023 at 1:26 AM Jan Beulich <jbeulich@suse.com> wrote: > > On 03.03.2023 17:50, H.J. Lu wrote: > > X86 encoding scheme is quite complex. It may get even more complex in > > the future. > > Indeed. Also some complexities did exist only transiently, like AMD's > DREX. MVEX is mentioned in the series, and I'm not sure whether to > call this "historic" as well. However, ... > > > I suggest we wait for a while so that we can get clear pictures > > what the future encoding scheme looks like. > > ... I have to admit that I'm puzzled by this suggestion. The rate at > which new encoding schemes appear is pretty low. So unless you know > of something to see the (public) light of day soon, I wonder what > meaning you assign to "a while". The plan certainly is for this work > to land well in time for 2.40, unless there are clear technical > issues speaking against it. In no event do I plan to wait very long > with committing not directly .insn-related changes in the series, > like patches 06 ... 09 or even 10, and maybe 04 as well as 12. > > I shall perhaps also add that I view entirely new encoding schemes > as less of a problem - support for them can be added to .insn > handling incrementally. What could be more problematic are changes > to one of the existing schemes. > We will evaluate if these changes will cause any potential issues for the future.
On 07.03.2023 21:33, H.J. Lu wrote: > On Mon, Mar 6, 2023 at 1:26 AM Jan Beulich <jbeulich@suse.com> wrote: >> >> On 03.03.2023 17:50, H.J. Lu wrote: >>> X86 encoding scheme is quite complex. It may get even more complex in >>> the future. >> >> Indeed. Also some complexities did exist only transiently, like AMD's >> DREX. MVEX is mentioned in the series, and I'm not sure whether to >> call this "historic" as well. However, ... >> >>> I suggest we wait for a while so that we can get clear pictures >>> what the future encoding scheme looks like. >> >> ... I have to admit that I'm puzzled by this suggestion. The rate at >> which new encoding schemes appear is pretty low. So unless you know >> of something to see the (public) light of day soon, I wonder what >> meaning you assign to "a while". The plan certainly is for this work >> to land well in time for 2.40, unless there are clear technical >> issues speaking against it. In no event do I plan to wait very long >> with committing not directly .insn-related changes in the series, >> like patches 06 ... 09 or even 10, and maybe 04 as well as 12. >> >> I shall perhaps also add that I view entirely new encoding schemes >> as less of a problem - support for them can be added to .insn >> handling incrementally. What could be more problematic are changes >> to one of the existing schemes. > > We will evaluate if these changes will cause any potential issues for > the future. Okay, but please supply me with a time frame for this activity. It's not reasonable to have me sit on this kind of work (and potentially have to rebase it repeatedly over other work) for an extended period of time. Furthermore, should potential issues be found, there'll need to be enough detail for me to actually address these (rather than wait until such features would become publicly known). In the absence of a timeline I'll get v2 out soonish (I've found that I failed to remember to re-run the testsuite on a broader set of sub-targets after adding the immediate operands handling and the conversion of some of the existing testcases; hence some adjustments were needed there), and then wait like two weeks for comments of any kind. Should none surface, I think I can rightfully commit the whole lot then. (As indicated, I may commit a subset ahead of submitting v2, not the least to limit the volume of the re-submission. But of course again only unless comments surface which would need addressing.) Jan
> > We will evaluate if these changes will cause any potential issues for > > the future. > > Okay, but please supply me with a time frame for this activity. It's > not reasonable to have me sit on this kind of work (and potentially > have to rebase it repeatedly over other work) for an extended period > of time. Furthermore, should potential issues be found, there'll > need to be enough detail for me to actually address these (rather > than wait until such features would become publicly known). > We have created a branch from scratch and currently under evaluating. Lingling will give her further opinion on this. I suppose two weeks might be enough. Really appreciate the work and looking forward to see it happen. Thx, Haochen > In the absence of a timeline I'll get v2 out soonish (I've found > that I failed to remember to re-run the testsuite on a broader set > of sub-targets after adding the immediate operands handling and the > conversion of some of the existing testcases; hence some adjustments > were needed there), and then wait like two weeks for comments of any > kind. Should none surface, I think I can rightfully commit the whole > lot then. (As indicated, I may commit a subset ahead of submitting > v2, not the least to limit the volume of the re-submission. But of > course again only unless comments surface which would need > addressing.) > > Jan
It is a really good work. After checking and evaluating, I find these changes do not cause any issues for my side. Thanks, Lingling > -----Original Message----- > From: Jiang, Haochen <haochen.jiang@intel.com> > Sent: Wednesday, March 8, 2023 4:10 PM > To: Beulich, Jan <JBeulich@suse.com>; H.J. Lu <hjl.tools@gmail.com>; Kong, > Lingling <lingling.kong@intel.com> > Cc: Binutils <binutils@sourceware.org> > Subject: RE: [PATCH 00/18] x86: new .insn directive > > > > We will evaluate if these changes will cause any potential issues > > > for the future. > > > > Okay, but please supply me with a time frame for this activity. It's > > not reasonable to have me sit on this kind of work (and potentially > > have to rebase it repeatedly over other work) for an extended period > > of time. Furthermore, should potential issues be found, there'll need > > to be enough detail for me to actually address these (rather than wait > > until such features would become publicly known). > > > > We have created a branch from scratch and currently under evaluating. > > Lingling will give her further opinion on this. I suppose two weeks might be > enough. > > Really appreciate the work and looking forward to see it happen. > > Thx, > Haochen > > > In the absence of a timeline I'll get v2 out soonish (I've found that > > I failed to remember to re-run the testsuite on a broader set of > > sub-targets after adding the immediate operands handling and the > > conversion of some of the existing testcases; hence some adjustments > > were needed there), and then wait like two weeks for comments of any > > kind. Should none surface, I think I can rightfully commit the whole > > lot then. (As indicated, I may commit a subset ahead of submitting v2, > > not the least to limit the volume of the re-submission. But of course > > again only unless comments surface which would need > > addressing.) > > > > Jan