From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2071.outbound.protection.outlook.com [40.107.247.71]) by sourceware.org (Postfix) with ESMTPS id A0D15385782F for ; Tue, 25 Oct 2022 07:28:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A0D15385782F 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=W5biUFyj0CwneWdmcOn3MywsGmAcGbpFRWIo4Ch+R/0Tz99DKVxL0zx+Uk5ZtxiRVll3XIR8vte+90cA7qbq3UcgYS5kTLhYv5Dl5Pith+gTCH7EXsWU/9j1abYYp/6lXRFhXymDrmf48fjVttzv91cvJwHqrhG5wPR4Iuta9fDYq28j0E/wLrR2Gljz8+WSksm6+QatCC7PlokaAukff78y6L/Y6tiMieB6js2CpnMlmSkx2OWBtzSkj6mwFcPlCwhF2tTwFngVjA7acvQk+18qvEKsIOh7cf9DiIb2zgonwYscVMKu66Ub5t4xeNEAlp8Dgd3Ijs423sabbQcowA== 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=bpxaWBMP5i/ufMaEBCnkbEUK3r3YPwclJCiwd9/xaVY=; b=hcI27UJK6HEOV/Pe4CxBfrjium7xPY/Zbc3nGwkFUhaIgzHmSqDPD81TP3TzvnQZUFAJRTRTLrBVwsNOXeA06PoZ95kUbqgTAJTUb3TszUPHIYLjj0dF0kBeIi1Da8X78P5Hpwo3fu3NpjuMQ1S4Aai7IJPBp3EGY0x7zPXWTdZ2hifXOhFMLzCGu4AMWXbniXrcl8o1Gg3CuV/JAKznyKlEValRT8Z9OBoX2ZXysQAIP2eXoPCaWJNro7tHcI3Ub1Zn3VIG8zUXYLLUcwJ7hxy/JdKZpDwRVco8Ya8Ytw191kW8sO1/mEFFaOHNtg4B7ZFUBrDx3kFWMgplSDiOVA== 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=bpxaWBMP5i/ufMaEBCnkbEUK3r3YPwclJCiwd9/xaVY=; b=3MLqYPVHpjCRdBbKmEKTlmuY3sirwrjWK2cUE5f2CITa+nzugq1xiVwuQ8k1L5qi8Zqy1gRZKfHNu8cpbOHMqzIGX1c+gkLyJrbCsT4XkOiB9gtIENSnn0fybTlXadrez3dJuR1JpT5Q4mV4iynWFaYHgxFKTq3CxwyhHRj4uimGY7ppVTNG2+LF5I2bfeNJoGMw2rCYq4usXvrj25yllCqSlqw3w5Es1q+k8vtCyE+xja1m6U1J5ROGXm5KU3ehsDf8h9+xiW5ZMBkaNu7AYDn+SRfSiTVLw/LtPeIhNUgf3qPYev+8wjJ/F2lpXdOp6i4P+W8aUBhfDeJlkESKvg== 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 PA4PR04MB7933.eurprd04.prod.outlook.com (2603:10a6:102:b9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5746.21; Tue, 25 Oct 2022 07:28:29 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8%4]) with mapi id 15.20.5746.021; Tue, 25 Oct 2022 07:28:29 +0000 Message-ID: <421bc96e-7591-6980-48e9-5af8c8b0775a@suse.com> Date: Tue, 25 Oct 2022 09:28:27 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.0 Subject: [PATCH v5 7/8] x86: drop (now) stray IsString Content-Language: en-US To: Binutils References: Cc: "H.J. Lu" From: Jan Beulich In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR0P281CA0059.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:49::7) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|PA4PR04MB7933:EE_ X-MS-Office365-Filtering-Correlation-Id: 5df18db3-1330-41cd-75a3-08dab65a831e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vr/AR7PqzwTKu91TYQttJrj8w4SCC7hfg/TtWKVu+Nw5eDeVzcbV7P3/bRmllQZujcIparx3hDL9alDSVhDHGZPu4QK9ntD/sw8a4jNEBgv4aPrdrgHTz1wmnG1sLap29dcTLdd2Mhu8pUy3WJrGrQU0IXfGM8hq1svvEULevmutNiCo9+5x/rUClf7T4y/yN9roDeRYnRSuqLBlPeMOJa3JNrgXhJy/wilfsT4mNq7o3UBxZhi5i7hfvvwoZmc42dHa52GleFs8X3fCteYkba/7Rbt2UIGNGNkY033PHFOHmAjIGiPJEqQNG0o6xNyu8bIwE07apeQFg/l9kZbhBX4HNSaYsNUEvZt7zQrPXyXB7HVxRvXzNZsrxVAK8rOuI9tmDUjn+7887InoD53/Y8R67mdWgJryq5cZGfWNxVH0a1FxXkfFgSC+vHcXGKW5Tbv0PUXpcdV1yYzo5JVdsUAAdlKWcfeZt0CfyMh+l4uADYG4oWm3LukpekdcYUOC2laKcQ1s6K8dmWqaGsaH/iPJEADs+RJVXB8xO+8blV6gNMOY4GTAY7KNItYLYy6gDg5hfHSb6ooZKDZAfbmZ38pHnNFLYeF81vQjG6yjRzwtnGq1c5m1GFJ0QljUSx6jC0m3a6NCSqyZev79e2SDoC7FTtPBPSCCtL2lt9p0AD+txolHthWFjfyv8l6fFSLJzPGzeEmgjPvHeyx9XFIQFonQm39yJYg6+4jX9On6PxopR6KdWhpNdI8aa+waDXQmUy0g0Uh6JuDJ3KeVXcNrB0XF3WuahzS1alHBSBf/6zs= 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)(39860400002)(396003)(136003)(366004)(376002)(346002)(451199015)(86362001)(316002)(38100700002)(83380400001)(31696002)(6916009)(6512007)(66476007)(41300700001)(26005)(186003)(2616005)(30864003)(8936002)(5660300002)(2906002)(8676002)(4326008)(66556008)(66946007)(6506007)(36756003)(6486002)(31686004)(478600001)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cktBaWd2TUppRWdYOW1hbUZsWFpZL3o4NktmQ2lUbjZkYmxnMWJPbHA0OXBD?= =?utf-8?B?amxLUEk2RG9MdkM0ZGJvRG9LVm44S3lhZ3VpSFlnVzJUcXFWQTdEZTkydmRD?= =?utf-8?B?dVJnR0VySjl2UjRhNVE1dDZEMkNnMmVVZnNBQmo2S3hUT2NLWEwxMitlUFRw?= =?utf-8?B?SGVHTVViclRSWWk5WVRzYXI3VU9XNkRhT0pUQXN2TEM1VVhrb3oyQkMxbFl6?= =?utf-8?B?VXJHeXpRNE5oeGZWRUxRb2pLMzZ2SGtxM1NEMFRLckRaZ3BwZUR0Y0g2RWtq?= =?utf-8?B?dDdIYWRzK012VDhadHhPRFBFVzk0ODAyYS9LWGV6WU9EMWdxNXFlWWIwVWFK?= =?utf-8?B?Qk9IQWpTRE93bmhaRzc0OWNpYjhpWUN5b21FRHIyVkZzeXNKNG93OGxia2Fy?= =?utf-8?B?bDNFV2dBWHdSRVcvSnp1TXhKMU5PYXBOSm94N2M2WUlvN2VGTkV0a0hJajFL?= =?utf-8?B?YzNIRklKYldHWGs0ZGZqK3cvcXRwUlhoSjRYY242WW5kTktKMEpaa3QwZUU5?= =?utf-8?B?RkpYdFlQUzRXQ1FsK3hpcDlwUVZCanNlVk9OZGlOSW9HZjJLTk1kQjRYMitF?= =?utf-8?B?VXlGMlBYK1drZkQzczM0cUwyZzVkUXBJYmZHd3h4OGFMMC9LaE93alYvZzQ3?= =?utf-8?B?OU5RVUNzelRRVk11SHB6b3diTjJSVFRSM3VGT3NqVHpOdXVPZFJQczhJRXV1?= =?utf-8?B?Vkc1dUpVNzJBdXV5WFB0VFlOcW1ybmFLWFhIL3RZSzBiTGR1RXJ5MFlLKzcw?= =?utf-8?B?NC80Zjc4cmYzcEFyS3A1Unl1UU5ERVl1Wm1qVlk1WEhLSUFqV0lPTk05d2Jp?= =?utf-8?B?b241Y2ZDZThaTndKZkRhNXRQYXZxdm5VUVltbDB3YmEzQkxydkxTUFJjUE5I?= =?utf-8?B?cGU1MnZrb0VhQWJHY0w3dEh5eC94TERZREtXbjAxMmkxRHNDMjNSR3NUVURX?= =?utf-8?B?MjJGNTQrTjBwOWN1WWp4eGVxZU5XamZRYXVaYkl4WWZhbDh4aUs1cWpZUXZJ?= =?utf-8?B?eU9RVnE4emIxc2V4RklVbHJ6RGlKbEhUWFNJVm9EdXJQV1dkMDRPeDF4WjVF?= =?utf-8?B?V05ndENTYmZJQldTUkZ4R0RGZW81Q2lPWG9pRzJmUHpHRDBNVnEwWXI1NUV2?= =?utf-8?B?Y1VjQUNRMkdweDhFVWUzeC83UVJrUU81anI1YzZ4Ym9VQW9LV1NCNk03YWh4?= =?utf-8?B?cFBVekZiZXZYVmRkc2o3bW55aW4ya3I3aVNEZWJFSVgxekdGeUM1K2RCbEF0?= =?utf-8?B?bXlZZXFjUHVTM2RFZUNUMUttcXVKVTYrQ0xkK2FNT0ZwaWFkZ3k3ODdmM2cw?= =?utf-8?B?Z0I4SlhmY1pPU3NxQy9NR0d0b0crcExMbmRrb3NCSDJXdzU2MytpYklhWDFX?= =?utf-8?B?UUcwUWYrR1dmUjBRaTgrR3A4bmlZVkpNbmZETTFscStOeFJibTl5RkF1SHRq?= =?utf-8?B?Rk4vOW0rRTZSbDg1VnRLd1dnWnZ5bzJWOU5iOXFlelBQbjAycndKeC9uemF2?= =?utf-8?B?UC9adk9XNHcwai9hZWI0N2hYckN0MGpob25WTW96TXdDYytSNjV2NmZmV09w?= =?utf-8?B?NGowc0dZUVp3eU1XVUh5WVRxUWhNUlFGVkxOd2JjUTlUcEJLK0JmWjJNNGV1?= =?utf-8?B?YVUvWU5aZVNZR0dXUGJGeDBUYVZSeTdyR2NERktvOHZVOFd0L1hwWVlUSnpQ?= =?utf-8?B?ank1WXZFeUZoTHgzVUprOG1iMFJRU1AyMkNPVnk3L1pKOStma1k2bFVncWg5?= =?utf-8?B?QkNyTFVJRFlQMndGWlN1UGRPek5qVmVwWUg2NklQdUM5enhaYkltVWhzRGh6?= =?utf-8?B?cWFobVY1eVliM0ZVOTEvNldsZmxsc2Zzd3J4eGJZVi9SVnBWbUdHQjkvOE93?= =?utf-8?B?Z1lQRUtZdGEwMUJTRjlnMlQ2NitrekdpenVOQlFteXZyWlVGQjFPQUNTM3VR?= =?utf-8?B?QTczTmMzVUhKSFpDQnhQL0Z6L2c2Z0UxRWRSd0tkREVITTNHeEwyWnJOTDN0?= =?utf-8?B?eDlHZExYK0ZVZW9GWHFPM0VIYlUyWDNvcWhDNklrc0RVdWpCa092MHNMM3ZR?= =?utf-8?B?NEkwb3lTZE1QM2NucEQ3OURUdHd2QStESGphYmtZbkRsMWxPT25PU1BHUHVC?= =?utf-8?Q?ZkfOXsnhEh34+BJaD271/lobG?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5df18db3-1330-41cd-75a3-08dab65a831e X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Oct 2022 07:28:29.0563 (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: OvwfSs7GFt4RMVMgRrW+pfxb+X75op7sbED5JADmUeEypcmzANsijt5uqt3SeMzBHtN2rqwDjceBX4xn1ecDCw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7933 X-Spam-Status: No, score=-3029.6 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 @@ -11262,12 +11262,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. */ @@ -11284,14 +11281,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, @@ -11334,6 +11329,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 @@ -483,37 +483,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. @@ -1966,24 +1966,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 }