From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2060.outbound.protection.outlook.com [40.107.21.60]) by sourceware.org (Postfix) with ESMTPS id BD6B63858D3C for ; Mon, 17 Oct 2022 08:15:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org BD6B63858D3C 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=HtnCO8eodzB5BBG1vv+Pz8hsU1z3pNwoelUt4hpB8ofHbe2He2/TrtIALwELkpKzCBK5TIjTcS1ymyduTIInCSgoT0Gq4F45qqieKVvZ1yRJooCh708aeOT5aRhDGZNIgF64Sad1kXwWIEIqcjl2UwAeQuckfGN6FZSdJ/QSyPBxrXkSqXcWc9U3PEFPQxBkGTPgMF3POfq9B94Fb+anmTYjlMhicIaIuw4hUYyCZuAxgEXtSr8UsqvIeHvqHHK3ULfSu2MnCffbRyaO4AhTDqgQc3ptejLh/lnOQ4GjepVktQV8sA5ONxWF8ex8NWw05+rCanDgVVTlucd1edaS1w== 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=Zf4nzf6IiubumBI8WOaWeFdauQaWhpyqet5IA4xq+uc=; b=Y+x8mbtsM26g3bcqdwKQji5ywrTszdsnWGSoexUlonNiXY3nBcbO9FaLrEmYY65TddpNNnMKMwuWc6YnmFxvtQXvgkoljd3wAUSnJzFhKUgK+KJy6rRWFXia/8laxe2QabCmFkdTDKKtj3RSlYdATnwk3LxkA6l14X+WElldqBUflVqypOuZYRbcK7pME4QKQ+okBzZshj0OEMG0tqT12xuxPD0X25g8Pj7WiHhfqtsYeV0pjOC+rvXYLbFS+iOLyMc3I2aAlyScnpN3rxwJpMhN1AMDsTeGD8DlhYVSm/WTWmqqtTelqtSTyw4D55QVof/vs4nPBiy0E2AIqAkvxQ== 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=Zf4nzf6IiubumBI8WOaWeFdauQaWhpyqet5IA4xq+uc=; b=mkIjFKrDdzKN/cngqLAt2R9hYYBzYCUUFBbZEBH6yHSwmZOhSMaDr59zJfKDbVKuvzZC7i7hnXGX4Q6cYZHyscOE6IzfUt0dvBCUafyHyXXE1CBHhw5Nhmkmo6rGYm2S2kRu34ZRsTg9JM8j/popravRaXlSiwG8lSNKiHn+vkunhGMqOSM2eoxGAvKzd0QXmjTMTJaR6wDzkfabwtm8QpQISdtcra7Oo1lkzmnYZ2rAofrgyIBsZt0ZSCy7NLR2EWoaO+Zpo/exGA8ZhFndWhDUlRcps8abt8hdxgW12F6XQde2AYqOByc07LB6fpSSu8zo+UYHofREJM00Ysb89A== 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 AM9PR04MB8211.eurprd04.prod.outlook.com (2603:10a6:20b:3ea::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.26; Mon, 17 Oct 2022 08:15:03 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2459:15ae:e6cb:218a]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2459:15ae:e6cb:218a%7]) with mapi id 15.20.5723.033; Mon, 17 Oct 2022 08:15:03 +0000 Message-ID: Date: Mon, 17 Oct 2022 10:15:03 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.3.3 Subject: Re: [PATCH 10/10] Support Intel PREFETCHI Content-Language: en-US To: Haochen Jiang Cc: hjl.tools@gmail.com, "Cui, Lili" , binutils@sourceware.org References: <20221014091248.4920-1-haochen.jiang@intel.com> <20221014091248.4920-11-haochen.jiang@intel.com> From: Jan Beulich In-Reply-To: <20221014091248.4920-11-haochen.jiang@intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR3P281CA0088.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1f::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_|AM9PR04MB8211:EE_ X-MS-Office365-Filtering-Correlation-Id: b6eda027-f125-45ba-6b75-08dab017b13d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DWVlouCGC2rfH1jB9GVs7DsfpUgaRnwcXt8hlBxL2O+y5kVKEwipfaCTY0/PVELSlN0+7DT+p88G9W9YIZVySarn7/i9K8lYz472WKyYgVFnjNUfdfiehzs2qDTePI31/MbD8/em3n1cHD/9YQFpx2rduYQatZ/GQ7EWr6xiO18oKd0zKN3R9w10FSlUpu+H01KGYCJn8qm8I0nv4iaeGFCgdPRSeeII9Sbz0o6MPJj1FXmSSGohRxgPF3y52KUd7uWDfVcZP0y48rA/Cqnz2K5J31xy4vxujJmupmxSq8lSpqKebzvfBhr2xfv7m/K5xv4xyGgepd07GozSaAqj1GCuXgq1BA9su4S5t0M4WrwwbWLs8BdmnS+Lw5lH+5m5VXI0cVxdEjgFXEd6HzKUmdD9B8/6Ad1/YI8rwJM9TKpsFLCGkKUc1fD2hqu9RKa2fyBTDWyHHfg2LSfkRDAissYKyFArWJqTmcxOfZ4bhrSGSmo6Lk8QV7bk735qq7WsFd7Z9EgYfeV172a5ngzxX5U7CmZetVTfTDKk1KWGEJlhyJ1eF/iZqtb/slO94Q4c+aJnSR3c9lwSBMuu8uNo/sesEO6jQVmK0fpfVkxpRLiSv7FxIr9QucYayTLtvJsfGp1p14AplRKIBAve0ER1M62+l0U9+P3gO2Mu3DYgVZn8kFFbJKRU6eeFlw0C9uIB8qJb27bKtEI6NonToWwADOx14/1QpRMUBay60THBpFpBZEW7Azr5sX1jfhw6+gxI9gZRodfMeJgELcUAhri+cV4CCHyoPWrDvKGRHvswmIc= 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)(136003)(346002)(366004)(396003)(39860400002)(376002)(451199015)(31686004)(6506007)(36756003)(2906002)(8936002)(5660300002)(53546011)(86362001)(31696002)(186003)(6512007)(26005)(41300700001)(2616005)(478600001)(4326008)(8676002)(6486002)(66946007)(66476007)(66556008)(83380400001)(38100700002)(6916009)(316002)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZXo3NURZd2tkNTRtc0JqOEVGbmtJbG1uUDUxT2VuYzFReHUxUC90TUNqMGZ6?= =?utf-8?B?Um1sV0dLU004MmdINkgwQWM1MGhWV0dESlBOODgzbHBvaVlLOGhxWFlmVURQ?= =?utf-8?B?TW9abC9aa29SaTZPNy9lY0xhTWI4Z2tkNXhvVnQyWFhEU3RuTEROR0FTSmxv?= =?utf-8?B?N2g4Q3VyRTd0a2NUM0hvUHFsU1ozY1dBbmNrMU9nbXRzdGRVaDBsL1dWRWps?= =?utf-8?B?RmEyaWQ2eTdqOTVIUTdNL0FDdkdQZm5zeENONld2aTFnaHk5VUlNdkU3UnpB?= =?utf-8?B?MGRYdEhZMW8ybk1xV1IwcHRXQTFJNTRwNlBiU1BueVZkRHZQQ2NHK1BzOWxh?= =?utf-8?B?MWszbXZhVGdqaHNOQVJTNkZWR05PUklGRVpMa0ZzMWxWaW9LUXFwSWthSW90?= =?utf-8?B?cURQR1p6U2RZMTd5L2o3STVReXlIcWV3L0l6Q0Flcisrdzl3Zzl2N1pHeFdo?= =?utf-8?B?ejlWY2VCZjVhaW1NVlZtWWdOL0dQaGtLUEZXb1dPTDZvV2hOUDNpOVAxSk1T?= =?utf-8?B?ZUhteWNvSERzNVg0V0R3M2dBaGdxTXhaQjZEYWVBRVNiY0d3NFkrM3B5MG5Q?= =?utf-8?B?R0UyWWxKeXZqKzM1L0w2SmxQVFE0TDliczdvSHZScFdyMkZKWlRTQVRrNVo2?= =?utf-8?B?TTFQMlUydXhCZU1DMlFWVUF5eG9kUzY4emRHRUFBSWJ2NVBmME9RcEdpeUlB?= =?utf-8?B?NWRDVVNhbDZ2b0FETWRIQlNDZnBtalNSbjVsQyswRmVOY1ZQYWlQK2VRaVRm?= =?utf-8?B?dkkvTHl0VUlCV0FXRnp3VWRZM1hydzAwSUZDMW9XZncza3V0SUJyNWN5cEkw?= =?utf-8?B?ZjA5TFl5Nk1DL2N5Z0xhMUo3NHNrQkdvTWdWN1JaUyt2N1Qzcy8yVjBDK3NQ?= =?utf-8?B?WVlpa0UyZzdhYkFCb2t5R3VwNjhBcERvL0FGNjRja0JyQXpLRkppSDdPQTNL?= =?utf-8?B?ZzFjK2xVNTBwQUtKTDJPWGV3RmhxZktiMm8zNlZMMjBlNVg1cmdHY0pabld6?= =?utf-8?B?NkZaSWhTUlprWTZxR3lDZWgrcnJGaTFRTG1rZUxDTWNFK2w3cHBWUmEvTlZs?= =?utf-8?B?dFYxWGl1SHIvUDMzeU50aWpXWHVnTVB2RHdPS3JVOVAwdVd2T0pTRDd6ZzhH?= =?utf-8?B?djZLUm9sVERjcGR3bnk0b1BpV2RLbEV3V3pudzJCSVViTDBac2ltc2dzdTdn?= =?utf-8?B?NGFpc1BuRkM5QUE0eUlIVWhvN0tUbDhCR0h4STNxUEpZZmFwLzZLcnU5WUlH?= =?utf-8?B?WVJNY0hHN0wwWXM3MnVnNEkxSVk4SmRRMWkraEhKUERLR3V0REJZWUVCQzhs?= =?utf-8?B?S1A1K2RxVDdaa3YrMGlSR2hUSFV1Z05GcEdKQ3h4RTg4aWhVQ2xscGVTK0Vz?= =?utf-8?B?RUtCTVllZENuc2NSRTU5amM4WWI2eEswalA0SkE0SW1BTzVFOEY5T3MzcHlH?= =?utf-8?B?d0NIQ042S2xSOElyeDYrcGhRdnFGc284ZlBCcHJWZVJyRUtKS3NSMVNwUkRn?= =?utf-8?B?Nzh6dkVETHVBd0E1WnFKWmNXK24weXlqdG8walhvV3E4Q25hTFJYaTRSVkpG?= =?utf-8?B?Mjc5cmlhb3E0WWV3MEw0VkpnbHpycS9SM1NVdUhDeThJczV6RGtTTUVXL0RU?= =?utf-8?B?VWgzYndNK1k4bUtOQ0FDWDlkdGxyTXRnUmVrdExsMVp2a2RQUUdhMW9JOUZa?= =?utf-8?B?Uzk3SjViS2RCOWFDNDNRYWppQm9kTDJvdUpNMUFRYlMrNXRUQlVMdVBUZk8z?= =?utf-8?B?c01ocXFpb1BITW5GSFZBN3ZRRGdMUDd0YlVzeC9jR0VQNWl2aW8vWGIzSWFY?= =?utf-8?B?YzlsalovWmNrUCtaSC80UlgyRjQ0L0VsR1pHMG0vdlpMQkoxZFRudm1UbFJy?= =?utf-8?B?NVVzNlBlUGdoRHRhdG5DL2FiWFNGVzZFbG85aExFa09uQjNkb0RnSUcxNkd5?= =?utf-8?B?N3A2NDFqQjErS1M4K1p0MFdIblF4SVh3ZkR4NWlxUmE2cDlRWUJBMUdqT21S?= =?utf-8?B?MEFSMFRQSXlyRmxRdktvNEVNRzZRY2VTVXJidkFaQjZLVVpiQXIzeTNZUDRa?= =?utf-8?B?V29ET2ZMa201aUFKRzAzZGlzYi9KczJtTkE0WEdLRlpvWU1CVXZsYXhXbjVp?= =?utf-8?Q?xLFwuYz/s7lYbY1/4qkZYA3in?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b6eda027-f125-45ba-6b75-08dab017b13d X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Oct 2022 08:15:03.3018 (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: bOmO5gsudIFm2tSgNOrr4m49oGuNLO5Bf/LTA+vMlwdxr1KPHDkmUP6enXMussmqn1aMMWKPBrvK+B6xw3gMDQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8211 X-Spam-Status: No, score=-3035.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,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 14.10.2022 11:12, Haochen Jiang wrote: > From: "Cui, Lili" > > gas/ > * NEWS: Add support for Intel PREFETCHI instruction. > * config/tc-i386.c: Add prefetchi. > * doc/c-i386.texi: Document .prefetchi, noprefetchi. > * testsuite/gas/i386/i386.exp: Run PREFETCHI tests. > * testsuite/gas/i386/x86-64-prefetchi-intel.d: New test. > * testsuite/gas/i386/x86-64-prefetchi-inval-register.d: Likewise. > * testsuite/gas/i386/x86-64-prefetchi-inval-register.s: Likewise. > * testsuite/gas/i386/x86-64-prefetchi.d: Likewise. > * testsuite/gas/i386/x86-64-prefetchi.s: Likewise. > > opcodes/ > * i386-dis.c (MOD_0F18_REG_6): New. > (MOD_0F18_REG_7): Ditto. > (X86_64_MOD_0F18_REG_6): Ditto. > (X86_64_MOD_0F18_REG_7): Ditto. > (x86_64_table): Add X86_64_MOD_0F18_REG_6 and X86_64_MOD_0F18_REG_7. > (mod_table): Add MOD_0F18_REG_6 and MOD_0F18_REG_7. > (PREFETCHI_Fixup): New. > * i386-gen.c (cpu_flag_init): Add CPU_PREFETCHI_FLAGS and > CPU_ANY_PREFETCHI_FLAGS. > (cpu_flags): Add CpuPREFETCHI. > * i386-opc.h (CpuPREFETCHI): New. > (i386_cpu_flags): Add cpuprefetchi. > * i386-opc.tbl: Add Intel PREFETCHI instructions. > * i386-init.h: Regenerated. > * i386-tbl.h: Likewise. > --- > gas/NEWS | 2 + > gas/config/tc-i386.c | 4 +- > gas/doc/c-i386.texi | 4 +- > gas/testsuite/gas/i386/i386.exp | 3 + > gas/testsuite/gas/i386/x86-64-lfence-load.d | 2 + > gas/testsuite/gas/i386/x86-64-lfence-load.s | 2 + > gas/testsuite/gas/i386/x86-64-lockbad-1.l | 104 +- > gas/testsuite/gas/i386/x86-64-lockbad-1.s | 4 + As for earlier patches I question the additions here. The purpose of this test (and its 32-bit counterpart) isn't to cover all insns not valid with LOCK, but just forms of insns which _may_ allow for LOCK. (But yes, these tests aren't really complete.) Note also how your ChangeLog entry doesn't mention tests you're altering. You're not required anymore to provide ChangeLog entries, but if you do I think they will want to match the actual patch. > --- a/gas/config/tc-i386.c > +++ b/gas/config/tc-i386.c > @@ -1102,6 +1102,7 @@ static const arch_entry cpu_arch[] = > SUBARCH (wrmsrns, WRMSRNS, ANY_WRMSRNS, false), > SUBARCH (msrlist, MSRLIST, ANY_MSRLIST, false), > SUBARCH (amx_fp16, AMX_FP16, ANY_AMX_FP16, false), > + SUBARCH (prefetchi, PREFETCHI, ANY_PREFETCHI, false), > }; Once again - likely no need for ANY_PREFETCHI (but see question further down). > @@ -4522,7 +4523,8 @@ load_insn_p (void) > { > /* Anysize insns: lea, invlpg, clflush, prefetchnta, prefetcht0, > prefetcht1, prefetcht2, prefetchtw, bndmk, bndcl, bndcu, bndcn, > - bndstx, bndldx, prefetchwt1, clflushopt, clwb, cldemote. */ > + bndstx, bndldx, prefetchwt1, clflushopt, clwb, cldemote, prefetchit0 > + prefetchit1. */ > if (i.tm.opcode_modifier.anysize) > return 0; Rather than further increasing the comment volume (and hence making it harder to recognize quickly what is or is not covered here), may I suggest to fold all mentioning of prefetches here into a single "prefetch*"? > --- /dev/null > +++ b/gas/testsuite/gas/i386/x86-64-prefetchi-inval-register.d > @@ -0,0 +1,13 @@ > +#as: > +#objdump: -dw > +#name: x86-64 PREFETCHI INVAL REGISTER insns > + > +.*: +file format .* > + > + > +Disassembly of section .text: > + > +0+ <\.text>: > +[ ]*[a-f0-9]+:[ ]0f 18 39[ ]*nopl \(%rcx\) > +[ ]*[a-f0-9]+:[ ]0f 18 31[ ]*nopl \(%rcx\) > +#pass > diff --git a/gas/testsuite/gas/i386/x86-64-prefetchi-inval-register.s b/gas/testsuite/gas/i386/x86-64-prefetchi-inval-register.s > new file mode 100644 > index 0000000000..550449a0c9 > --- /dev/null > +++ b/gas/testsuite/gas/i386/x86-64-prefetchi-inval-register.s > @@ -0,0 +1,9 @@ > +.text > + #prefetchit0 (%rcx) PREFETCHIT0/1 apply without RIP-relative addressing, should stay NOPs. > + .byte 0x0f > + .byte 0x18 > + .byte 0x39 > + #prefetchit1 (%rcx) PREFETCHIT1/1 apply without RIP-relative addressing, should stay NOPs. > + .byte 0x0f > + .byte 0x18 > + .byte 0x31 This is the disassembler side test. An assembler side counterpart is needed as well, which I assume will point out that you also need to make another change to the assembler (to actually reject non-RIP- relative addressing). > @@ -1297,6 +1300,8 @@ enum > X86_64_0F01_REG_7_MOD_3_RM_6_PREFIX_1, > X86_64_0F01_REG_7_MOD_3_RM_6_PREFIX_3, > X86_64_0F01_REG_7_MOD_3_RM_7_PREFIX_1, > + X86_64_MOD_0F18_REG_6, > + X86_64_MOD_0F18_REG_7, X86_64_0F18_REG_6_MOD_0 and X86_64_0F18_REG_7_MOD_0 respectively. > @@ -4414,6 +4419,18 @@ static const struct dis386 x86_64_table[][2] = { > { "psmash", { Skip_MODRM }, 0 }, > }, > > + /* X86_64_MOD_0F18_REG_6 */ > + { > + { "nopQ", { Ev }, 0 }, > + { "prefetchit1", { { PREFETCHI_Fixup, b_mode } }, 0 }, > + }, > + > + /* X86_64_MOD_0F18_REG_7 */ > + { > + { "nopQ", { Ev }, 0 }, > + { "prefetchit0", { { PREFETCHI_Fixup, b_mode } }, 0 }, > + }, Nit: Please use consistent padding (tabs) after the first comma each. > @@ -14021,3 +14048,18 @@ OP_Rounding (instr_info *ins, int bytemode, int sizeflag ATTRIBUTE_UNUSED) > } > oappend (ins, "sae}"); > } > + > +static void > +PREFETCHI_Fixup (instr_info *ins, int bytemode, int sizeflag) > +{ > + if (ins->modrm.mod != 0 || ins->modrm.rm != 5) > + { > + if (ins->intel_syntax) > + ins->mnemonicendp = stpcpy (ins->obuf, "nop "); > + else > + ins->mnemonicendp = stpcpy (ins->obuf, "nopl "); Why "nopl"? There's no NP ahead of the opcode (and you also don't go through prefix_table[]), so I expect operand size should be expressed here correctly. > --- a/opcodes/i386-gen.c > +++ b/opcodes/i386-gen.c > @@ -261,6 +261,8 @@ static initializer cpu_flag_init[] = > "CpuMSRLIST" }, > { "CPU_AMX_FP16_FLAGS", > "CpuAMX_FP16" }, > + { "CPU_PREFETCHI_FLAGS", > + "CpuPREFETCHI"}, > { "CPU_IAMCU_FLAGS", > "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuIAMCU" }, > { "CPU_ADX_FLAGS", > @@ -471,6 +473,8 @@ static initializer cpu_flag_init[] = > "CpuMSRLIST" }, > { "CPU_ANY_AMX_FP16_FLAGS", > "CpuAMX_FP16" }, > + { "CPU_ANY_PREFETCHI_FLAGS", > + "CpuPREFETCHI" }, > }; Are there intended to be dependencies between these and the earlier prefetch features? > --- a/opcodes/i386-opc.tbl > +++ b/opcodes/i386-opc.tbl > @@ -3345,3 +3345,10 @@ wrmsrlist, 0xf30f01c6, None, CpuMSRLIST|Cpu64, No_bSuf|No_wSuf|No_lSuf|No_sSuf|N > tdpfp16ps, 0xf25c, None, CpuAMX_FP16|Cpu64, Modrm|Vex128|Space0F38|VexVVVV=1|VexW0|SwapSources|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegTMM, RegTMM, RegTMM } > > // AMX-FP16 instructions end. > + > +// PREFETCHI instructions. > + > +prefetchit0, 0xf18, 0x7, CpuPREFETCHI|Cpu64, Modrm|Anysize|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { BaseIndex } > +prefetchit1, 0xf18, 0x6, CpuPREFETCHI|Cpu64, Modrm|Anysize|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { BaseIndex } > + > +// PREFETCHI instructions end. With the restriction to RIP-relative addressing I think a better form of expressing such operands would be along the lines of CALL/JMP: prefetchit0 code_label ... code_label: I think it should be suggested to those having defined the ISA extension to at least permit assemblers to support this form (and then do so here, along with the present forms, unless the doc was changed to _only_ allow for the alternative form). Jan