From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2043.outbound.protection.outlook.com [40.107.22.43]) by sourceware.org (Postfix) with ESMTPS id AE0D23858D39 for ; Fri, 19 May 2023 07:08:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AE0D23858D39 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=JC99E0uIEGgaMhqHIbFwxkCw1bUWMQYs5DaNG7QaBovou/d/liypo3hsqSDiY+R5yC6z/XmbGKOAz3i8bVWboZWaXdK+tOcau8KyHuBJBgw2qK0v6pvDUdnmeeoyuFI4qe9hsKLG5sD4TdUUiIXVLFV/12vDnlFKtTWeB4MYSls0N331SUCSG9+7hksimd1RrSXvsiAP+cJAKV3S8QUvTC2nybhZir94soVJCHnTp4avCXOoThQgTCQAdbO4drv/cyEX+FAe/7N7mYYRPIPnm/Nh3hX7TRIuHYIZDnTxEBfTIbiNzY7jRkdg/FrsnnyPO8/72pr5I+l7GJuiYnZp5Q== 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=CutlBhDHQLLmvx4vzeAbVQEoRokxq5a6ZrXX+BYf5hw=; b=YZGmDw6Jmc9xRNRSAdnaq6F4c9J+33mbQCcbETPefnPU2iFzQpafCbDbKJNYlBpHeGOlROLYD5tpXtE/3dYYFV9WusdJumPDS7gOUGByM+CrkZN8xcZvVDxhT/NTPsAQySKmJJuMKWD7GzSJ0vmEEWbz9cLDjh4q44TiCyMvi6TEoRXnQ0MBg2/OAyfTv2o+Vqu1yoSatXwHoP06Hp9jFzaUYOwr8Ivh2JsVqZgN3BvZQ95m1Bk4/74L1f20owhNSUklYjYCZHV1kps13ByaUDSpZN5VxNMQtSBDs5B+MTyK9wS3hxsCGlIaD9clDOAV+RfGeF/duUQy2Wd9LpN4RQ== 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=CutlBhDHQLLmvx4vzeAbVQEoRokxq5a6ZrXX+BYf5hw=; b=NTmpstaljgQZ91RrSHT8qlj+x08ELm9YAEdWeTKcrdHgtOXbT6ZSyPLFUwZHm2SyTi9VsQbTHgM2qwLn5fCT4SZ5gaNmBfR6gcDnUkIvkj1iw1uUfJjZhkzBaUsC14hpARiFBAqmxxZretVT4CSSn4fIjChf8j7UmHEJU+2xdC/dDbYUq/6b1A6zuvhCOg9yJqY5N6vwfNBR9F7ldRfIA9qC6Y5mYTe9u8Gvxnv2zJvfnlrEB97ajcSaaaULqQAH59AyjSFPLW3obFrzLRzA0w2+Mh3D6fTDN0CwKw3uucKXO5prylKLkTVpN9od8a0faNQW0JWCyAaIDJG0KQISMw== 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 AM0PR04MB6787.eurprd04.prod.outlook.com (2603:10a6:208:18a::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.17; Fri, 19 May 2023 07:08:56 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%5]) with mapi id 15.20.6411.021; Fri, 19 May 2023 07:08:56 +0000 Message-ID: <4e4e8321-ce3f-0ee6-2d9d-1855db110978@suse.com> Date: Fri, 19 May 2023 09:08:56 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: Re: [PATCH] Support Intel FRED LKGS Content-Language: en-US To: "Zhang, Jun" Cc: hjl.tools@gmail.com, binutils@sourceware.org References: <20230518034102.1747564-1-jun.zhang@intel.com> From: Jan Beulich In-Reply-To: <20230518034102.1747564-1-jun.zhang@intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR0P281CA0145.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::18) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM0PR04MB6787:EE_ X-MS-Office365-Filtering-Correlation-Id: f95fa61b-5b80-4c22-9cde-08db5837e8ed X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yx0NP7CkefVTGjRyjrR+/bpKPN5m90TclxN5RdnKBM1odquxOgmKSEne6wEqSnXYyPXcKbEYIcQWkTismtK79tyFjMSFp7V8bI5K3VUJNqQrYDTs2QpkyQvy6wlbB4/W0POuTGOmDzRmFcMTc6Z222FHG2lvboB8t12u+B1VVXbtcAxBlk2TUciYW1uCP06MMcoWk0rHOm0SY0agWoZkhVhJreVDHrd8TKHe9NeUnd4nwPbxxiGm6/FElIMLX5/WRjMYOyLvSnngvhKEC02HIBi+k7W+3QZZc4x9WZBC0TRSFnZUNW98QbrzV0+h3z/ITPbLjmwgklMTUe7S+pCBFNHPNftGTxcFymPXnOXs7s7F40lXYZFX0947Oxkyl8IjTCQKdNzZ+tmFmwF2CO7JcDM6b2w7ANBN9U8RdruNnXX5MlaCgEwp7sqZ715ZzsZ+3GeL8BaIJJcxcFKFenNmvzdqAhw+NHbZ/WI7UiJ7qrEkYactZcAKuRMMjht5fkbSILewt+y33B0StPlprEmGyzEzO3S36aQEUWBPaUuh2541axhayL0hz92kre6Gv1LDScQcPACn2BvDVMKQXKGpOIaNozSbrZiN0gdeqBb6Fbts6Ze/6KAvbF43du2+vz0QofakNK9pyHMfIh9jVcusJw== 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:(13230028)(366004)(136003)(396003)(346002)(39860400002)(376002)(451199021)(83380400001)(186003)(26005)(6506007)(36756003)(53546011)(6512007)(966005)(6486002)(2616005)(316002)(4326008)(66476007)(66556008)(6916009)(66946007)(2906002)(38100700002)(31686004)(8676002)(86362001)(5660300002)(41300700001)(8936002)(478600001)(31696002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?M0JoNWJ1TGRJZVdPQ1U2VzVJMTFGNWtKMm0yaVNwUXY0WG1JQ2c5ak5MN1dl?= =?utf-8?B?NXlPaER0L3VLWEhJRUtNaXlVWk95aTgraEZDZWw3UVJGNTRlK2NrYjcrblJz?= =?utf-8?B?Wk81YUcyMXZpMmJJdGpMUm9IdTlDTHBkbGlwMStmSHJDcUFLOWcweEUyNzdZ?= =?utf-8?B?c2JHZXNRbDB0UkdwRDBqZklkSEJ4SDhkVldaMXRtSGh1S21vVVhKYkhxdTNH?= =?utf-8?B?eXhPQnpEb251UndScHgrYitEZjF6UDArY09DT1AxcTI4eTNpTlUxR1ljTnpa?= =?utf-8?B?cG9HcTN6NzF6dkk3S0E1dHY2VkdlcXV2OUxrbnBPUnN3b0ZtNHpFdWM3c3ZT?= =?utf-8?B?UDZRdS9GV1NEMkp2aVBhMDkybWU5bTVENmw4bzlnT1RqUDlkREZMQjJPLzBh?= =?utf-8?B?cy9tSW9iV29xQU9vK2lYUjhjd3daQ211WVJLUGRQTmwrcHF2bUlINzlUQ2Zn?= =?utf-8?B?VmNSVldXNGszMWw3MjZDdzdvckIrYXlTMzc2Nkh4V3kxNWpUcGc0Y0ZLWGlY?= =?utf-8?B?WUlNTFhOU0pqbUxCT1dkeHlSd1cwaXl0LzgwNjRmb1ZveDJSUzYrNEVIWnQ2?= =?utf-8?B?ZytKcnNBMS9NVC9RcUtqQzIxTVZha3ZJTmdZZnpibTJZM21SWGJsaWdWSlN4?= =?utf-8?B?OStUeHk5S01FSXJnQnd5L3RkMWsvQWJrRDJiV3hWbytEY2dvenJjblRNYlg2?= =?utf-8?B?VmpFT3lrcWE1L21JbTFPTlpyWG5meElWejdYSi9qcXhMeThnWi8vWnl4OUt4?= =?utf-8?B?SzVQUUxpNS9vS0RmbWh3YlpKMjNpazM3ZEVPblA4dkJyeDdoeUZmZm1nTUR2?= =?utf-8?B?ZHFLZzVEbkJOQTU5R0lqWW5PNk9LM0ZWd2JTLzRJNEdiNE5yZzU5MjN1Nnh2?= =?utf-8?B?bjNEaFV3bEVBeFBMTWxqZ2xHVkhoWFZ1azVWVkJWcTk4UEVTVEFQT2dRQmFh?= =?utf-8?B?SENLS3h1azhzWGc3V3FGVFc2OCtjZTVwMi9SVjRqaTdqL3NDUW9UMGRpK1h2?= =?utf-8?B?L01hMU9icnNhWVhVN1l1b2F3a0hDOUZmOFoySDU4Mzh5TlFDK211MzJ5OURh?= =?utf-8?B?MVVMcVcwSnlqOGJUdTgvYTFFYXM3TVVRT1lFM0xhaHd5Vzl2VFlaNnRidHI4?= =?utf-8?B?NHdyaXVJTTJHbC96WXMrU1ZEZ2JvU1hlbTkxQ2hJbEU3OUk0U1A2Zm1PL2Z0?= =?utf-8?B?cFFVWUdJVFluMWNKZkdPNHlwNXhMa01CdUpWZ2VmaXMzaThLTFBXSVZITGdn?= =?utf-8?B?bzhKblV6WmNZQ1VyZ1UxWTZNbE1XZGxtTHRkWDdXZjBvQ3VJbUtEVkoxdGFR?= =?utf-8?B?MnQ5czZteERFNVpRUWR0ZG9VWFBiN2dQUFNacjNtNjdpeVNFakxaS0lpb1Yv?= =?utf-8?B?R2V0bTB0aHF3YTMzbC9RMmxBZGZUTFd0U1ZiVWVIR2svdTE4VUFJRlR0ZzdT?= =?utf-8?B?S3plZmE1MEwvSFowR1dRVDZFTjg0MEdrYkh6QjlZcWUycUNhd0Z1dU9HTS9a?= =?utf-8?B?VUxSRE02eWVQajJSRWJFelZsbGozUkRHckdFakEranVJTmh4SmFkMVVrVEFL?= =?utf-8?B?TDR2Y1d1eWs4VDZ1WnBQZ2tNcmZ5d0t2UUtQZW5VREU2N3FmWlllYm4veXBL?= =?utf-8?B?d0dQYmRHdUljdlJTcEFGMmhISXkvcE1STVRQdWJsamZ3SUNUU0JycTRmOW1D?= =?utf-8?B?aU5yVy9qaXliYjNlalVDUnFHeWVJSGphVlE4bFRnRzRxM01VTUtjRHJGVWJr?= =?utf-8?B?K2NZQkUyNnBGQkozZU9BUXNDdzVoNDdXSHg5Uy9HclhFY29sc0o3NEhzbmow?= =?utf-8?B?bHdnOE5tL0pqdysxWVFiMzFkQUsyQ2d0eWVWNnFoQ29ESm0wVmVnV3R4ODJD?= =?utf-8?B?RHZnLzZQeHpGZkxPbUdHLzJ3OVBMYmNRL3FMN1VaTTU3dGpnRjZOV3UzcnZI?= =?utf-8?B?d0Y3cUhGSlF0M1JTVGttYmsxdnJhOVMxaTh5TFlJZTR1aG1lOHIyYjUvS1B4?= =?utf-8?B?Yjd6NHRaNWI2WWc3MFplS2RFL0xSRnltZnpuR0dZaWRKVFhkSDZFTWx4dkJw?= =?utf-8?B?RHJnVTJTZlVMUmYwZW9Lb3daYk13OElGck5Sc0Z6RXpXUEVFbTdlR0tCR2Y4?= =?utf-8?Q?rwYVXt4meMw3YY0Q2JCz09BIV?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: f95fa61b-5b80-4c22-9cde-08db5837e8ed X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2023 07:08:55.8726 (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: 6DNe2/10k0HBPmnjZMdHPGqE1a7rqqg6Z23POs3BOKBXgNLwlVrifESOTu8eXRtUGYXAxe6NfFBfe1i8TkvxRQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB6787 X-Spam-Status: No, score=-3028.6 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,T_SCC_BODY_TEXT_LINE 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 18.05.2023 05:41, Zhang, Jun wrote: > This patch aims to add Intel FRED and LKGS instructions. > > The information is based on newly released > Intel Flexible Return and Event Delivery(FRED). > > The document comes following: > https://cdrdv2.intel.com/v1/dl/getContent/678938 You say "newly released", but this link points to a document from May 2022. > --- a/gas/testsuite/gas/i386/i386.exp > +++ b/gas/testsuite/gas/i386/i386.exp > @@ -494,6 +494,7 @@ if [gas_32_check] then { > run_dump_test "raoint" > run_dump_test "raoint-intel" > run_list_test "amx-complex-inval" > + run_dump_test "fred" According to my reading of the spec the new insns aren't legal outside of 64-bit mode. That's not even "long mode", seeing the spec saying "FRED transitions also prevents entry to compatibility mode in ring 0." > --- /dev/null > +++ b/gas/testsuite/gas/i386/x86-64-lkgs.s > @@ -0,0 +1,21 @@ > +# Check 64bit LKGS instructions > + > + .allow_index_reg > + .text > +_start: > + lkgs %r12 #LKGS > + lkgs %r12w #LKGS > + lkgsw %r12w #LKGS > + lkgs 0x10000000(%rbp, %r14, 8) #LKGS > + lkgs (%r9) #LKGS > + lkgs 254(%rcx) #LKGS Disp32(fe000000) > + lkgs -256(%rdx) #LKGS Disp32(00ffffff) > + > +.intel_syntax noprefix > + lkgs r12 #LKGS > + lkgs r12w #LKGS > + lkgsw r12w #LKGS Nit: Indentation (want to use tab here just like everywhere else). > @@ -2755,7 +2758,7 @@ static const struct dis386 reg_table[][8] = { > { "ltr", { Ew }, 0 }, > { "verr", { Ew }, 0 }, > { "verw", { Ew }, 0 }, > - { Bad_Opcode }, > + { X86_64_TABLE (X86_64_0F00_REG_6) }, > { Bad_Opcode }, > }, > /* REG_0F01 */ > @@ -2996,6 +2999,14 @@ static const struct dis386 prefix_table[][4] = { > { NULL, { { NULL, 0 } }, PREFIX_IGNORED } > }, > > + /* PREFIX_0F00_REG_6_X86_64 */ > + { > + { Bad_Opcode }, > + { Bad_Opcode }, > + { Bad_Opcode }, > + { "lkgs", { Ew }, 0 }, > + }, While consistent with LTR et al (visible above), I question the use of Ew here (and there). See below for the assembler side of things, which this would better be consistent with. > --- a/opcodes/i386-opc.tbl > +++ b/opcodes/i386-opc.tbl > @@ -3351,3 +3351,16 @@ aor, 0xf20f38fc, RAO_INT, Modrm|IgnoreSize|CheckOperandSize|NoSuf, { Reg32|Reg64 > axor, 0xf30f38fc, RAO_INT, Modrm|IgnoreSize|CheckOperandSize|NoSuf, { Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex } > > // RAO-INT instructions end. > + > +// FRED instructions. > + > +erets, 0xf20f01ca, FRED, NoSuf, {} > +eretu, 0xf30f01ca, FRED, NoSuf, {} As per above, I think this lacks |x64 (and the disassembler parts would then need adjusting accordingly). > +//FRED instructions end. Nit: Missing blank. > +// LKGS instructions. > + > +lkgs, 0xf20f00/6, LKGS|x64, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|NoRex64, { Reg16|Reg32|Reg64|Word|Unspecified|BaseIndex } Word is redundant with Reg16, and once omitted you'll notice how what you have doesn't achieve the intended effect. Please take other similar insns as reference. Some were split not all that long ago, to properly express both their register forms (allowing all three widths) and their memory ones (allowing only 16-bit operands). The set of permitted suffixes also varies between both. Jan