From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60058.outbound.protection.outlook.com [40.107.6.58]) by sourceware.org (Postfix) with ESMTPS id B1A4B3858287 for ; Fri, 4 Nov 2022 10:53:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B1A4B3858287 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=aebxWGf6FobohxYLIuKbCJv8pnauHsfaepI4r9uOvOcP13ZugmpBdRhgfpWAvMoS9gjteAxsKf7kXvWxVmmVIvDI+373HfZmrYwjmwfDcidVmwCX6WPOmX1syQxoXGuBdDVqVRMrmrCg3ofIS0jlUwaPobyQzmKP8aqD+4FDPqXfgsrdvIv9KLulRDm0Qk1YPrFnhSfzj80VcpMqao/zumpzVG73N70pRVvwb6vJtx0V8a7e6DS/MvjW+Vl78RpQo0SwFUMoIWHQBsIk+knCvV9LexoLGqK78eg+DRgH+MEfaIAsBp9qAoQE1CKibhofpGRS7mU2yuxsdDkxHgEtZA== 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=1KVDGPvfEc/Sy7WOKItTxfoNkUIbnujkETs3syt8mp4=; b=WesqQIyGOIK7NSY2ppaSZdkxv72eN6FvJDW4btAE8hsjSA/POC2HfRyldK1aRoyUn0TyE48gcZX6p/CJAt09RGPj/PbuR36kdbTNVXRpss0SMGn9O/y8XXZjR6OMvT0gax7XXu6RwiZ9sUjKkABnJdqAg25XAUcDAB0PrXGzY8KJrM4rqJsU+7P4zmayxaYeHiqIUMvhyqUUq5fvb5pzWjamj5SDbwCK8hEejkiwbtQvq+IugeFwPLsGFKF20ZslHPAknj2MwOTFuSSpb5PYmVbJNaHSFvYhOemRSRiXLiIPIH1ipmWUt+Yiv/1lokNLEWF6yXxZxzwgDULe0p0dXw== 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=1KVDGPvfEc/Sy7WOKItTxfoNkUIbnujkETs3syt8mp4=; b=IVqChQBkBY2KjG3eVQQtOUvFpsjAvVRYR/8eF57MJlCH72eZlcHhma7atfvH5+2zW9XoeYkqk9KAi3nb5Zmf/qi2wwxfzmdCl+eywm6P+37FAiBkroNZHHGl7j+m9WRrVE9mrStlMUzp4CGIHewKvsI6+mxrw/E/5ZjahXQtrEluK0UkhgTEyO/LReaSHDPcmWuJdJ19NnmwHULbXwndmyBz/mNnwsNza/5ynUyOscu81VEAr0k3sGRRJL/p6+SVVUqC1yI/UOOdhLO43N1Si+g/cW+cEwCDCF71eqllG9ekoUTy4MSEC4BT7k4ohbHyKtaBEQ6l0fVFmSmIq+fG4g== 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 AS8PR04MB8881.eurprd04.prod.outlook.com (2603:10a6:20b:42c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.20; Fri, 4 Nov 2022 10:53:54 +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.5791.022; Fri, 4 Nov 2022 10:53:54 +0000 Message-ID: Date: Fri, 4 Nov 2022 11:53:52 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 Subject: [PATCH v6 6/7] x86: drop (now) stray IsString Content-Language: en-US To: Binutils References: <6d71dc80-91c8-7bc8-c57f-4f771ca59fab@suse.com> Cc: "H.J. Lu" From: Jan Beulich In-Reply-To: <6d71dc80-91c8-7bc8-c57f-4f771ca59fab@suse.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR2P281CA0030.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:14::17) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AS8PR04MB8881:EE_ X-MS-Office365-Filtering-Correlation-Id: c1eb6cb3-7123-490d-f04e-08dabe52dd7f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5J8w3vzjMOG0ci2KY3h8xQwxmajMrtL7QswrYyNSzu3w1V+32OYy5jGuG1gVUswcuOMkjjC+pK1Z4jABxpwnBu2i+C003tVOEWLfkRPyNypjetPCk7e7uRcI5uxcaeysu7WPlgBBy95AmZ88U6B0CsjjYDspqYSstNawqwpPWoaaTFk3bWpllCKfLb/z6TqS4vzRs3GvVw+sTXhvFsMA+Wx80E8kVNHdnk9bacYi02UKVC6JLgU6ya+92ZaMIcFZnTm39gRvjY2ftm3vSGzKbKICJyJLXcyfgJkHciYPQCFEZl8PclG9rXfAKqxRfZnUUnN7/2wf2ru+SAwVlD5/MPsKo4m15soiplO8ZyChRbnxpHnxT1oCjAUlGvjfmM1GlP7Q4f/rRFw66kwRk4zh6cMCLpK+VM5dLwaq0an8tvs3INAUAkoWufUy945Jq7UqRMPTsmKdavV8rAlQ5wCkQNLFHXxFfqGRaweygREYh8Rxffsaj6KUV137Gjy53hE8rLJll6nv9ivkI3y7IsjoWBlqf/vRLPuut/apvTxR+tDhy1Ox4jpAVmtRRaeWfwgr+Unu3vivEX0JCK2oqNDzsUvfX5n2eVTEizSkkpoF/W5V0hWuhuTbBp5lT/xJH+gOezCO8TQ8tW7fa0ZaHNgs+lblYX+xT3NQLk2bCT1U7JydXnkqcqjzXtckmAJ7vdM3ydMAogycPzBWVmsgeSvoeU0UNImLm6gcnrWj3irZONJ2fYN/NI7+4utsL5rQDIDL3OzpAZOlQtv/n/XP572P3Yq5VPzCewrqEIJjEkjQd+M= 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)(396003)(366004)(346002)(376002)(136003)(39860400002)(451199015)(316002)(8676002)(6916009)(30864003)(86362001)(5660300002)(2906002)(38100700002)(31696002)(66476007)(66946007)(186003)(66556008)(2616005)(83380400001)(4326008)(36756003)(8936002)(41300700001)(6486002)(31686004)(6512007)(26005)(6506007)(478600001)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MWRBUm5JSHJZWnRiSE5rTWdsZVJWS2R4VndXQXBkd0NaYWdmdkoybUtFL1k5?= =?utf-8?B?NUZpazNKUUwzZTYycFFsZXdwOEZVaytOZDFLc0xuS1lhTzE3Q09QcHZPUzdV?= =?utf-8?B?M0J1N1VXQUc2MlE4NGdqWUU0TE1EQjRlZ1AveHovSXFBSTF3L3E0bGZoM3B2?= =?utf-8?B?c0xQOFJzU2J3K3J6OUhKSGhrQnNDbnJaMXF5blRGN3A1K0R2eUoxVWdqZHhJ?= =?utf-8?B?R2lBNzRiRW5oR0tQZ0RjRG9oUjkwSzdkNjRtbFMrZjlBN2xxZjdJLytqVy9u?= =?utf-8?B?T0gzWnlJaXRoUUNrOWkyUGtHYVhaOFlsMThtUFI1V2l1VnhUcnVYRXZrTy9s?= =?utf-8?B?WGdoMVBacHRlcmlNNldlM1M1L0J4aTZ1bmlTZEo0eTUwaGlKS3E1a1JVMm8w?= =?utf-8?B?ZUZyYkNOUnROcXo5RGl6SFlUYVhQWFNUWGlscUNEYnhXSWdyTFptY0dsZTRB?= =?utf-8?B?RUV0cGt0VWNxWXZGMjBzUTVIRUFjMGI1OEFFM0E5blM3a1FDNXVIN080enlT?= =?utf-8?B?YjQ0K2VTNm9xRnYvNytHSG9iNDRra2U4YzhtQit6WU8vdlhUSkU4WGR2RFRW?= =?utf-8?B?TFlpSXM0YWRoSkNlMWFMQWp0OUxmMDVwSDJWU2s5RXAzbVgyd1NSVkRLcDN5?= =?utf-8?B?K2JRZkhOVUF5RDlJajNGMjRIaFl3aFJWbHlFbWU4Y2ZqNXdPa2x2djVlMEpT?= =?utf-8?B?UlZkLzBxaWVvWnBzWFlKSCtHZzdtYk51bjY4Y1BMRnJKTnN1UGRXNDBzRzR6?= =?utf-8?B?WlY0NUlpMEpqZWZVVmRWRkJIcFArdGdrb01xS1BzZWpaTURzNzdzVnpjU0hh?= =?utf-8?B?b0RKL3NXSFg2MGRYNzhJUFpFT2I3eW5JYXdlYkVNTzI5L0U3ZXI2ckxoMlBz?= =?utf-8?B?a0JKS1FqUldQV3ZZT1R4anJodDcvOWljWDN6eVl0akptcTZFbXN4MkZKTTJj?= =?utf-8?B?YUliQ3VvcW94V0hZT3pmUjhoajJIMmpTQmdhVWhwMGk0TjBYdExaNzRQdHI0?= =?utf-8?B?bTJ2QjdNZmlqdXBtaHVBdXgvWGViWkgvSUR0WElEL0owcGZnL1dQRkJyQ0hU?= =?utf-8?B?TFM5c2prSFU2enkyTHF4c0diMWt3MThQcEZ3YjRqemxwbDdRdHFKOXFPUzli?= =?utf-8?B?angvVFV3R2x5ZW43SVJCQUZvMUlqd2ZIS1FQN3ZOQ0UyN1hpY3FrdURNTVFm?= =?utf-8?B?NmhRSkU3UVUvSUREcVhhRFpVQ05JbEF1Mld3T3l5TU1qS3BoY1liMmJYTGFt?= =?utf-8?B?bXNybE5FTUJtbUcwcVdPUkcwMEdYSzlST1E5SWt0R0VaUHdaRE5vTERsbElX?= =?utf-8?B?eHp1dW16aTl6cTc4Y2JmYnJla1NCd3g5RUk5SHVsNFNJRGRIUXRabXhGMHNK?= =?utf-8?B?bmRkTXNSOWFob0FJejhkd2RENlZTMEVTRHJLMnZEZmgydkRmL09tdWZ1ME91?= =?utf-8?B?Q3d0TU1rUlJPejh0OEo2S3JXc3lLeURGaDU4b01EN0hUc1EzYXFVcS8zZDFw?= =?utf-8?B?Z1RmWEM1Z1NHdFQ0WU1EK1dtUEJRbkRnRnVKNTRKdkVuanFFTGcwQTFaU3JD?= =?utf-8?B?QzhMdGdLRVB0bWNjUzBWY09SVERMMnVRQVkyTEsrd2tmUENTZ1czanNLNzFC?= =?utf-8?B?UkY4MG1sblVNbFRJa3h5UTdMUXRqSWNpUXRBOGlyZHZOZXJqcGRScGtxSXdv?= =?utf-8?B?YlJ0NGhJSDI1Smx0aVM3TUFCZll3aEF5ZTFBd3pFb2ZGS0xpNU5Rc3UzSktK?= =?utf-8?B?N3pneFlzL2ZlL1FjQ25Ba0orSldIa0xmalRseWxYYmVTYW9lOFNBQ3RUVXFu?= =?utf-8?B?c0FpT1o3TjlMYStIM083YXFlMUQ5c1hBa3pNOGQ3RCtzdkp6MGNOaFRVdjE5?= =?utf-8?B?YUVJZ0lOaDcxb1N1U21objBWazNmc3cyWnhUYktuNlp2ZXQxTGN6SlpLaDlr?= =?utf-8?B?VUlQRjJTazFmZGpmeHVQWkEzV3draHphcktxZWkycnoyaWJxamxaNWRFRzRL?= =?utf-8?B?amVKZE40cDZBNzRteHUyckNxWUJBSnFVbWI4ODE2dzIxR2hsSjc0Q1lYS2xu?= =?utf-8?B?VnNXY1hHOTgxQmt1b3owUUwwdWFkNDlmWDlCejlXSnZoVE9mOVhSUlFjNTVL?= =?utf-8?Q?edpr23NAMetaYO1WHNwxlTRwJ?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: c1eb6cb3-7123-490d-f04e-08dabe52dd7f X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2022 10:53:54.1591 (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: e7YT5U7Xgo1DcIfLKguEi350J5OgqoJhJXSYZVNc4hqM2P8A9UC13L5xeIbJcS9GnefP8ideKOpP8aAeJmzLWg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8881 X-Spam-Status: No, score=-3029.5 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 @@ -11293,12 +11293,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. */ @@ -11315,14 +11312,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, @@ -11365,6 +11360,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. @@ -1968,24 +1968,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 }