From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 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=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 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=BAvaczeYEG6coKSTRxVWC+d6wRmcXoh7xNDiVcurqV0=; b=AAMwJQ+UiYlazCSehN1KYjMm4HRrL37SdmMWK/BvAS2Vu2motXEKfDZ9ZRFTDbTmTH+CB4lz/PYwBtKdpgwv/cupVtV7CQpHU4sDLEDswJq1nCKM7cyNur4DuWXU+1RvYExOaFyk6eXHhoqW+ER94oU8yUVv5VcJESNrgu8kdtA26wBHq9fxUUo+1Dft4LmUQ106oARF5aMP5IyVklLIs55ONI0Vw+upvP3wjWUxtPLQ4bdT+f6lOsoQTPyEt7BYQ3BmOVjOoFESIp9QmkUu6ecal0axyLhFj7vUdReW+3iAkO6K48/kkS3P+ROPJtkA/1EV2wxQ7rQhPS66rjfbwQ== 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 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> Cc: "H.J. Lu" From: Jan Beulich In-Reply-To: <4aa2665c-535f-da2d-1edb-4eb1f4195c3e@suse.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit 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?B?N0VtRHkxRjNaT3E4UlJUYnI0QlU3SjYwYTU0cU9IYVZER24xK0hBMnNSUW16?= =?utf-8?B?amxxOXVUWFFYdlpDaUFSOXRwakR3YithdU5ab3UyS1Z2MDg0RmxqNFNFd0Ev?= =?utf-8?B?VklVcjhwOWVld3BvRlNtaXNLcElYMlYrblpub1crYmFjdkZBMm5JeTBQTHRk?= =?utf-8?B?L1BEN0dUbEE4MXo4aGZRMjhyd2VtNzQ3WjVNMGtDTG1Cd29nbGNQLzJpbzJ5?= =?utf-8?B?RWlLcGsrWFkrUFI0YVBpMk5pZjh5ZHg0TkVoQjJEWVo3Z2pIdnRUMlBjN1Mr?= =?utf-8?B?RTM5MFpJL1R4SUxSVmRWS0hMTVljODJHUmJUaHRNVVVTaURweXgrV1gyMTJU?= =?utf-8?B?ekdZaUhWbzg3alowdkxnM1hoL2dHbU52dmhMSXZ3QThpWkpYeHB6NFF0ek9X?= =?utf-8?B?TVRQN2JPTjd1USt6YkNMRUI4ZnJvRmNjWkR6WjhNYTZVODJNRklza05XL0ps?= =?utf-8?B?cFBkTjNxUlg3QkEya0MzUFR5aVBLQnpNRm5pcTdsdXZrRVRNeXp0bk1WNWRQ?= =?utf-8?B?bXFERXlmeU12bnlIT1dXUVhkcDE1YXBjdVo1M1kya3VYWThTYVZrUzV3bnhm?= =?utf-8?B?LzNFWXJIS01oaVBWK2NpV0ttSUVHWnNRcnRNVmtYSlNqRzNLd0ZIVGpzbDY2?= =?utf-8?B?OXVselM1d0NJY1dMU2hRV3pqaFJCR2lQcHlsK1hYUWNuelorc2E5b2tlOTNE?= =?utf-8?B?eG1wZmpCZ3RqSG9YYmxwdnVJTk91RUxkamNsUE8wUGNTcVdkZU96MWF6bXc2?= =?utf-8?B?cW9SVGVjeS9ZaC96bTFxZS9PblhLQmRXN0xRUnM2ajRTdS81RmdPaFgyNVZu?= =?utf-8?B?NklBQ3h1K0kyc010cllqQzBTbnBNUmlxRUNISmIrQkFzN1NvaGJ5ZEdBNjk0?= =?utf-8?B?eTVXSVpFU3I0NDg1aHV3OU1NK0pBcGwvVEgydDFkM3hZa2FWUjY5K0JTY3lE?= =?utf-8?B?VjhRK2ExdGFNYy8zZFJ6c3JuTUU0a25ESnkrOG4rbFZjL2d1Und1ZTQvWGYw?= =?utf-8?B?bmpXKzd2eVFHNmNDaVZJdEhpa0xkUzZQSWVWUmw5cGx1TTZEUUlIclp2NWxw?= =?utf-8?B?NmVTTldJTjVVZmNYZXk5VVl2cjFoZ1dDdWVEblA0T2VrWlE1Q3J4Z2dpbnVM?= =?utf-8?B?ZDVmaVR3SzVNbEtZa0lucnRoaGpoTW5WWnBIZ0o4bXFLNk9LbEtLUGdIaDNC?= =?utf-8?B?SWVmSmtDM2RkMTVEay9LNFJvamlwR0Nuc1hnSTB2aFVLUG04RzZzRGNnNnVv?= =?utf-8?B?YlNRQ1lYbEtCdjk2L0NBQzhqQ3BmdGVnZkRIZUtrbjUvYkIvOGR5VEtOaUVh?= =?utf-8?B?WVhYekJrMUVjTG1zNEJzZlA4d0NSb014aWRsOXVzNG56OWM4eTJISlpNZnRx?= =?utf-8?B?KzRHVVprRENEL2M5ekdGUmVzVWQyUzBtck5vaDB4MldWeVBONnp5bEJ6dXQ3?= =?utf-8?B?WHFWRlJwS0hncEdHZDFDTmViTnc5Vk5aU255ZTJ0NFFWY3plYU5ZUzAvVVJ1?= =?utf-8?B?RGJqeWVSMkh2amZveExWN2FyNzA4Z25kZml6eVc2azE0S1ZDSnFYV2kxUzdD?= =?utf-8?B?VWd2UlhJL2ZDZWZwM2RaYkZsOXNPU254SEkrM1NBY2JaZFlwT0dKYThTelNM?= =?utf-8?B?N0l0RlI4ODhXZTZTclY4cjZuTnd4UVZ3WFNPRCs2S0ZvQUNoRExRckxpdHF2?= =?utf-8?B?SUxEMTM5MEpCRkd4NksxdmZYaTdkOFhXWTJwZGFjc0hPd08wVjJnNG10YnRT?= =?utf-8?B?QURJWDFSbmFsdU4zM1RPRnZhY2NwaWF6NGptWUZNMmRZR0tmb3BJVktIRENy?= =?utf-8?B?b09PcEJsTTZ6L3NOdGZacHMrcnVYM25TdkpVaFV3Ky9OVlJ2ZGFZYmlmWVZx?= =?utf-8?B?Mm5kL0hCczdUb0YrQ3FVVTZGS2dvWjBRTmdWWUVjTk9RS0ROVWhhRytoMEE1?= =?utf-8?B?UWpXQ1p0bGptWXJId2w1SStjT2R4bFBBRGF1cVBiRzNJZGtGMmpWbW1Pakgv?= =?utf-8?B?RUUrUjFJbEtHL3RFc3ZwWm9jRjZkTkRZdXlsRUVENDdsRDJoVEw2T0w2dUdo?= =?utf-8?B?eDJPMzJNYlFqMS9xVVNSMWJtN3YxWm13S2pOaUxZckdtZitvMFRMK3U5YVg3?= =?utf-8?Q?Bsz5Jl4LytZ2gEQ2LHa1FUsQd?= 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 List-Id: 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 }