From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2067.outbound.protection.outlook.com [40.107.6.67]) by sourceware.org (Postfix) with ESMTPS id 41F883858C52 for ; Thu, 28 Sep 2023 14:36:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 41F883858C52 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=YQhDmhU7/72tphcMP5wPkB8Mv+lC2ynifuMkktDOjABGi+ONLJK6zvZKQzOYur33iVrs7WnF6YgFqlU3UGkAjrc45OtvEdbm9Z9WSxAULJ/az+6KI0oMjoj2nlfSt1kOsZwRR98nKHIHE5Rv7H7nw9QRMBpgKQ6VNV4ZwAbDwjHNZieQ7LfAg33PGq/ffmC1HWRv+aOUv7L2mzXRoBJ4S+rgzd8W0CAepn53SIa92c3NkWzqo+FB85gy9LGMKf87SMtH6t55f1MNtatvYlMT5MU+mM54LhZ2FlZYVTa1R0M8OLgjSwoh5nAJdKe5FsKIPKnElgQ6osjf2HBSQM1U1w== 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=3kKMkKfleIvcqyDd9EHn59t86EhrRVyV4Gx6ScrMqnM=; b=nG77v8gY7E5xaaBS2H+wrb0bo07un7M7Af3SBWkrpghWmU/sEazkcXYMjPe7mCiN8izu2HxV30i8ASjBU42o+RQ6iKqZz/VNj10bmKZgcsg1D7nFgjnr1mxQxCpmtjylDdWGFDKmZcODyKH28c+pKDyhXvWmjJA+Q8lyEexegiRVKaJHO2j3ZpN+ZJS+msCSKx+SXWrz3qNeOysUISZJktsocF0yITmhnvfEwB1P2HppXUqDJ75L8MGkD5KmErEXLVUkMevVf7uqfIu8+/xsYxIGsg70ailTWY8YCJdVG+WdtjeoPYxqu6iBI6p/8GXGxbIO6+JnXa6hu2Sj1FrfQw== 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=3kKMkKfleIvcqyDd9EHn59t86EhrRVyV4Gx6ScrMqnM=; b=NGUlTL/G0CjOa0Zlf2zjXzD/BLOWCoraG6ll14ejkbndfh+7KqXsQ55/n2WUlDsma1VrPG7eYs2FA/lXfyXFHrsdvMpPewF7X5/XS78opZ3IFu4U59MkHeIQRaignXSXFhRcUjsBUccnJnv3bg1eYku8yysQkcNd7zxpdAVZCe35BkQ/pbqJk0l9sFwUzhTtI4liRK/E44rcBBRBK5KxWylwcHpMF5Ugg/xy8K5U6brLdSP35JGneyyNHWIPYofAp/rnjDy+/CHDBbkij4Z7J2r2t02WpOWdnepf7GfxzTVDJqW79hyKYMx6yaRXNnzMAS+fQ09pZCZTDcEYFQaj2w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by AS1PR04MB9288.eurprd04.prod.outlook.com (2603:10a6:20b:4dc::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.22; Thu, 28 Sep 2023 14:36:37 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9f5d:8bed:7a5b:e75a]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9f5d:8bed:7a5b:e75a%6]) with mapi id 15.20.6838.016; Thu, 28 Sep 2023 14:36:36 +0000 Message-ID: Date: Thu, 28 Sep 2023 16:36:33 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH 1/6] Support {evex} pseudo prefix for decode evex promoted insns without egpr32. Content-Language: en-US To: "Cui, Lili" Cc: hongjiu.lu@intel.com, ccoutant@gmail.com, "Hu, Lin1" , binutils@sourceware.org References: <20230921101141.2518818-1-lili.cui@intel.com> <20230921101141.2518818-2-lili.cui@intel.com> From: Jan Beulich In-Reply-To: <20230921101141.2518818-2-lili.cui@intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR2P281CA0096.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9b::19) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AS1PR04MB9288:EE_ X-MS-Office365-Filtering-Correlation-Id: 23b9fb6a-3d55-468d-4451-08dbc0305164 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kjXIwff0BUXlNkPl4EtDJC6PaD/NpPCZOiQzWyH6z6fe7Aw9UHzM0wg9QzqdwCKW9huU2y9B/lnrAEo2/3ZjV8WienFyuT3lJFIsXs+/RYUiAhMFgbZC0IG08gWolaYgB+ASfozEvTWgX88cOnBvBhOgeX5Sjt1IMGMfghLDkT254K8Z7LFIKDdV+27DZ0k/ve7+32MhJNXyNfHX9gW91igSUR2DgyBohcq4ZV5LD3L9JrOUdg5l+x9Wfwvqn0T9gl2RtWnuyLAjXZNrYsF1L8L+2JLcM3+G15slRn52QMx6K4q18NF3TZw81eyW3wuXsd7ZudVsc5wCfTHC/5SUbGqR69FNp9e8PKPXr719Cgok04ksBXNV0+K6LJfCAUfgAV8xKuF5qDGOTNPBiTdVVbl24Jt5xxRXrQl64hmAk7OzDzFINaSWwYwpqT1lNqddeb3lur5wwmK/0sJMucnIli4yolf+jBdZqDThVqYJjOSGJjOxdHZizRELx5R7up8UbfBgQ7TJpKtK3YjSvcNSk9PM6XmDRsypkez2rzhfWNZoEpCHodV1GnJoJVW4NCHaRNNqnrcwLjHO+604WbVptNbGpK0V1VUHkyLlaiPpLHeyifkcBBH3S+iQ2W7+HAR2MeGSUfMyRtZn4PGktSj2tw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(136003)(39860400002)(366004)(396003)(346002)(230922051799003)(64100799003)(1800799009)(186009)(451199024)(26005)(2616005)(6486002)(6506007)(6666004)(41300700001)(6512007)(83380400001)(5660300002)(8676002)(30864003)(4326008)(8936002)(478600001)(2906002)(53546011)(6916009)(66556008)(66476007)(66946007)(316002)(38100700002)(31696002)(86362001)(36756003)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dXNZcGp0UjN4Z0dIcnNGMnA5MnZLdVFhNVNGNmlQekZVNHU2bDRIL3VCcFF6?= =?utf-8?B?SHJWWCtNbVNvcWJzbjBpWHRlNW5jWnJOcEJSMThrZVpaRDVIc1F6M2lqZks5?= =?utf-8?B?ZnhwSmIzNjJUd2I4bGhtSXBNY2pDZGp4ZE1MSGFPaytaZTJhbnY1YVRjcGMw?= =?utf-8?B?OWtDbGVoclZKYXIrWXF1WkFvdm5zUFdBOHBVTnBPVEVpdzQ5ekptSFBEKzdi?= =?utf-8?B?YzFJN0FnbC9QUVBPRCtQd3FmYU4ybXhoQW9uOTV0c09uOVNkQVpkVU0xV3dt?= =?utf-8?B?UWJxdmNhSm1PNUwvTUlPcTQxMmd3dDdLU0hXQ2hZZk0yUXkwc0tqWStUbzFk?= =?utf-8?B?R2VGWU80SDYzYVpXQTV2Ri8rNU1UY3NpRCs3b1ROVE9BOHhWMFJOWnl5SzBv?= =?utf-8?B?cm1VM1FjSHJycjdOdlZ4V0RFdVk1LytpbTlPN3dzVExkWkxPbDZCZ3FkRWtL?= =?utf-8?B?WHhpTkxBRTVScCt3a0F6RmtkWjNHa3FrUkpqdm1FTmVha2h3WUEwcVRLZkV5?= =?utf-8?B?NmlPVXptSDJ4RHJUWm0ybkxQaFlIZFF3aDUwcTg2VURDVkxxR0xhS0hTdmto?= =?utf-8?B?bW9PakFSbXBjMHZDYUxQdkZjUlRhTGdyU004OFkwR09UK2RUM1Y1WVRPeCtV?= =?utf-8?B?WjFNdktxNjdNc0w4VUt6WFFaNnM4cWMxb2dPeTh1NTdRejV6Z1Y1YW1mNDBY?= =?utf-8?B?ZHhkWlV2S1RFek9oZ1Y4cFpuRFdIUUhFaUNuSFB2Sm1HbjdLblJPbHloWmh2?= =?utf-8?B?SXBYTWF2eHlDaHhsemtSV1pYN1BKNThINndBWkJ6YjFxQW4zSXZkVE9jejVD?= =?utf-8?B?MFJrZm1oVFRwa3NCK3RScEVPY3JLUE9PNFl2MVlJcFNmZkpmQk5zM0RoQ1I3?= =?utf-8?B?cTNwenluVEJOaHVnVDF1cmpmSExaSFZ0Z00vNVZFcm9ZYWZ4N2ZHOEFBVEdN?= =?utf-8?B?cGpyVE1rbjJWUlNBK2NIZXhka3JzUzR3ZThXWk5TZUk2NVJmWk11Mk5URWFL?= =?utf-8?B?WnJHODNTODlPSDM0UXZhN3IzZTJscVR3VnRhUUNjclg5bWtCT3YwajdxWHAv?= =?utf-8?B?K1VpbVR4U0VkOWtTQWhaUGZ0Z2srL1VqUVpleFhaZWdDeElDRyswajhSSFFy?= =?utf-8?B?SGM1UmhueVFCNXRjaGkzeTU0ZStuRXpYSVBXSGwxVkp1QlNFemk5bUYySDdG?= =?utf-8?B?ZEhDUDRDZWwrUHB6REQzL05LTjMxRzc0UVhtVEtUMGQwZVlZZDBOc3BLWHZH?= =?utf-8?B?UENYRmw2SS9kd2pWNkJjeFN0NVpSS0YyZXVYdTdCaGF2cEYvUjNOaEMvZUpX?= =?utf-8?B?dVY3MGxxQ0o1ODlUYXUrWWtDc1JESWN0QjdkbHptR3o1Q2NBdGhWRmE1UWRl?= =?utf-8?B?a3pnUmo1YXJGbUlPVjlkNGJZbkZvcjRvZk1OWTQ2V0dibkNaZWIrRys3NEl3?= =?utf-8?B?akRhVll3ZWxXaUZ3dFRuMnhiUjVQWmtVdGxaVGh4ZkpKL3h0N3FZbnZ0RmVI?= =?utf-8?B?ODFCREVYVHNHdThsMlQwamM1a1pLUk1WMkl2T3FteFhOb1R2em1EM1ZvdHJs?= =?utf-8?B?VVVPYzZmRWVtaFBZK0Q1YnliYXJDK05VMTAyaUZXVzh2cDRLVGZEYjh6S2ZV?= =?utf-8?B?UUpSZ1JYUFdlcnRFRFBlbUlaTjUzMkhTVS9BSFhwSmhaRnZmeFZEZmtKanpl?= =?utf-8?B?bU5WbHV1b3RVVE1aK1VsQzl4UmRhZ3ZkMTRHWEZjRVpUUU1MVTBNbk82Umc1?= =?utf-8?B?cFp4TlkzNXk4NEpOb3BMdllISHpubEs4T25jeEFNZ1BENFlQUWx0UzNQdDJ3?= =?utf-8?B?L0dSWXF1NUlqWVVZQm5uVUtob1dFT0xNa2ExMVhYKzdqelczY0pRekJ2VVpt?= =?utf-8?B?ai9RRCtvTlJwZ3ZyemErdm4xRGFrS3RQZVR4VElwZ2FTSk1iTVYzWlNta3dC?= =?utf-8?B?M05GWFN5cVZpZmJrenZmNnVCNjI1eWVKZ25ValJGQUI3czMzQVlHUjJaUnN6?= =?utf-8?B?SWVndGk5L2dwN1gxaVpIRTJBUndIaUZCNGVZNVQwcDVsQ0FBTEZFTHo1cnJv?= =?utf-8?B?czNEandueGg0a0VYR1NKZkpTN0xSUnJ1MWNYcEZOYmhiaVRZYUpBUUZYZyt5?= =?utf-8?Q?IkayPxEdn9AkpcsNKOsj3UbAW?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 23b9fb6a-3d55-468d-4451-08dbc0305164 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Sep 2023 14:36:36.1965 (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: 4jdRtnXTbUx9UOwYcy3Qh5GlOxSUVzDWfj4gTWZ88jzyFc0swgcnCNMKhJOXJGL4/IQ1c8Ey5ES6iCWxWnSE2g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR04MB9288 X-Spam-Status: No, score=-3027.5 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 21.09.2023 12:11, Cui, Lili wrote: > --- a/gas/config/tc-i386.c > +++ b/gas/config/tc-i386.c > @@ -7581,6 +7581,8 @@ match_template (char mnem_suffix) > } > else if (t->opcode_space != SPACE_BASE > && !t->opcode_modifier.nf > + && (t->opcode_space != SPACE_EVEXMAP4 > + || t->mnem_off == MN_movbe) > && (t->opcode_space != SPACE_0F > /* MOV to/from CR/DR/TR, as an exception, follow > the base opcode space encoding model. */ So this is along the lines of the change that I would have expected earlier in the other series, and which I also expect renders unnecessary the .nf check here. I'm having a hard time seeing why it lives here. > --- /dev/null > +++ b/gas/testsuite/gas/i386/x86-64-apx_f-evex.s > @@ -0,0 +1,1180 @@ > +# Check 64bit APX_F instructions with evex pseudo prefix > + > + .text > +_start: > + {evex} aadd %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX Once again earlier comments apply throughout this file. > + {evex} aadd %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} aand %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} aand %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} adc $0x7b,%r15 #APX_F OPC_EVEX_EVEX > + {evex} adc $0x7b,%r15d #APX_F OPC_EVEX_EVEX > + {evex} adc $0x7b,%r15w #APX_F OPC_EVEX_EVEX > + {evex} adc $0x7b,%r8b #APX_F OPC_EVEX_EVEX > + {evex} adcb $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} adcw $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} adcl $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} adcq $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} adc %r15,%r15 #APX_F OPC_EVEX_EVEX > + {evex} adc %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} adc %r15d,%edx #APX_F OPC_EVEX_EVEX > + {evex} adc %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} adc %r15w,%ax #APX_F OPC_EVEX_EVEX > + {evex} adc %r15w,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} adc %r8b,%dl #APX_F OPC_EVEX_EVEX > + {evex} adc %r8b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} adc 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX > + {evex} adc 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX > + {evex} adc 0x123(%r8,%rax,4),%r15w #APX_F OPC_EVEX_EVEX > + {evex} adc 0x123(%r8,%rax,4),%r8b #APX_F OPC_EVEX_EVEX > + {evex} adcx %r15,%r15 #APX_F OPC_EVEX_EVEX > + {evex} adcx %r15d,%edx #APX_F OPC_EVEX_EVEX > + {evex} adcx 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX > + {evex} adcx 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX > + {evex} add $0x7b,%r15 #APX_F OPC_EVEX_EVEX > + {evex} add $0x7b,%r15d #APX_F OPC_EVEX_EVEX > + {evex} add $0x7b,%r15w #APX_F OPC_EVEX_EVEX > + {evex} add $0x7b,%r8b #APX_F OPC_EVEX_EVEX > + {evex} addb $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} addw $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} addl $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} addq $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} add %r15,%r15 #APX_F OPC_EVEX_EVEX > + {evex} add %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} add %r15d,%edx #APX_F OPC_EVEX_EVEX > + {evex} add %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} add %r15w,%ax #APX_F OPC_EVEX_EVEX > + {evex} add %r15w,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} add %r8b,%dl #APX_F OPC_EVEX_EVEX > + {evex} add %r8b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} add 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX > + {evex} add 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX > + {evex} add 0x123(%r8,%rax,4),%r15w #APX_F OPC_EVEX_EVEX > + {evex} add 0x123(%r8,%rax,4),%r8b #APX_F OPC_EVEX_EVEX > + {evex} adox %r15,%r15 #APX_F OPC_EVEX_EVEX > + {evex} adox %r15d,%edx #APX_F OPC_EVEX_EVEX > + {evex} adox 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX > + {evex} adox 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX > + {evex} aesdec128kl 0x123(%r8,%rax,4),%xmm12 #APX_F OPC_EVEX_EVEX > + {evex} aesdec256kl 0x123(%r8,%rax,4),%xmm12 #APX_F OPC_EVEX_EVEX > + {evex} aesdecwide128kl 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} aesdecwide256kl 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} aesenc128kl 0x123(%r8,%rax,4),%xmm12 #APX_F OPC_EVEX_EVEX > + {evex} aesenc256kl 0x123(%r8,%rax,4),%xmm12 #APX_F OPC_EVEX_EVEX > + {evex} aesencwide128kl 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} aesencwide256kl 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} and $0x7b,%r15 #APX_F OPC_EVEX_EVEX > + {evex} and $0x7b,%r15d #APX_F OPC_EVEX_EVEX > + {evex} and $0x7b,%r15w #APX_F OPC_EVEX_EVEX > + {evex} and $0x7b,%r8b #APX_F OPC_EVEX_EVEX > + {evex} andb $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} andw $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} andl $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} andq $0x7b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} and %r15,%r15 #APX_F OPC_EVEX_EVEX > + {evex} and %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} and %r15d,%edx #APX_F OPC_EVEX_EVEX > + {evex} and %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} and %r15w,%ax #APX_F OPC_EVEX_EVEX > + {evex} and %r15w,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} and %r8b,%dl #APX_F OPC_EVEX_EVEX > + {evex} and %r8b,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} and 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX > + {evex} and 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX > + {evex} and 0x123(%r8,%rax,4),%r15w #APX_F OPC_EVEX_EVEX > + {evex} and 0x123(%r8,%rax,4),%r8b #APX_F OPC_EVEX_EVEX > + {evex} andn %r15,%r15,%r11 #APX_F OPC_EVEX_EVEX > + {evex} andn %r15d,%edx,%r10d #APX_F OPC_EVEX_EVEX > + {evex} andn 0x123(%r8,%rax,4),%r15,%r15 #APX_F OPC_EVEX_EVEX > + {evex} andn 0x123(%r8,%rax,4),%r15d,%edx #APX_F OPC_EVEX_EVEX > + {evex} aor %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} aor %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} axor %r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} axor %r15d,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} bextr %r15,%r15,%r11 #APX_F OPC_EVEX_EVEX > + {evex} bextr %r15,0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX > + {evex} bextr %r15d,%edx,%r10d #APX_F OPC_EVEX_EVEX > + {evex} bextr %r15d,0x123(%r8,%rax,4),%edx #APX_F OPC_EVEX_EVEX > + {evex} blsi %r15,%r15 #APX_F OPC_EVEX_EVEX > + {evex} blsi %r15d,%edx #APX_F OPC_EVEX_EVEX > + {evex} blsi 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX > + {evex} blsi 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX > + {evex} blsmsk %r15,%r15 #APX_F OPC_EVEX_EVEX > + {evex} blsmsk %r15d,%edx #APX_F OPC_EVEX_EVEX > + {evex} blsmsk 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX > + {evex} blsmsk 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX > + {evex} blsr %r15,%r15 #APX_F OPC_EVEX_EVEX > + {evex} blsr %r15d,%edx #APX_F OPC_EVEX_EVEX > + {evex} blsr 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX > + {evex} blsr 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX > + {evex} bzhi %r15,%r15,%r11 #APX_F OPC_EVEX_EVEX > + {evex} bzhi %r15,0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX > + {evex} bzhi %r15d,%edx,%r10d #APX_F OPC_EVEX_EVEX > + {evex} bzhi %r15d,0x123(%r8,%rax,4),%edx #APX_F OPC_EVEX_EVEX > + {evex} cmpbexadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpbexadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpbxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpbxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmplexadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmplexadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmplxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmplxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpnbexadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpnbexadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpnbxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpnbxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpnlexadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpnlexadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpnlxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpnlxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpnoxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpnoxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpnpxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpnpxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpnsxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpnsxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpnzxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpnzxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpoxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpoxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmppxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmppxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpsxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpsxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpzxadd %r15,%r15,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} cmpzxadd %r15d,%edx,0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} dec %r15 #APX_F OPC_EVEX_EVEX > + {evex} dec %r15d #APX_F OPC_EVEX_EVEX > + {evex} dec %r15w #APX_F OPC_EVEX_EVEX > + {evex} dec %r8b #APX_F OPC_EVEX_EVEX > + {evex} decb 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} decw 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} decl 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} decq 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} div %r15 #APX_F OPC_EVEX_EVEX > + {evex} div %r15d #APX_F OPC_EVEX_EVEX > + {evex} div %r15w #APX_F OPC_EVEX_EVEX > + {evex} div %r8b #APX_F OPC_EVEX_EVEX > + {evex} divb 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} divw 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} divl 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} divq 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} encodekey128 %r15d,%edx #APX_F OPC_EVEX_EVEX > + {evex} encodekey256 %r15d,%edx #APX_F OPC_EVEX_EVEX > + {evex} enqcmd 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX > + {evex} enqcmd 0x123(%r8d,%eax,4),%r15d #APX_F OPC_EVEX_EVEX > + {evex} enqcmds 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX > + {evex} enqcmds 0x123(%r8d,%eax,4),%r15d #APX_F OPC_EVEX_EVEX > + {evex} idiv %r15 #APX_F OPC_EVEX_EVEX > + {evex} idiv %r15d #APX_F OPC_EVEX_EVEX > + {evex} idiv %r15w #APX_F OPC_EVEX_EVEX > + {evex} idiv %r8b #APX_F OPC_EVEX_EVEX > + {evex} idivb 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} idivw 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} idivl 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} idivq 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} imul %r15 #APX_F OPC_EVEX_EVEX > + {evex} imul %r15,%r15 #APX_F OPC_EVEX_EVEX > + {evex} imul %r15d #APX_F OPC_EVEX_EVEX > + {evex} imul %r15d,%edx #APX_F OPC_EVEX_EVEX > + {evex} imul %r15w #APX_F OPC_EVEX_EVEX > + {evex} imul %r15w,%ax #APX_F OPC_EVEX_EVEX > + {evex} imul %r8b #APX_F OPC_EVEX_EVEX > + {evex} imulb 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} imulw 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} imull 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX > + {evex} imul 0x123(%r8,%rax,4),%r15 #APX_F OPC_EVEX_EVEX > + {evex} imul 0x123(%r8,%rax,4),%r15d #APX_F OPC_EVEX_EVEX > + {evex} imul 0x123(%r8,%rax,4),%r15w #APX_F OPC_EVEX_EVEX > + {evex} imulq 0x123(%r8,%rax,4) #APX_F OPC_EVEX_EVEX Again no IMUL by immediate (and this time also missing from the Intel syntax section)? > --- a/opcodes/i386-dis-evex-len.h > +++ b/opcodes/i386-dis-evex-len.h > @@ -64,7 +64,7 @@ static const struct dis386 evex_len_table[][3] = { > > /* EVEX_LEN_0F38F2 */ > { > - { "%XNandnS", { Gdq, VexGdq, Edq }, 0 }, > + { "%XE%XNandnS", { Gdq, VexGdq, Edq }, 0 }, > }, Why %XE when there already is %XN? (You add this in a few more cases, but not everywhere, and it's unclear what the underlying pattern is.) Imo the handling of %XN, when it doesn't emit {nf}, should simply fall through (or goto) to %XE handling. As to the further additions of %XE, same request as before: Please introduce the final way right in the patch adding those, rather than playing with things again a 2nd time. Not doing so may be necessary in a few cases (where things intermediately wouldn't work right if put into final shape right away), but I don't think this is one of them. Jan