From patchwork Thu Oct 13 08:22:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 1983 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4ac7:0:0:0:0:0 with SMTP id y7csp154115wrs; Thu, 13 Oct 2022 01:22:22 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4m+2kq0HuEasjO+KIucvBQyk/Ixx5dZXT6pHLvwFfEVrWX7xNlkKCFHlURYPrr+oLIYCgF X-Received: by 2002:aa7:cd10:0:b0:45c:2c83:1208 with SMTP id b16-20020aa7cd10000000b0045c2c831208mr15774247edw.81.1665649342304; Thu, 13 Oct 2022 01:22:22 -0700 (PDT) Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id hh19-20020a170906a95300b0078de536a3cdsi5092885ejb.119.2022.10.13.01.22.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Oct 2022 01:22:22 -0700 (PDT) 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=ejBt0u82; 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 48B733851155 for ; Thu, 13 Oct 2022 08:22:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 48B733851155 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1665649337; bh=BAvaczeYEG6coKSTRxVWC+d6wRmcXoh7xNDiVcurqV0=; h=Date:Subject:To:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=ejBt0u82sY2uoidcfKTvJIkGwijL1x4TnLZFTIlYTYT0LaLdI68QQ5YHULbj8/d+y m7PE2gNB14yrXjLGOwhKIhXVIq4xbgUzNx7oe0vcB5e3X0QwgJ+sMBC9enooX0eWTw K0aB4XIaEXzN3mXo04XaCNs8HO/bj+Arr2pesmp4= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80040.outbound.protection.outlook.com [40.107.8.40]) by sourceware.org (Postfix) with ESMTPS id D6DCE385040C for ; Thu, 13 Oct 2022 08:22:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D6DCE385040C ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aMVocHUeuYlXuNwCyzbda51bDHN5R9vaOfDVOgqIXCCoHtk0TOX8cHkUz3lRe31ty+02TRMgxKo8tldnNXi7/WLyK3FZPLng+wzHQ9RQMAQRWOZZ+asqV28ejH87+Cad5V0aRTx+8dozXrAK41cMmdqBtx/EoXX7nuukkBgK4Z4zp2jAGFfUqhyVKjkAMandPtPT9YuvorwJjQrC3QBk3QTfNKP7E2yPxgUEphpkcZmTlawAo+9BCkmhLngRfZse/H4A/zfSy6d2zgWymqJosPHbhLLMZoJA/1VihAjYn96WOPt3jjpNJoQWcR3oJMOB5pw8WSjtNKzFRKjIY6rJgQ== 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=BAvaczeYEG6coKSTRxVWC+d6wRmcXoh7xNDiVcurqV0=; b=ReUOTpi4NQBb70uoxIwvMdPTvGktz0aTQRjAMV/wpENg9aGrF5r8AQnE/CjPzv5kN4n49SmfDnhkH9QxMP9JNfbae6P/4CG/Xyg2wpwiJhAgw+M+q7uK04D+JFhn9Gh9i4oUiiTGytRLwBiWKI1uQQOeEelZqpdATzmDR6WC8C7r9dZifIlVxzzq68lH2aE6Dukyo1iBGSFXml6HYcfybaIdGemveeV5IWEsI4aEGPo9wd4EdAK0ssALwxahwmxhMPVDEaXm0jV0Yvx1fROC721/S3DgjbllyCoM4PRfUtuYML8+zaATsKM4qp6pEYzeJIr9Co9+oO2GibNIJorQ2g== 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 AS4PR04MB9650.eurprd04.prod.outlook.com (2603:10a6:20b:4cd::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.26; Thu, 13 Oct 2022 08:22:01 +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.026; Thu, 13 Oct 2022 08:22:01 +0000 Message-ID: <7d82692d-93df-fbee-9efb-2f44e8a91df3@suse.com> Date: Thu, 13 Oct 2022 10:22:00 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.3.2 Subject: [PATCH v4 8/8] x86: drop (now) stray IsString Content-Language: en-US To: Binutils References: <4aa2665c-535f-da2d-1edb-4eb1f4195c3e@suse.com> In-Reply-To: <4aa2665c-535f-da2d-1edb-4eb1f4195c3e@suse.com> X-ClientProxiedBy: FR0P281CA0054.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:48::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_|AS4PR04MB9650:EE_ X-MS-Office365-Filtering-Correlation-Id: 3114e78f-4b09-4ebf-bed6-08daacf400d9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yZ30dvmusgyED1OYFRyCe3pz4qYRthijHSmRKQUIf4rNlZk4APU4pnlahYFiwXdjagMn/ipSOmzZXKbmkANODhYtmeqNzSuT3XmcgEtvDSNJuuAW5mWwTdbYkpUv2KBc4Racb5xjNYyo89lHj3y429cHf96ZoMSKd7CHUrCqznfk3PN+FAg4jU+852k8cXL3qoL1ipxy81IureijMPovXPRU9aoX/9vl8rvN3NBIL1tiV6raH3v1NqfYeEm+RGfgMkhvHCzAcplEfe2+WDvK+9EKOnQIJyTwxgXBnGjioOGW5AM9ZQ4u5h7fDmNZA5T+pAwQKGjE/4RTspGI/gf650uzV2PiPjgflc+MsM4D9MslaHwjiHGLX56k2SQDwsoHhkA4tDlp5bdio9nIJOpWcs5UC+R37UGN0/Qw6fScJkQGv0BXQT7XlViqLWIKqxE/018OPXRuWJwSMNEA/xEsxzSFYyqxd4Qq6BI2kBqBYm2Zx5aJ7HybuRQTarXdPBmaM4nq3ESN1EN3wEsLrWVPRiXCNNybuow0y08vHtTjtYJN13ZZ0tg9tI+M0mlbl+VEkVRxTv8tbJCB/zj1hBnHWfUU7LYPcHfIT/OHyAeoh2I/fNoCsTJG9Ro60Lp84Sd3+BqWnR6F/FB2E52cM2SPPDo2jn4xTdv9oyAq6GcgF+3q5gu360B9Mb7WTYA7Qk7pQIU+i8lPRfM5yld5VbQPcck7h/uT5TX6EKgPkCBwxPIafiNOpE/6wEMxL+ChTuCzsLqVZRXxjL7uKqdMaTDYgc5QqQNiBJ2AtNRbnkB6O58= 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)(6029001)(346002)(376002)(136003)(366004)(39860400002)(396003)(451199015)(8676002)(36756003)(5660300002)(4326008)(186003)(83380400001)(478600001)(316002)(6486002)(31686004)(6916009)(66476007)(30864003)(66946007)(66556008)(6512007)(86362001)(26005)(2616005)(38100700002)(41300700001)(2906002)(6506007)(31696002)(8936002)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?7EmDy1F3ZOq8RRTbr4BU7J60a54q?= =?utf-8?q?OHaVDGn1+HA2sRQmzjlq9uTXQXvZCiAR9tpjDwb+auNZou2KVv084Flj4SEwA/VIU?= =?utf-8?q?r8p9eewpoFSmisKpIX2V+nZnoW+bacvFA2nIy0PLtd/PD7GTlA81z8hfQ28rwem74?= =?utf-8?q?7Z5M0kCLmBwoglcP/2io2yEiKpk+XY+PR4aPi2Nif8ydx4NEhB2DYZ7gjHvtT2Pc7?= =?utf-8?q?S+E390ZI/TxILRVdVKHLMYc82GRbThtMUUSiDpyx+WX212TzGYiHVo87jZ0vLg3Xh?= =?utf-8?q?/gGmNvvhLIvwA8iZJXxpz4QtzOWMTP7bON7uQ+zbCLEB8froFccZDzZ8Ma6U82MFI?= =?utf-8?q?skNW/JlpPdN3qRX7BA2kC3PTyiPKBzMFniq7luvkETMyztnMV5dPmqDEyfyMvnyHO?= =?utf-8?q?WWQXdp15apcuZ53Y2kuXY8SaVkS5wnxf/3EYrHKMhiPV+ciWKmIEGZsQrtMVkXJSj?= =?utf-8?q?G3KwFHTjsl669ulzS5wCIcWLShQWzjhRBGiPpyl+XXQcnzZ+sa9oke93DxmpfjBgt?= =?utf-8?q?jHoXblpvuINOuELdjclPO0PcSqWdeOz1azmw6qoRTecy/Yh/zm1qe/OnXKBdW7LQR?= =?utf-8?q?s6j4Su/5FgOhX25Vn6IACxu+I2sMtrYjC0SnpMRiqECHJb+BAs7SohbydGA694y5W?= =?utf-8?q?IZESr4485huw9MM+JApl/TH2t1d3xYkaVR69+BScyDV8Q+a1taMc/3dRzsrnME4kn?= =?utf-8?q?DJy+8n+lVc/guRwue4/Xf0njW+7vyQG6cCiVItHikLdS6PIeVRl9pluM6DQIHrZv5?= =?utf-8?q?lp6eSNWIN5UfcXey9UYvr1hgWCueDnP4OekZQ5CrxgginuLd5fiTwK5MlKYkInrth?= =?utf-8?q?hjhMnVZpHgJ8mqK6OKlKKPgHh3BIefJkC3dd15Dk/K4RojipGCnsXgI0vhUKPm8G6?= =?utf-8?q?sDcg6uobSQCYXlKBv96/CAC8jCpftegfDHeKkn5/bB/8dyTKNiEaYXXzBk1EcLms4?= =?utf-8?q?BsfP8wCRoMxidl9us4nz9c8y2HJZMftq+4GUZkDCD/c9zGFResUd2S0mrNoh0x2WV?= =?utf-8?q?yPN6zylBzut7XqVFRpKHgpGGd1CNebNw9VNZSnye2t4QVczeaNYS0/URuDbjyeR2H?= =?utf-8?q?vjfoxLV7ar708gndfizyW6k14KVCJqXWi1S7CUgvRXI/fCefp3dZbFl9sOSnxHI+3?= =?utf-8?q?SAcbZdYpOGJa8SzSL7ItFR888We6SrV8r6nNwxQVwXSOD+6KFoAChDLQrLitqvILD?= =?utf-8?q?1390JBFGx6K1vfXi7d8XWY2pdacsHOwO0V2g4mtbtSADIX1RnaluN33TOFvaccpia?= =?utf-8?q?z4jmYFM2dYGKfopIVKHDCroOOpBlM6z/sNtfZps+ruX3nSvJUhUw+/NVRvdaYbifY?= =?utf-8?q?Vq2nd/HBs7ToF+CqUU6FKgoZ0QNgVYEcNOQKDNUhaG+h0A5QjWCZtljmYrHwl5I+c?= =?utf-8?q?OdxlPADauqPbG3IdkF2jVmmOjH/EE+R1IlKG/tEsvpZocF6dNDYuylEED47lD2hTL?= =?utf-8?q?6OL6uGhx2O32MbQj1/qUSR1bm7v1ZmwKjNiLYrGmf+o0TL+u9aX7Bsz5Jl4LytZ2g?= =?utf-8?q?EQ2LHa1FUsQd?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3114e78f-4b09-4ebf-bed6-08daacf400d9 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2022 08:22:01.3708 (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: x0kqKitjw6Vt8C8X9F5GOG5Qqgvm9SVAQ8rUe6aBqF2KuICTZInmjCc09ZPeVSW4s1dTAHbd41i5LLYtVsT1DA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR04MB9650 X-Spam-Status: No, score=-3029.8 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1746559924563453964?= X-GMAIL-MSGID: =?utf-8?q?1746559924563453964?= While I question the original need for IsString on the PadLock insns, the need for them on the operand-less string insns has gone away with the removal of maybe_adjust_templates() and associated logic. Since i386_index_check() needs adjustment then anyway, take the opportunity and also simplify it, possible again as a result of said removal (plus the opcode template adjustments done here). --- v4: New. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -11269,12 +11269,9 @@ i386_index_check (const char *operand_st { const char *kind = "base/index"; enum flag_code addr_mode = i386_addressing_mode (); - const insn_template *t = current_templates->start; + const insn_template *t = current_templates->end - 1; - if (t->opcode_modifier.isstring - && !t->cpu_flags.bitfield.cpupadlock - && (current_templates->end[-1].opcode_modifier.isstring - || i.mem_operands)) + if (t->opcode_modifier.isstring) { /* Memory operands of string insns are special in that they only allow a single register (rDI, rSI, or rBX) as their memory address. */ @@ -11291,14 +11288,12 @@ i386_index_check (const char *operand_st if (t->opcode_modifier.prefixok == PrefixRep) { - int es_op = current_templates->end[-1].opcode_modifier.isstring - - IS_STRING_ES_OP0; + int es_op = t->opcode_modifier.isstring - IS_STRING_ES_OP0; int op = 0; - if (!current_templates->end[-1].operand_types[0].bitfield.baseindex + if (!t->operand_types[0].bitfield.baseindex || ((!i.mem_operands != !intel_syntax) - && current_templates->end[-1].operand_types[1] - .bitfield.baseindex)) + && t->operand_types[1].bitfield.baseindex)) op = 1; expected_reg = (const reg_entry *) str_hash_find (reg_hash, @@ -11341,6 +11336,8 @@ i386_index_check (const char *operand_st } else { + t = current_templates->start; + if (addr_mode != CODE_16BIT) { /* 32-bit/64-bit checks. */ --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -478,37 +478,37 @@ loopne, 0xe0, None, Cpu64, JumpByte|No_b set, 0xf9, 0, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex } // String manipulation. -cmps, 0xa6, None, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, {} +cmps, 0xa6, None, 0, W|No_sSuf|No_ldSuf|RepPrefixOk, {} cmps, 0xa6, None, 0, W|No_sSuf|No_ldSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex } -scmp, 0xa6, None, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, {} +scmp, 0xa6, None, 0, W|No_sSuf|No_ldSuf|RepPrefixOk, {} scmp, 0xa6, None, 0, W|No_sSuf|No_ldSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex } -ins, 0x6c, None, Cpu186, W|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, {} +ins, 0x6c, None, Cpu186, W|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, {} ins, 0x6c, None, Cpu186, W|No_sSuf|No_qSuf|No_ldSuf|IsStringEsOp1|RepPrefixOk, { InOutPortReg, Byte|Word|Dword|Unspecified|BaseIndex } -outs, 0x6e, None, Cpu186, W|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, {} +outs, 0x6e, None, Cpu186, W|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, {} outs, 0x6e, None, Cpu186, W|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Unspecified|BaseIndex, InOutPortReg } -lods, 0xac, None, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, {} +lods, 0xac, None, 0, W|No_sSuf|No_ldSuf|RepPrefixOk, {} lods, 0xac, None, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex } lods, 0xac, None, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword } -slod, 0xac, None, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, {} +slod, 0xac, None, 0, W|No_sSuf|No_ldSuf|RepPrefixOk, {} slod, 0xac, None, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex } slod, 0xac, None, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword } -movs, 0xa4, None, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, {} +movs, 0xa4, None, 0, W|No_sSuf|No_ldSuf|RepPrefixOk, {} movs, 0xa4, None, 0, W|No_sSuf|No_ldSuf|IsStringEsOp1|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex } -smov, 0xa4, None, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, {} +smov, 0xa4, None, 0, W|No_sSuf|No_ldSuf|RepPrefixOk, {} smov, 0xa4, None, 0, W|No_sSuf|No_ldSuf|IsStringEsOp1|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex } -scas, 0xae, None, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, {} +scas, 0xae, None, 0, W|No_sSuf|No_ldSuf|RepPrefixOk, {} scas, 0xae, None, 0, W|No_sSuf|No_ldSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex } scas, 0xae, None, 0, W|No_sSuf|No_ldSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword } -ssca, 0xae, None, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, {} +ssca, 0xae, None, 0, W|No_sSuf|No_ldSuf|RepPrefixOk, {} ssca, 0xae, None, 0, W|No_sSuf|No_ldSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex } ssca, 0xae, None, 0, W|No_sSuf|No_ldSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword } -stos, 0xaa, None, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, {} +stos, 0xaa, None, 0, W|No_sSuf|No_ldSuf|RepPrefixOk, {} stos, 0xaa, None, 0, W|No_sSuf|No_ldSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex } stos, 0xaa, None, 0, W|No_sSuf|No_ldSuf|IsStringEsOp1|RepPrefixOk, { Acc|Byte|Word|Dword|Qword, Byte|Word|Dword|Qword|Unspecified|BaseIndex } -ssto, 0xaa, None, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, {} +ssto, 0xaa, None, 0, W|No_sSuf|No_ldSuf|RepPrefixOk, {} ssto, 0xaa, None, 0, W|No_sSuf|No_ldSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex } ssto, 0xaa, None, 0, W|No_sSuf|No_ldSuf|IsStringEsOp1|RepPrefixOk, { Acc|Byte|Word|Dword|Qword, Byte|Word|Dword|Qword|Unspecified|BaseIndex } -xlat, 0xd7, None, 0, No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString, {} +xlat, 0xd7, None, 0, No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, {} xlat, 0xd7, None, 0, No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString, { Byte|Unspecified|BaseIndex } // Bit manipulation. @@ -1961,24 +1961,24 @@ lzcnt, 0xf30fbd, None, CpuLZCNT, Modrm|C popcnt, 0xf30fb8, None, CpuPOPCNT, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } // VIA PadLock extensions. -xstore-rng, 0xfa7c0, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, {} -xcrypt-ecb, 0xf30fa7c8, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, {} -xcrypt-cbc, 0xf30fa7d0, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, {} -xcrypt-ctr, 0xf30fa7d8, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, {} -xcrypt-cfb, 0xf30fa7e0, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, {} -xcrypt-ofb, 0xf30fa7e8, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, {} -montmul, 0xf30fa6c0, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, {} -xsha1, 0xf30fa6c8, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, {} -xsha256, 0xf30fa6d0, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, {} +xstore-rng, 0xfa7c0, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, {} +xcrypt-ecb, 0xf30fa7c8, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, {} +xcrypt-cbc, 0xf30fa7d0, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, {} +xcrypt-ctr, 0xf30fa7d8, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, {} +xcrypt-cfb, 0xf30fa7e0, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, {} +xcrypt-ofb, 0xf30fa7e8, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, {} +montmul, 0xf30fa6c0, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, {} +xsha1, 0xf30fa6c8, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, {} +xsha256, 0xf30fa6d0, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, {} // Aliases without hyphens. -xstorerng, 0xfa7c0, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, {} -xcryptecb, 0xf30fa7c8, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, {} -xcryptcbc, 0xf30fa7d0, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, {} -xcryptctr, 0xf30fa7d8, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, {} -xcryptcfb, 0xf30fa7e0, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, {} -xcryptofb, 0xf30fa7e8, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, {} +xstorerng, 0xfa7c0, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, {} +xcryptecb, 0xf30fa7c8, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, {} +xcryptcbc, 0xf30fa7d0, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, {} +xcryptctr, 0xf30fa7d8, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, {} +xcryptcfb, 0xf30fa7e0, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, {} +xcryptofb, 0xf30fa7e8, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, {} // Alias for xstore-rng. -xstore, 0xfa7c0, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, {} +xstore, 0xfa7c0, None, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, {} // Multy-precision Add Carry, rdseed instructions. adcx, 0x660f38f6, None, CpuADX, Modrm|CheckRegSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }