From patchwork Fri Feb 23 11:12:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 205317 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp512769dyb; Fri, 23 Feb 2024 03:12:38 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXJGiibgKRegkDZlh8ATQ1kLxAmNjRoVvzpPZwWnl09Vx0Hy36ht7UT+OZmq/4Hntkv9bQDQWdoj7MPMPudYVFsWHuoPA== X-Google-Smtp-Source: AGHT+IFPoHBYPyaoqaHx5QkGer2ruulHQDHEbFH+tm12QyXMvtUC0KBUExuaYcxWSkscc41RuSwz X-Received: by 2002:a5b:6c5:0:b0:dcc:56b6:6606 with SMTP id r5-20020a5b06c5000000b00dcc56b66606mr1816440ybq.40.1708686758552; Fri, 23 Feb 2024 03:12:38 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708686758; cv=pass; d=google.com; s=arc-20160816; b=067mhb4i0rl14pM8xWdPctOerOVYs59Bg9EnPinkMHZ/HkS1GqaMbrZoUvjbPB1oLj 3sTKRcJnaAReN9qU4itGMQY9fZqn1j2bFkjVPo/IFtRpJmTZr4GWsXZZlbogTIX4EzD1 MWAmcHNwE+eQISGLOmTg13iIoTtBaA4LajL0ei3MINd2Qtoq41oTCijBuUOpVgKvS2fh nq0JQC1+MzqWHgMABTLmrhhfyd6b1QpsopNk77JGqVIvsl2ENXsZw+Dnfo6jIfgECOKY JBzxaN3c1qKHl7xuloy8BCZX3tfhUsGJ1WzntcpfvqopMxtc2E9NMajcsWYmMz5viGKp vvXQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :in-reply-to:autocrypt:references:cc:to:from:content-language :subject:user-agent:mime-version:date:message-id:dkim-signature :arc-filter:dmarc-filter:delivered-to; bh=j9vs3953WFVTvIDfMEcyn5LG6r3NG10TsLUww0lIlQc=; fh=2DbSPqOhyO7CNtGa024QKgSiHKlKGVt2h+1rlgWLnZI=; b=gsl1ZpHA4DcIjl3wDCfClCyW0hn10VdHzQVHBIklQSe5dheeRX5V3NqBMQxfREOWo6 0AMubD1Og47GIf9+vOp9RGucwNWakFilqorXd4wuBNaUiyu+UuwEMJnYQGreJAwqXb1O U4ZU1Vkb9xmHRdD90+0BqvexrMUFgOTmOump3yHZqF4DWVUestp5rB0Ogr+i40kNbNI7 AX9+/X+LWktTCH3Lpm3ycr2aCkOLDhBy4z0sXyJLG0AXhtJJxnpaKtBV29isVgyruFzz EVna6mhn3C4eYUTY3+NnW8Mc96DowPawtsAioHKlR+o2MTtOIpSQ5bKZyLnWRMmvqH3A PU+g==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@suse.com header.s=google header.b=ZsnRqP2E; arc=pass (i=1); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id 11-20020ac8570b000000b0042df06189absi15038686qtw.415.2024.02.23.03.12.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Feb 2024 03:12:38 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=google header.b=ZsnRqP2E; arc=pass (i=1); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E1F10385801E for ; Fri, 23 Feb 2024 11:12:37 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com [IPv6:2a00:1450:4864:20::62b]) by sourceware.org (Postfix) with ESMTPS id ECA3B38582BB for ; Fri, 23 Feb 2024 11:12:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org ECA3B38582BB 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-Filter: OpenARC Filter v1.0.0 sourceware.org ECA3B38582BB Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::62b ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708686749; cv=none; b=K95wFkSF+e4Bo+IGm0xzzgRPH7YGJCqNR3yRJKbjibTPQJSwBIs0WRnPsGtYyl1wYLFqHYaQ6rI2HXLvM1YLvOjp4v7PWXxvfw9uHJXvQB3C6HyCJwMG3alMUT1KUNl7qAOJ+1P3Ya2CvcPQ3wJZcJo0rhLlX5yhabhpTLEHyp0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708686749; c=relaxed/simple; bh=zCXIW4qUZZyDeE5OYLMpSfm9d2vaIaqZ4At3iRxp9B4=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=pBjZ7aQiO8c0C2kgm70YU5MUFvNAnLuPyzhsyNjn4m+KdB9KJ+LWfx3t3ljjamvnwycI2p1NlmHM8rsQHjI6K74WXH+9mCnU9VCwg0D8kmMn91Slvyk8e+eLhv4S7OSbxC5ofjw/aa06pVd96ShXJFW7qGK63y5/hWmAWhxDtoc= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ej1-x62b.google.com with SMTP id a640c23a62f3a-a3e72ec566aso92229566b.2 for ; Fri, 23 Feb 2024 03:12:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1708686745; x=1709291545; darn=sourceware.org; h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to :from:content-language:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=j9vs3953WFVTvIDfMEcyn5LG6r3NG10TsLUww0lIlQc=; b=ZsnRqP2Er+Hi+aT+j/D4zLZV0Zp0PUMuqTgOzjSA7Gpub0Vzc5CdSKTnnsaWMid4r1 KcFCi6D+NoHBEmuBGKumoTUBkupm5sDdYsW4nP6eMdnRHkNiaO9713nZDjmTD06bkz46 3rhfi8o0zbOyEIv9Nq6rDluVm3OHN81li3YCo+UAvH3zrAfEFPED/TSQeB2UdClLnJt6 XX5AqtcG+wpNBFV2kxT2nib/PtLRxXO+pp+bip/zUPBDtrie/P8HMwIWRT56G+Q0vrS0 SZOEWhz07XpVDnTaOA8Bwn976D6BedA55Tzn4l/u5XQGbyKgIxTRV8EeP2P7WpgchHfV vqUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708686745; x=1709291545; h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to :from:content-language:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=j9vs3953WFVTvIDfMEcyn5LG6r3NG10TsLUww0lIlQc=; b=Mk0nknMfg2/j8g9nABTcIOIf6pGqQf0UHkO6qadtUlBxON1ILX8/gi6l87ikVUbJyu 4juP9dWDLQztjYkxU3z9pA5j0qnZeT5J542HWKuiSnt2JkSNOAsvSGLmrBSrgMJZCXjf drJKo+CIIBprg1n17WywG+e32mjq4bixoC8U6x5ldpsC2WRMIXEH9htzyBzv+DlS7+S1 9mFJWmzEtGSc1ypnyo+Ax0IHkeFBdXdNa8Enh1iBmYQcmlRRACehj3KsKdJb/x9kqYMb mg3H2DHAeRMmpXfp0Fr9fFkSN9HWE/jx8u8pQkhf3wuunL3sKm63pEJy89uCge9YVgKi /DVA== X-Gm-Message-State: AOJu0YxJqIg1v4/m8/VQob9IDdhRAnzaAY4p3jJw56AlosiMCndiGCp8 ZZa2bDakMxNNHQlZVMei3t+ZDSMDjaM8tblSL0BKmTeqjaXphkguLXHiA8YSnyyI2KptqGp0Hjc = X-Received: by 2002:a17:906:e2cc:b0:a3d:7532:15ad with SMTP id gr12-20020a170906e2cc00b00a3d753215admr414543ejb.39.1708686745776; Fri, 23 Feb 2024 03:12:25 -0800 (PST) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id ps2-20020a170906bf4200b00a3f20a8d2f6sm2836017ejb.112.2024.02.23.03.12.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 23 Feb 2024 03:12:25 -0800 (PST) Message-ID: Date: Fri, 23 Feb 2024 12:12:24 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 3/4] x86/APX: optimize certain XOR and SUB forms Content-Language: en-US From: Jan Beulich To: Binutils Cc: "H.J. Lu" , Lili Cui References: Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: X-Spam-Status: No, score=-3023.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, PERCENT_RANDOM, RCVD_IN_DNSWL_NONE, SCC_5_SHORT_WORD_LINES, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=no 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.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791687926650926714 X-GMAIL-MSGID: 1791687926650926714 While most logic in optimize_encoding() is already covering APX by way of the earlier NDD->REX2 conversion, there's a remaining set of cases which wants handling separately. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -4693,6 +4693,34 @@ optimize_encoding (void) } } } + else if (i.reg_operands == 3 + && i.op[0].regs == i.op[1].regs + && i.encoding != encoding_evex + && (i.tm.mnem_off == MN_xor + || i.tm.mnem_off == MN_sub)) + { + /* Optimize: -O: + xorb %rNb, %rNb, %rMb -> xorl %rMd, %rMd + xorw %rNw, %rNw, %rMw -> xorl %rMd, %rMd + xorl %rNd, %rNd, %rMd -> xorl %rMd, %rMd + xorq %rN, %rN, %rM -> xorl %rMd, %rMd + subb %rNb, %rNb, %rMb -> subl %rMd, %rMd + subw %rNw, %rNw, %rMw -> subl %rMd, %rMd + subl %rNd, %rNd, %rMd -> subl %rMd, %rMd + subq %rN, %rN, %rM -> subl %rMd, %rMd + */ + i.tm.opcode_space = SPACE_BASE; + i.tm.opcode_modifier.evex = 0; + i.tm.opcode_modifier.size = SIZE32; + i.types[0].bitfield.byte = 0; + i.types[0].bitfield.word = 0; + i.types[0].bitfield.dword = 1; + i.types[0].bitfield.qword = 0; + i.op[0].regs = i.op[2].regs; + i.types[1] = i.types[0]; + i.op[1].regs = i.op[2].regs; + i.reg_operands = 2; + } else if (optimize > 1 && !optimize_for_space && i.reg_operands == 2 --- a/gas/testsuite/gas/i386/x86-64-optimize-1.d +++ b/gas/testsuite/gas/i386/x86-64-optimize-1.d @@ -71,4 +71,28 @@ Disassembly of section .text: +[a-f0-9]+: 48 0f ba f0 1f btr \$0x1f,%rax +[a-f0-9]+: 66 0f ba e8 0f bts \$0xf,%ax +[a-f0-9]+: 48 0f ba e8 1f bts \$0x1f,%rax + +[a-f0-9]+: 31 c9 xor %ecx,%ecx + +[a-f0-9]+: 48 31 d1 xor %rdx,%rcx + +[a-f0-9]+: 31 c9 xor %ecx,%ecx + +[a-f0-9]+: 29 c9 sub %ecx,%ecx + +[a-f0-9]+: 48 29 d1 sub %rdx,%rcx + +[a-f0-9]+: 29 c9 sub %ecx,%ecx + +[a-f0-9]+: d5 50 31 c9 xor %r17d,%r17d + +[a-f0-9]+: d5 58 31 d1 xor %r18,%r17 + +[a-f0-9]+: d5 50 31 c9 xor %r17d,%r17d + +[a-f0-9]+: d5 50 29 c9 sub %r17d,%r17d + +[a-f0-9]+: d5 58 29 d1 sub %r18,%r17 + +[a-f0-9]+: d5 50 29 c9 sub %r17d,%r17d + +[a-f0-9]+: 31 c9 xor %ecx,%ecx + +[a-f0-9]+: 62 f4 75 18 31 d1 xor %dx,%cx,%cx + +[a-f0-9]+: 31 c9 xor %ecx,%ecx + +[a-f0-9]+: 29 c9 sub %ecx,%ecx + +[a-f0-9]+: 62 f4 75 18 29 d1 sub %dx,%cx,%cx + +[a-f0-9]+: 29 c9 sub %ecx,%ecx + +[a-f0-9]+: d5 50 31 c9 xor %r17d,%r17d + +[a-f0-9]+: 62 ec 74 10 30 d1 xor %r18b,%r17b,%r17b + +[a-f0-9]+: d5 50 31 c9 xor %r17d,%r17d + +[a-f0-9]+: d5 50 29 c9 sub %r17d,%r17d + +[a-f0-9]+: 62 ec 74 10 28 d1 sub %r18b,%r17b,%r17b + +[a-f0-9]+: d5 50 29 c9 sub %r17d,%r17d #pass --- a/gas/testsuite/gas/i386/x86-64-optimize-1.s +++ b/gas/testsuite/gas/i386/x86-64-optimize-1.s @@ -65,3 +65,27 @@ _start: btr $31, %rax bts $15, %ax bts $31, %rax + xor %rcx, %rcx, %rcx + xor %rdx, %rcx, %rcx + xor %rdx, %rdx, %rcx + sub %rcx, %rcx, %rcx + sub %rdx, %rcx, %rcx + sub %rdx, %rdx, %rcx + xor %r17, %r17, %r17 + xor %r18, %r17, %r17 + xor %r18, %r18, %r17 + sub %r17, %r17, %r17 + sub %r18, %r17, %r17 + sub %r18, %r18, %r17 + xor %cx, %cx, %cx + xor %dx, %cx, %cx + xor %dx, %dx, %cx + sub %cx, %cx, %cx + sub %dx, %cx, %cx + sub %dx, %dx, %cx + xor %r17b, %r17b, %r17b + xor %r18b, %r17b, %r17b + xor %r18b, %r18b, %r17b + sub %r17b, %r17b, %r17b + sub %r18b, %r17b, %r17b + sub %r18b, %r18b, %r17b --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -320,7 +320,7 @@ inc, 0x40, No64, No_bSuf|No_sSuf|No_qSuf inc, 0xfe/0, APX_F, W|Modrm|No_sSuf|CheckOperandSize|DstVVVV|EVexMap4|NF, {Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64} inc, 0xfe/0, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex } -sub, 0x28, APX_F, D|W|CheckOperandSize|Modrm|No_sSuf|DstVVVV|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64, } +sub, 0x28, APX_F, D|W|CheckOperandSize|Modrm|No_sSuf|DstVVVV|EVexMap4|NF|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64, } sub, 0x28, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex } sub, 0x83/5, APX_F, Modrm|No_bSuf|No_sSuf|DstVVVV|EVexMap4|NF, { Imm8S, Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } sub, 0x83/5, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Unspecified|BaseIndex } @@ -366,7 +366,7 @@ or, 0xc, 0, W|No_sSuf, { Imm8|Imm16|Imm3 or, 0x80/1, APX_F, W|Modrm|CheckOperandSize|No_sSuf|DstVVVV|EVexMap4|NF, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } or, 0x80/1, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex } -xor, 0x30, APX_F, D|C|W|CheckOperandSize|Modrm|No_sSuf|DstVVVV|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +xor, 0x30, APX_F, D|C|W|CheckOperandSize|Modrm|No_sSuf|DstVVVV|EVexMap4|NF|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } xor, 0x30, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex } xor, 0x83/6, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|NF, { Imm8S, Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } xor, 0x83/6, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Unspecified|BaseIndex }