From patchwork Fri Mar 8 13:46:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 86973 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 41B70385DC18 for ; Fri, 8 Mar 2024 13:47:16 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com [IPv6:2a00:1450:4864:20::62f]) by sourceware.org (Postfix) with ESMTPS id 661383858D33 for ; Fri, 8 Mar 2024 13:46:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 661383858D33 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 661383858D33 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::62f ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709905606; cv=none; b=bZBsgagtoa3UHgXKY/XQgsYW+LbzdZCnhh3d9DGw9Wm350y67jmVbIbeIDXhLXUwyx+AkmI4gNRE9cXN6re3lBT3T24Z0m5IpMPTzUUZvMoQ5coHlcG4gfx4j2ijuRw55wXVuqsxt41A1jW4U/b8ux9dqIQOZ8UQzkKwCqf+0N4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709905606; c=relaxed/simple; bh=iV2wRHMnpGy4MVSHKi3tmGE4CpljxkNQxFLE1Zxf/mU=; h=DKIM-Signature:Message-ID:Date:MIME-Version:To:From:Subject; b=hw+HX+qirKjSWtp8t3vcI4SOyUop4R7AFKb3PVXclpEYOmNTWPP+Q8KveVQGZc+1NO8tFzrxOWEfuQbweqmZ4oMVEzW77xag21cQn5yFycqOvPYiaFb1/bL9q9Sp7opPVm+4BPADi5MqTlswTIrOM6iSOgvtWjm/DyCNAg2iIhg= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ej1-x62f.google.com with SMTP id a640c23a62f3a-a36126ee41eso294315566b.2 for ; Fri, 08 Mar 2024 05:46:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1709905601; x=1710510401; darn=sourceware.org; h=content-transfer-encoding:autocrypt:subject:from:cc:to :content-language:user-agent:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=ji25rZyYORXPkhDKeB/8wyaUp+NOU8xjI00xjXwk+ec=; b=I18f7rSjuJ89IFgOFHKAZqNUxHMvAAu0/X4peB8o6uMfm9zwQ2KbtnEf+MNXgCD0Zk MdW9/Uun0RWV8LlW58D2PaHc4O0uGy/hfhdUz4nyDd+l7JwDPSGn+cUBR/8nijvOcFE5 eLdwHBbyrnZmHRMjq1LVvgVYP1g3wtuWmhMLTmXV2uJYf9ED58hz/6f6o/x/R0MvC/us JIFHtuKfW2hDIIsHxLMXtSPXWA34AYHZtDXh+5J+FNC8VGHs5VfcAY9+2Y/e4FGLP5an nNJsdvSDzESE6GvmqlgHc65C80xM08EjrRIW1ACmwbtpwNC3g14rxq0KdWAqE7dox7VX FFUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709905601; x=1710510401; h=content-transfer-encoding:autocrypt:subject:from:cc:to :content-language:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ji25rZyYORXPkhDKeB/8wyaUp+NOU8xjI00xjXwk+ec=; b=on4HzeNoiDAZOdkPrBlpjrtMOZNjNZ8vxoxXAP3uYnHq6iZlqWTZRyTeK9Memb/59X 7ORboDAI8jo/Qj9vvTUkHaxXaP3fXClBxCja+hh8W/qKLKKMkfWBsrkxrh3UoU6cmqpZ vcHxuRG3OJ3aq6l99B+9lvdMQa2JLNKiS4cy16Ave7g9iP6BiamfWen+ilYPjOv3+wWc N7cj9BSeyrQyvGJOikeEuFj7vHJ+Pld16t3rU+QdRhu4ltNKVeVmCfN2rhU4RRtjwXFq VLUsh0rX5pkcmYVtPPnjdX1xz8yT1BPvy1E57KOtIMfYJuh23bwfJ1MwhzuM7Vq/zk34 GP/Q== X-Gm-Message-State: AOJu0YycZLPvHuUASkVWo9TCURjPwzobgSX2UqZpmxnvQmdivbLTOkup gN7FxMFxELbaHdcLfdO5OqYLWIt92yEERFcdX2ItTrvujeBCgt79YYs9hL53jGcnkPTT6vxNl5s = X-Google-Smtp-Source: AGHT+IFbqdvog0jK4Ux+OdIOVGyS20AtIqreC/bRhIVZ8ZdiJaBNw/IBxj86fH6HSsmlN//Qgg9Ccg== X-Received: by 2002:a17:906:2c0a:b0:a45:4d62:7805 with SMTP id e10-20020a1709062c0a00b00a454d627805mr10149445ejh.50.1709905600701; Fri, 08 Mar 2024 05:46:40 -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 lk11-20020a170906cb0b00b00a4577ffe69csm4977672ejb.78.2024.03.08.05.46.40 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 08 Mar 2024 05:46:40 -0800 (PST) Message-ID: <3a29b8bc-0d42-48a9-aed4-01a35bd2445e@suse.com> Date: Fri, 8 Mar 2024 14:46:38 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: Binutils Cc: "H.J. Lu" , Lili Cui From: Jan Beulich Subject: [PATCH] x86/APX: legacy promoted insns can't access %xmm16-%xmm31 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 X-Spam-Status: No, score=-3025.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, 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+patchwork=sourceware.org@sourceware.org Irrespective of the encoding being EVEX, the usable SIMD register range continues to be limited to %xmm0-%xmm15. Enforce this in gas (but continue to generate code, as in principle we know how to encode things) and recognize/flag the case in the disassembler. Oddly enough wrong forms were actually used in the testsuite (register- only forms are then really meaningless to test here, and are hence dropped instead of adjusted). Convert the POP2 test that needs touching anyway (due to a bad ModR/M byte having been chosen) to .insn. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -10013,6 +10013,13 @@ process_operands (void) for (unsigned int j = 0; j < i.operands; j++) if (i.types[j].bitfield.instance != InstanceNone) i.reg_operands--; + else if (i.tm.opcode_space == SPACE_EVEXMAP4 + && i.types[j].bitfield.class == RegSIMD + && (i.op[j].regs->reg_flags & RegVRex) + && !dot_insn ()) + /* Just raise an error, but continue processing. */ + as_bad (_("`%s%s' cannot be used with `%s'"), + register_prefix, i.op[j].regs->reg_name, insn_name (&i.tm)); if (i.tm.opcode_modifier.sse2avx) { --- a/gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.l +++ b/gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.l @@ -13,13 +13,16 @@ .*:25: Error: `andn' is not supported on `x86_64.nobmi' .*:28: Error: `bzhi' is not supported on `x86_64.nobmi2' .*:29: Error: `bzhi' is not supported on `x86_64.nobmi2' -.*:33: Error: .*`andn'.* -.*:34: Error: .*`bzhi'.* -.*:35: Error: .*`kmovw'.* -.*:36: Error: .*`kmovq'.* -.*:37: Error: .*`kmovb'.* -.*:38: Error: .*`ldtilecfg'.* -.*:39: Error: .*`cmpexadd'.* +.*:32: Error: .*`%?xmm20'.*`aesenc128kl'.* +.*:33: Error: .*`%?xmm20'.*`sha1msg1'.* +.*:34: Error: .*`%?xmm20'.*`sha256msg2'.* +.*:37: Error: .*`andn'.* +.*:38: Error: .*`bzhi'.* +.*:39: Error: .*`kmovw'.* +.*:40: Error: .*`kmovq'.* +.*:41: Error: .*`kmovb'.* +.*:42: Error: .*`ldtilecfg'.* +.*:43: Error: .*`cmpexadd'.* GAS LISTING .* #... [ ]*1[ ]+\# Check illegal 64bit APX EVEX promoted instructions --- a/gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.s +++ b/gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.s @@ -29,6 +29,10 @@ bzhi %r15,%r15,%r11 .arch default + aesenc128kl (%rax), %xmm20 + sha1msg1 %xmm20, %xmm0 + sha256msg2 (%rax), %xmm20 + .arch .noapx_f {evex} andn %r15, %r15, %r11 {evex} bzhi %r15, %r15, %r11 --- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d +++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d @@ -12,12 +12,12 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*62 4c fc 08 fc bc 87 23 01 00 00[ ]+aadd[ ]+%r31,0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 4c 7d 08 fc 8c 87 23 01 00 00[ ]+aand[ ]+%r25d,0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 4c fd 08 fc bc 87 23 01 00 00[ ]+aand[ ]+%r31,0x123\(%r31,%rax,4\) -[ ]*[a-f0-9]+:[ ]*62 cc 7e 08 dd b4 87 23 01 00 00[ ]+aesdec128kl[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc 7e 08 df b4 87 23 01 00 00[ ]+aesdec256kl[ ]+0x123\(%r31,%rax,4\),%xmm22 +[ ]*[a-f0-9]+:[ ]*62 5c 7e 08 dd a4 87 23 01 00 00[ ]+aesdec128kl[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c 7e 08 df a4 87 23 01 00 00[ ]+aesdec256kl[ ]+0x123\(%r31,%rax,4\),%xmm12 [ ]*[a-f0-9]+:[ ]*62 dc 7e 08 d8 8c 87 23 01 00 00[ ]+aesdecwide128kl[ ]+0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 dc 7e 08 d8 9c 87 23 01 00 00[ ]+aesdecwide256kl[ ]+0x123\(%r31,%rax,4\) -[ ]*[a-f0-9]+:[ ]*62 cc 7e 08 dc b4 87 23 01 00 00[ ]+aesenc128kl[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc 7e 08 de b4 87 23 01 00 00[ ]+aesenc256kl[ ]+0x123\(%r31,%rax,4\),%xmm22 +[ ]*[a-f0-9]+:[ ]*62 5c 7e 08 dc a4 87 23 01 00 00[ ]+aesenc128kl[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c 7e 08 de a4 87 23 01 00 00[ ]+aesenc256kl[ ]+0x123\(%r31,%rax,4\),%xmm12 [ ]*[a-f0-9]+:[ ]*62 dc 7e 08 d8 84 87 23 01 00 00[ ]+aesencwide128kl[ ]+0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 dc 7e 08 d8 94 87 23 01 00 00[ ]+aesencwide256kl[ ]+0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 4c 7f 08 fc 8c 87 23 01 00 00[ ]+aor[ ]+%r25d,0x123\(%r31,%rax,4\) @@ -133,18 +133,12 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*62 5a 86 08 f5 df[ ]+pext[ ]+%r31,%r15,%r11 [ ]*[a-f0-9]+:[ ]*62 da 36 00 f5 94 87 23 01 00 00[ ]+pext[ ]+0x123\(%r31,%rax,4\),%r25d,%edx [ ]*[a-f0-9]+:[ ]*62 5a 86 00 f5 bc 87 23 01 00 00[ ]+pext[ ]+0x123\(%r31,%rax,4\),%r31,%r15 -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 d9 f7[ ]+sha1msg1[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 d9 b4 87 23 01 00 00[ ]+sha1msg1[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 da f7[ ]+sha1msg2[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 da b4 87 23 01 00 00[ ]+sha1msg2[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 d8 f7[ ]+sha1nexte[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 d8 b4 87 23 01 00 00[ ]+sha1nexte[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 d4 f7 7b[ ]+sha1rnds4[ ]+\$0x7b,%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 d4 b4 87 23 01 00 00 7b[ ]+sha1rnds4[ ]+\$0x7b,0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 dc f7[ ]+sha256msg1[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 dc b4 87 23 01 00 00[ ]+sha256msg1[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 dd f7[ ]+sha256msg2[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 dd b4 87 23 01 00 00[ ]+sha256msg2[ ]+0x123\(%r31,%rax,4\),%xmm22 +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 d9 a4 87 23 01 00 00[ ]+sha1msg1[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 da a4 87 23 01 00 00[ ]+sha1msg2[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 d8 a4 87 23 01 00 00[ ]+sha1nexte[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 d4 a4 87 23 01 00 00 7b[ ]+sha1rnds4[ ]+\$0x7b,0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 dc a4 87 23 01 00 00[ ]+sha256msg1[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 dd a4 87 23 01 00 00[ ]+sha256msg2[ ]+0x123\(%r31,%rax,4\),%xmm12 [ ]*[a-f0-9]+:[ ]*62 5c 7c 08 db a4 87 23 01 00 00[ ]+sha256rnds2[ ]+%xmm0,0x123\(%r31,%rax,4\),%xmm12 [ ]*[a-f0-9]+:[ ]*62 72 35 00 f7 d2[ ]+shlx[ ]+%r25d,%edx,%r10d [ ]*[a-f0-9]+:[ ]*62 da 35 00 f7 94 87 23 01 00 00[ ]+shlx[ ]+%r25d,0x123\(%r31,%rax,4\),%edx @@ -176,12 +170,12 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*62 4c fc 08 fc bc 87 23 01 00 00[ ]+aadd[ ]+%r31,0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 4c 7d 08 fc 8c 87 23 01 00 00[ ]+aand[ ]+%r25d,0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 4c fd 08 fc bc 87 23 01 00 00[ ]+aand[ ]+%r31,0x123\(%r31,%rax,4\) -[ ]*[a-f0-9]+:[ ]*62 cc 7e 08 dd b4 87 23 01 00 00[ ]+aesdec128kl[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc 7e 08 df b4 87 23 01 00 00[ ]+aesdec256kl[ ]+0x123\(%r31,%rax,4\),%xmm22 +[ ]*[a-f0-9]+:[ ]*62 5c 7e 08 dd a4 87 23 01 00 00[ ]+aesdec128kl[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c 7e 08 df a4 87 23 01 00 00[ ]+aesdec256kl[ ]+0x123\(%r31,%rax,4\),%xmm12 [ ]*[a-f0-9]+:[ ]*62 dc 7e 08 d8 8c 87 23 01 00 00[ ]+aesdecwide128kl[ ]+0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 dc 7e 08 d8 9c 87 23 01 00 00[ ]+aesdecwide256kl[ ]+0x123\(%r31,%rax,4\) -[ ]*[a-f0-9]+:[ ]*62 cc 7e 08 dc b4 87 23 01 00 00[ ]+aesenc128kl[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc 7e 08 de b4 87 23 01 00 00[ ]+aesenc256kl[ ]+0x123\(%r31,%rax,4\),%xmm22 +[ ]*[a-f0-9]+:[ ]*62 5c 7e 08 dc a4 87 23 01 00 00[ ]+aesenc128kl[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c 7e 08 de a4 87 23 01 00 00[ ]+aesenc256kl[ ]+0x123\(%r31,%rax,4\),%xmm12 [ ]*[a-f0-9]+:[ ]*62 dc 7e 08 d8 84 87 23 01 00 00[ ]+aesencwide128kl[ ]+0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 dc 7e 08 d8 94 87 23 01 00 00[ ]+aesencwide256kl[ ]+0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 4c 7f 08 fc 8c 87 23 01 00 00[ ]+aor[ ]+%r25d,0x123\(%r31,%rax,4\) @@ -297,18 +291,12 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*62 5a 86 08 f5 df[ ]+pext[ ]+%r31,%r15,%r11 [ ]*[a-f0-9]+:[ ]*62 da 36 00 f5 94 87 23 01 00 00[ ]+pext[ ]+0x123\(%r31,%rax,4\),%r25d,%edx [ ]*[a-f0-9]+:[ ]*62 5a 86 00 f5 bc 87 23 01 00 00[ ]+pext[ ]+0x123\(%r31,%rax,4\),%r31,%r15 -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 d9 f7[ ]+sha1msg1[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 d9 b4 87 23 01 00 00[ ]+sha1msg1[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 da f7[ ]+sha1msg2[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 da b4 87 23 01 00 00[ ]+sha1msg2[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 d8 f7[ ]+sha1nexte[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 d8 b4 87 23 01 00 00[ ]+sha1nexte[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 d4 f7 7b[ ]+sha1rnds4[ ]+\$0x7b,%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 d4 b4 87 23 01 00 00 7b[ ]+sha1rnds4[ ]+\$0x7b,0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 dc f7[ ]+sha256msg1[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 dc b4 87 23 01 00 00[ ]+sha256msg1[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 dd f7[ ]+sha256msg2[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 dd b4 87 23 01 00 00[ ]+sha256msg2[ ]+0x123\(%r31,%rax,4\),%xmm22 +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 d9 a4 87 23 01 00 00[ ]+sha1msg1[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 da a4 87 23 01 00 00[ ]+sha1msg2[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 d8 a4 87 23 01 00 00[ ]+sha1nexte[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 d4 a4 87 23 01 00 00 7b[ ]+sha1rnds4[ ]+\$0x7b,0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 dc a4 87 23 01 00 00[ ]+sha256msg1[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 dd a4 87 23 01 00 00[ ]+sha256msg2[ ]+0x123\(%r31,%rax,4\),%xmm12 [ ]*[a-f0-9]+:[ ]*62 5c 7c 08 db a4 87 23 01 00 00[ ]+sha256rnds2[ ]+%xmm0,0x123\(%r31,%rax,4\),%xmm12 [ ]*[a-f0-9]+:[ ]*62 72 35 00 f7 d2[ ]+shlx[ ]+%r25d,%edx,%r10d [ ]*[a-f0-9]+:[ ]*62 da 35 00 f7 94 87 23 01 00 00[ ]+shlx[ ]+%r25d,0x123\(%r31,%rax,4\),%edx --- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s +++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s @@ -6,12 +6,12 @@ _start: aadd %r31,0x123(%r31,%rax,4) aand %r25d,0x123(%r31,%rax,4) aand %r31,0x123(%r31,%rax,4) - aesdec128kl 0x123(%r31,%rax,4),%xmm22 - aesdec256kl 0x123(%r31,%rax,4),%xmm22 + aesdec128kl 0x123(%r31,%rax,4),%xmm12 + aesdec256kl 0x123(%r31,%rax,4),%xmm12 aesdecwide128kl 0x123(%r31,%rax,4) aesdecwide256kl 0x123(%r31,%rax,4) - aesenc128kl 0x123(%r31,%rax,4),%xmm22 - aesenc256kl 0x123(%r31,%rax,4),%xmm22 + aesenc128kl 0x123(%r31,%rax,4),%xmm12 + aesenc256kl 0x123(%r31,%rax,4),%xmm12 aesencwide128kl 0x123(%r31,%rax,4) aesencwide256kl 0x123(%r31,%rax,4) aor %r25d,0x123(%r31,%rax,4) @@ -127,18 +127,12 @@ _start: pext %r31,%r15,%r11 pext 0x123(%r31,%rax,4),%r25d,%edx pext 0x123(%r31,%rax,4),%r31,%r15 - sha1msg1 %xmm23,%xmm22 - sha1msg1 0x123(%r31,%rax,4),%xmm22 - sha1msg2 %xmm23,%xmm22 - sha1msg2 0x123(%r31,%rax,4),%xmm22 - sha1nexte %xmm23,%xmm22 - sha1nexte 0x123(%r31,%rax,4),%xmm22 - sha1rnds4 $0x7b,%xmm23,%xmm22 - sha1rnds4 $0x7b,0x123(%r31,%rax,4),%xmm22 - sha256msg1 %xmm23,%xmm22 - sha256msg1 0x123(%r31,%rax,4),%xmm22 - sha256msg2 %xmm23,%xmm22 - sha256msg2 0x123(%r31,%rax,4),%xmm22 + sha1msg1 0x123(%r31,%rax,4),%xmm12 + sha1msg2 0x123(%r31,%rax,4),%xmm12 + sha1nexte 0x123(%r31,%rax,4),%xmm12 + sha1rnds4 $0x7b,0x123(%r31,%rax,4),%xmm12 + sha256msg1 0x123(%r31,%rax,4),%xmm12 + sha256msg2 0x123(%r31,%rax,4),%xmm12 sha256rnds2 0x123(%r31,%rax,4),%xmm12 shlx %r25d,%edx,%r10d shlx %r25d,0x123(%r31,%rax,4),%edx @@ -172,12 +166,12 @@ _start: aadd [r31+rax*4+0x123],r31 aand [r31+rax*4+0x123],r25d aand [r31+rax*4+0x123],r31 - aesdec128kl xmm22,[r31+rax*4+0x123] - aesdec256kl xmm22,[r31+rax*4+0x123] + aesdec128kl xmm12,[r31+rax*4+0x123] + aesdec256kl xmm12,[r31+rax*4+0x123] aesdecwide128kl [r31+rax*4+0x123] aesdecwide256kl [r31+rax*4+0x123] - aesenc128kl xmm22,[r31+rax*4+0x123] - aesenc256kl xmm22,[r31+rax*4+0x123] + aesenc128kl xmm12,[r31+rax*4+0x123] + aesenc256kl xmm12,[r31+rax*4+0x123] aesencwide128kl [r31+rax*4+0x123] aesencwide256kl [r31+rax*4+0x123] aor [r31+rax*4+0x123],r25d @@ -293,18 +287,12 @@ _start: pext r11,r15,r31 pext edx,r25d,DWORD PTR [r31+rax*4+0x123] pext r15,r31,QWORD PTR [r31+rax*4+0x123] - sha1msg1 xmm22,xmm23 - sha1msg1 xmm22,XMMWORD PTR [r31+rax*4+0x123] - sha1msg2 xmm22,xmm23 - sha1msg2 xmm22,XMMWORD PTR [r31+rax*4+0x123] - sha1nexte xmm22,xmm23 - sha1nexte xmm22,XMMWORD PTR [r31+rax*4+0x123] - sha1rnds4 xmm22,xmm23,0x7b - sha1rnds4 xmm22,XMMWORD PTR [r31+rax*4+0x123],0x7b - sha256msg1 xmm22,xmm23 - sha256msg1 xmm22,XMMWORD PTR [r31+rax*4+0x123] - sha256msg2 xmm22,xmm23 - sha256msg2 xmm22,XMMWORD PTR [r31+rax*4+0x123] + sha1msg1 xmm12,XMMWORD PTR [r31+rax*4+0x123] + sha1msg2 xmm12,XMMWORD PTR [r31+rax*4+0x123] + sha1nexte xmm12,XMMWORD PTR [r31+rax*4+0x123] + sha1rnds4 xmm12,XMMWORD PTR [r31+rax*4+0x123],0x7b + sha256msg1 xmm12,XMMWORD PTR [r31+rax*4+0x123] + sha256msg2 xmm12,XMMWORD PTR [r31+rax*4+0x123] sha256rnds2 xmm12,XMMWORD PTR [r31+rax*4+0x123] shlx r10d,edx,r25d shlx edx,DWORD PTR [r31+rax*4+0x123],r25d --- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d +++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d @@ -37,6 +37,9 @@ Disassembly of section .text: [ ]*[a-f0-9]+:[ ]+62 f4 3c[ ]+\(bad\) [ ]*[a-f0-9]+:[ ]+08 8f c0 ff ff ff[ ]+or.* [ ]*[a-f0-9]+:[ ]+62 74 7c 18 8f c0[ ]+pop2 %rax,\(bad\) -[ ]*[a-f0-9]+:[ ]+62 d4 3c 18 8f[ ]+\(bad\) -[ ]*[a-f0-9]+:[ ]+c0[ ]+.* +[ ]*[a-f0-9]+:[ ]+62 d4 24 18 8f[ ]+\(bad\) +[ ]*[a-f0-9]+:[ ]+c3[ ]+.* +[ ]*[a-f0-9]+:[ ]+62 e4 7e 08 dc 20[ ]+aesenc128kl \(%rax\),%xmm20\(bad\) +[ ]*[a-f0-9]+:[ ]+62 b4 7c 08 d9 c4[ ]+sha1msg1 %xmm20\(bad\),%xmm0 +[ ]*[a-f0-9]+:[ ]+62 e4 7c 08 d9 20[ ]+sha1msg1 \(%rax\),%xmm20\(bad\) #pass --- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s +++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s @@ -45,5 +45,15 @@ _start: .byte 0xff, 0xff, 0xff # pop2 %rax, %r8 set EVEX.vvvv = 1111. .insn EVEX.L0.M4.W0 0x8f, %rax, {rn-sae},%r8 - # pop2 %r8, %r8. - .byte 0x62, 0xd4, 0x3c, 0x18, 0x8f, 0xc0 + + # pop2 %r11, %r11 + .insn EVEX.L0.NP.M4.W0 0x8f/0, {sae}, %xmm11, %xmm11 + + # aesenc128kl (%rax), %xmm20 + .insn EVEX.L0.F3.M4.W0 0xdc, (%rax), %xmm20 + + # sha1msg1 %xmm20, %xmm0 + .insn EVEX.L0.NP.M4.W0 0xd9, %xmm20, %xmm0 + + # sha1msg1 (%rax), %xmm20 + .insn EVEX.L0.NP.M4.W0 0xd9, (%rax), %xmm20 --- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d +++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d @@ -12,12 +12,12 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*62 4c fc 08 fc bc 87 23 01 00 00[ ]+aadd[ ]+QWORD PTR \[r31\+rax\*4\+0x123\],r31 [ ]*[a-f0-9]+:[ ]*62 4c 7d 08 fc 8c 87 23 01 00 00[ ]+aand[ ]+DWORD PTR \[r31\+rax\*4\+0x123\],r25d [ ]*[a-f0-9]+:[ ]*62 4c fd 08 fc bc 87 23 01 00 00[ ]+aand[ ]+QWORD PTR \[r31\+rax\*4\+0x123\],r31 -[ ]*[a-f0-9]+:[ ]*62 cc 7e 08 dd b4 87 23 01 00 00[ ]+aesdec128kl xmm22,\[r31\+rax\*4\+0x123\] -[ ]*[a-f0-9]+:[ ]*62 cc 7e 08 df b4 87 23 01 00 00[ ]+aesdec256kl xmm22,\[r31\+rax\*4\+0x123\] +[ ]*[a-f0-9]+:[ ]*62 5c 7e 08 dd a4 87 23 01 00 00[ ]+aesdec128kl xmm12,\[r31\+rax\*4\+0x123\] +[ ]*[a-f0-9]+:[ ]*62 5c 7e 08 df a4 87 23 01 00 00[ ]+aesdec256kl xmm12,\[r31\+rax\*4\+0x123\] [ ]*[a-f0-9]+:[ ]*62 dc 7e 08 d8 8c 87 23 01 00 00[ ]+aesdecwide128kl[ ]+\[r31\+rax\*4\+0x123\] [ ]*[a-f0-9]+:[ ]*62 dc 7e 08 d8 9c 87 23 01 00 00[ ]+aesdecwide256kl[ ]+\[r31\+rax\*4\+0x123\] -[ ]*[a-f0-9]+:[ ]*62 cc 7e 08 dc b4 87 23 01 00 00[ ]+aesenc128kl xmm22,\[r31\+rax\*4\+0x123\] -[ ]*[a-f0-9]+:[ ]*62 cc 7e 08 de b4 87 23 01 00 00[ ]+aesenc256kl xmm22,\[r31\+rax\*4\+0x123\] +[ ]*[a-f0-9]+:[ ]*62 5c 7e 08 dc a4 87 23 01 00 00[ ]+aesenc128kl xmm12,\[r31\+rax\*4\+0x123\] +[ ]*[a-f0-9]+:[ ]*62 5c 7e 08 de a4 87 23 01 00 00[ ]+aesenc256kl xmm12,\[r31\+rax\*4\+0x123\] [ ]*[a-f0-9]+:[ ]*62 dc 7e 08 d8 84 87 23 01 00 00[ ]+aesencwide128kl[ ]+\[r31\+rax\*4\+0x123\] [ ]*[a-f0-9]+:[ ]*62 dc 7e 08 d8 94 87 23 01 00 00[ ]+aesencwide256kl[ ]+\[r31\+rax\*4\+0x123\] [ ]*[a-f0-9]+:[ ]*62 4c 7f 08 fc 8c 87 23 01 00 00[ ]+aor[ ]+DWORD PTR \[r31\+rax\*4\+0x123\],r25d @@ -133,18 +133,12 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*62 5a 86 08 f5 df[ ]+pext[ ]+r11,r15,r31 [ ]*[a-f0-9]+:[ ]*62 da 36 00 f5 94 87 23 01 00 00[ ]+pext[ ]+edx,r25d,DWORD PTR \[r31\+rax\*4\+0x123\] [ ]*[a-f0-9]+:[ ]*62 5a 86 00 f5 bc 87 23 01 00 00[ ]+pext[ ]+r15,r31,QWORD PTR \[r31\+rax\*4\+0x123\] -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 d9 f7[ ]+sha1msg1 xmm22,xmm23 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 d9 b4 87 23 01 00 00[ ]+sha1msg1 xmm22,XMMWORD PTR \[r31\+rax\*4\+0x123\] -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 da f7[ ]+sha1msg2 xmm22,xmm23 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 da b4 87 23 01 00 00[ ]+sha1msg2 xmm22,XMMWORD PTR \[r31\+rax\*4\+0x123\] -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 d8 f7[ ]+sha1nexte xmm22,xmm23 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 d8 b4 87 23 01 00 00[ ]+sha1nexte xmm22,XMMWORD PTR \[r31\+rax\*4\+0x123\] -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 d4 f7 7b[ ]+sha1rnds4 xmm22,xmm23,0x7b -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 d4 b4 87 23 01 00 00 7b[ ]+sha1rnds4 xmm22,XMMWORD PTR \[r31\+rax\*4\+0x123\],0x7b -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 dc f7[ ]+sha256msg1 xmm22,xmm23 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 dc b4 87 23 01 00 00[ ]+sha256msg1 xmm22,XMMWORD PTR \[r31\+rax\*4\+0x123\] -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 dd f7[ ]+sha256msg2 xmm22,xmm23 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 dd b4 87 23 01 00 00[ ]+sha256msg2 xmm22,XMMWORD PTR \[r31\+rax\*4\+0x123\] +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 d9 a4 87 23 01 00 00[ ]+sha1msg1 xmm12,XMMWORD PTR \[r31\+rax\*4\+0x123\] +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 da a4 87 23 01 00 00[ ]+sha1msg2 xmm12,XMMWORD PTR \[r31\+rax\*4\+0x123\] +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 d8 a4 87 23 01 00 00[ ]+sha1nexte xmm12,XMMWORD PTR \[r31\+rax\*4\+0x123\] +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 d4 a4 87 23 01 00 00 7b[ ]+sha1rnds4 xmm12,XMMWORD PTR \[r31\+rax\*4\+0x123\],0x7b +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 dc a4 87 23 01 00 00[ ]+sha256msg1 xmm12,XMMWORD PTR \[r31\+rax\*4\+0x123\] +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 dd a4 87 23 01 00 00[ ]+sha256msg2 xmm12,XMMWORD PTR \[r31\+rax\*4\+0x123\] [ ]*[a-f0-9]+:[ ]*62 5c 7c 08 db a4 87 23 01 00 00[ ]+sha256rnds2 xmm12,XMMWORD PTR \[r31\+rax\*4\+0x123\],xmm0 [ ]*[a-f0-9]+:[ ]*62 72 35 00 f7 d2[ ]+shlx[ ]+r10d,edx,r25d [ ]*[a-f0-9]+:[ ]*62 da 35 00 f7 94 87 23 01 00 00[ ]+shlx[ ]+edx,DWORD PTR \[r31\+rax\*4\+0x123\],r25d @@ -176,12 +170,12 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*62 4c fc 08 fc bc 87 23 01 00 00[ ]+aadd[ ]+QWORD PTR \[r31\+rax\*4\+0x123\],r31 [ ]*[a-f0-9]+:[ ]*62 4c 7d 08 fc 8c 87 23 01 00 00[ ]+aand[ ]+DWORD PTR \[r31\+rax\*4\+0x123\],r25d [ ]*[a-f0-9]+:[ ]*62 4c fd 08 fc bc 87 23 01 00 00[ ]+aand[ ]+QWORD PTR \[r31\+rax\*4\+0x123\],r31 -[ ]*[a-f0-9]+:[ ]*62 cc 7e 08 dd b4 87 23 01 00 00[ ]+aesdec128kl xmm22,\[r31\+rax\*4\+0x123\] -[ ]*[a-f0-9]+:[ ]*62 cc 7e 08 df b4 87 23 01 00 00[ ]+aesdec256kl xmm22,\[r31\+rax\*4\+0x123\] +[ ]*[a-f0-9]+:[ ]*62 5c 7e 08 dd a4 87 23 01 00 00[ ]+aesdec128kl xmm12,\[r31\+rax\*4\+0x123\] +[ ]*[a-f0-9]+:[ ]*62 5c 7e 08 df a4 87 23 01 00 00[ ]+aesdec256kl xmm12,\[r31\+rax\*4\+0x123\] [ ]*[a-f0-9]+:[ ]*62 dc 7e 08 d8 8c 87 23 01 00 00[ ]+aesdecwide128kl[ ]+\[r31\+rax\*4\+0x123\] [ ]*[a-f0-9]+:[ ]*62 dc 7e 08 d8 9c 87 23 01 00 00[ ]+aesdecwide256kl[ ]+\[r31\+rax\*4\+0x123\] -[ ]*[a-f0-9]+:[ ]*62 cc 7e 08 dc b4 87 23 01 00 00[ ]+aesenc128kl xmm22,\[r31\+rax\*4\+0x123\] -[ ]*[a-f0-9]+:[ ]*62 cc 7e 08 de b4 87 23 01 00 00[ ]+aesenc256kl xmm22,\[r31\+rax\*4\+0x123\] +[ ]*[a-f0-9]+:[ ]*62 5c 7e 08 dc a4 87 23 01 00 00[ ]+aesenc128kl xmm12,\[r31\+rax\*4\+0x123\] +[ ]*[a-f0-9]+:[ ]*62 5c 7e 08 de a4 87 23 01 00 00[ ]+aesenc256kl xmm12,\[r31\+rax\*4\+0x123\] [ ]*[a-f0-9]+:[ ]*62 dc 7e 08 d8 84 87 23 01 00 00[ ]+aesencwide128kl[ ]+\[r31\+rax\*4\+0x123\] [ ]*[a-f0-9]+:[ ]*62 dc 7e 08 d8 94 87 23 01 00 00[ ]+aesencwide256kl[ ]+\[r31\+rax\*4\+0x123\] [ ]*[a-f0-9]+:[ ]*62 4c 7f 08 fc 8c 87 23 01 00 00[ ]+aor[ ]+DWORD PTR \[r31\+rax\*4\+0x123\],r25d @@ -297,18 +291,12 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*62 5a 86 08 f5 df[ ]+pext[ ]+r11,r15,r31 [ ]*[a-f0-9]+:[ ]*62 da 36 00 f5 94 87 23 01 00 00[ ]+pext[ ]+edx,r25d,DWORD PTR \[r31\+rax\*4\+0x123\] [ ]*[a-f0-9]+:[ ]*62 5a 86 00 f5 bc 87 23 01 00 00[ ]+pext[ ]+r15,r31,QWORD PTR \[r31\+rax\*4\+0x123\] -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 d9 f7[ ]+sha1msg1 xmm22,xmm23 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 d9 b4 87 23 01 00 00[ ]+sha1msg1 xmm22,XMMWORD PTR \[r31\+rax\*4\+0x123\] -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 da f7[ ]+sha1msg2 xmm22,xmm23 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 da b4 87 23 01 00 00[ ]+sha1msg2 xmm22,XMMWORD PTR \[r31\+rax\*4\+0x123\] -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 d8 f7[ ]+sha1nexte xmm22,xmm23 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 d8 b4 87 23 01 00 00[ ]+sha1nexte xmm22,XMMWORD PTR \[r31\+rax\*4\+0x123\] -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 d4 f7 7b[ ]+sha1rnds4 xmm22,xmm23,0x7b -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 d4 b4 87 23 01 00 00 7b[ ]+sha1rnds4 xmm22,XMMWORD PTR \[r31\+rax\*4\+0x123\],0x7b -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 dc f7[ ]+sha256msg1 xmm22,xmm23 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 dc b4 87 23 01 00 00[ ]+sha256msg1 xmm22,XMMWORD PTR \[r31\+rax\*4\+0x123\] -[ ]*[a-f0-9]+:[ ]*62 a4 7c 08 dd f7[ ]+sha256msg2 xmm22,xmm23 -[ ]*[a-f0-9]+:[ ]*62 cc 7c 08 dd b4 87 23 01 00 00[ ]+sha256msg2 xmm22,XMMWORD PTR \[r31\+rax\*4\+0x123\] +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 d9 a4 87 23 01 00 00[ ]+sha1msg1 xmm12,XMMWORD PTR \[r31\+rax\*4\+0x123\] +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 da a4 87 23 01 00 00[ ]+sha1msg2 xmm12,XMMWORD PTR \[r31\+rax\*4\+0x123\] +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 d8 a4 87 23 01 00 00[ ]+sha1nexte xmm12,XMMWORD PTR \[r31\+rax\*4\+0x123\] +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 d4 a4 87 23 01 00 00 7b[ ]+sha1rnds4 xmm12,XMMWORD PTR \[r31\+rax\*4\+0x123\],0x7b +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 dc a4 87 23 01 00 00[ ]+sha256msg1 xmm12,XMMWORD PTR \[r31\+rax\*4\+0x123\] +[ ]*[a-f0-9]+:[ ]*62 5c 7c 08 dd a4 87 23 01 00 00[ ]+sha256msg2 xmm12,XMMWORD PTR \[r31\+rax\*4\+0x123\] [ ]*[a-f0-9]+:[ ]*62 5c 7c 08 db a4 87 23 01 00 00[ ]+sha256rnds2 xmm12,XMMWORD PTR \[r31\+rax\*4\+0x123\],xmm0 [ ]*[a-f0-9]+:[ ]*62 72 35 00 f7 d2[ ]+shlx[ ]+r10d,edx,r25d [ ]*[a-f0-9]+:[ ]*62 da 35 00 f7 94 87 23 01 00 00[ ]+shlx[ ]+edx,DWORD PTR \[r31\+rax\*4\+0x123\],r25d --- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d +++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d @@ -12,12 +12,12 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*62 4c fc 08 fc bc 87 23 01 00 00[ ]+aadd[ ]+%r31,0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 4c 7d 08 fc 8c 87 23 01 00 00[ ]+aand[ ]+%r25d,0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 4c fd 08 fc bc 87 23 01 00 00[ ]+aand[ ]+%r31,0x123\(%r31,%rax,4\) -[ ]*[a-f0-9]+:[ ]*62 cc .e 08 dd b4 87 23 01 00 00[ ]+aesdec128kl[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc .e 08 df b4 87 23 01 00 00[ ]+aesdec256kl[ ]+0x123\(%r31,%rax,4\),%xmm22 +[ ]*[a-f0-9]+:[ ]*62 5c .e 08 dd a4 87 23 01 00 00[ ]+aesdec128kl[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c .e 08 df a4 87 23 01 00 00[ ]+aesdec256kl[ ]+0x123\(%r31,%rax,4\),%xmm12 [ ]*[a-f0-9]+:[ ]*62 dc .e 08 d8 8c 87 23 01 00 00[ ]+aesdecwide128kl[ ]+0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 dc .e 08 d8 9c 87 23 01 00 00[ ]+aesdecwide256kl[ ]+0x123\(%r31,%rax,4\) -[ ]*[a-f0-9]+:[ ]*62 cc .e 08 dc b4 87 23 01 00 00[ ]+aesenc128kl[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc .e 08 de b4 87 23 01 00 00[ ]+aesenc256kl[ ]+0x123\(%r31,%rax,4\),%xmm22 +[ ]*[a-f0-9]+:[ ]*62 5c .e 08 dc a4 87 23 01 00 00[ ]+aesenc128kl[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c .e 08 de a4 87 23 01 00 00[ ]+aesenc256kl[ ]+0x123\(%r31,%rax,4\),%xmm12 [ ]*[a-f0-9]+:[ ]*62 dc .e 08 d8 84 87 23 01 00 00[ ]+aesencwide128kl[ ]+0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 dc .e 08 d8 94 87 23 01 00 00[ ]+aesencwide256kl[ ]+0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 4c 7f 08 fc 8c 87 23 01 00 00[ ]+aor[ ]+%r25d,0x123\(%r31,%rax,4\) @@ -133,18 +133,12 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*62 5a 86 08 f5 df[ ]+pext[ ]+%r31,%r15,%r11 [ ]*[a-f0-9]+:[ ]*62 da 36 00 f5 94 87 23 01 00 00[ ]+pext[ ]+0x123\(%r31,%rax,4\),%r25d,%edx [ ]*[a-f0-9]+:[ ]*62 5a 86 00 f5 bc 87 23 01 00 00[ ]+pext[ ]+0x123\(%r31,%rax,4\),%r31,%r15 -[ ]*[a-f0-9]+:[ ]*62 a4 .c 08 d9 f7[ ]+sha1msg1[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc .c 08 d9 b4 87 23 01 00 00[ ]+sha1msg1[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 .c 08 da f7[ ]+sha1msg2[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc .c 08 da b4 87 23 01 00 00[ ]+sha1msg2[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 .c 08 d8 f7[ ]+sha1nexte[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc .c 08 d8 b4 87 23 01 00 00[ ]+sha1nexte[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 .c 08 d4 f7 7b[ ]+sha1rnds4[ ]+\$0x7b,%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc .c 08 d4 b4 87 23 01 00 00 7b[ ]+sha1rnds4[ ]+\$0x7b,0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 .c 08 dc f7[ ]+sha256msg1[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc .c 08 dc b4 87 23 01 00 00[ ]+sha256msg1[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 .c 08 dd f7[ ]+sha256msg2[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc .c 08 dd b4 87 23 01 00 00[ ]+sha256msg2[ ]+0x123\(%r31,%rax,4\),%xmm22 +[ ]*[a-f0-9]+:[ ]*62 5c .c 08 d9 a4 87 23 01 00 00[ ]+sha1msg1[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c .c 08 da a4 87 23 01 00 00[ ]+sha1msg2[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c .c 08 d8 a4 87 23 01 00 00[ ]+sha1nexte[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c .c 08 d4 a4 87 23 01 00 00 7b[ ]+sha1rnds4[ ]+\$0x7b,0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c .c 08 dc a4 87 23 01 00 00[ ]+sha256msg1[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c .c 08 dd a4 87 23 01 00 00[ ]+sha256msg2[ ]+0x123\(%r31,%rax,4\),%xmm12 [ ]*[a-f0-9]+:[ ]*62 5c .c 08 db a4 87 23 01 00 00[ ]+sha256rnds2[ ]+%xmm0,0x123\(%r31,%rax,4\),%xmm12 [ ]*[a-f0-9]+:[ ]*62 72 35 00 f7 d2[ ]+shlx[ ]+%r25d,%edx,%r10d [ ]*[a-f0-9]+:[ ]*62 da 35 00 f7 94 87 23 01 00 00[ ]+shlx[ ]+%r25d,0x123\(%r31,%rax,4\),%edx @@ -176,12 +170,12 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*62 4c fc 08 fc bc 87 23 01 00 00[ ]+aadd[ ]+%r31,0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 4c 7d 08 fc 8c 87 23 01 00 00[ ]+aand[ ]+%r25d,0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 4c fd 08 fc bc 87 23 01 00 00[ ]+aand[ ]+%r31,0x123\(%r31,%rax,4\) -[ ]*[a-f0-9]+:[ ]*62 cc .e 08 dd b4 87 23 01 00 00[ ]+aesdec128kl[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc .e 08 df b4 87 23 01 00 00[ ]+aesdec256kl[ ]+0x123\(%r31,%rax,4\),%xmm22 +[ ]*[a-f0-9]+:[ ]*62 5c .e 08 dd a4 87 23 01 00 00[ ]+aesdec128kl[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c .e 08 df a4 87 23 01 00 00[ ]+aesdec256kl[ ]+0x123\(%r31,%rax,4\),%xmm12 [ ]*[a-f0-9]+:[ ]*62 dc .e 08 d8 8c 87 23 01 00 00[ ]+aesdecwide128kl[ ]+0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 dc .e 08 d8 9c 87 23 01 00 00[ ]+aesdecwide256kl[ ]+0x123\(%r31,%rax,4\) -[ ]*[a-f0-9]+:[ ]*62 cc .e 08 dc b4 87 23 01 00 00[ ]+aesenc128kl[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc .e 08 de b4 87 23 01 00 00[ ]+aesenc256kl[ ]+0x123\(%r31,%rax,4\),%xmm22 +[ ]*[a-f0-9]+:[ ]*62 5c .e 08 dc a4 87 23 01 00 00[ ]+aesenc128kl[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c .e 08 de a4 87 23 01 00 00[ ]+aesenc256kl[ ]+0x123\(%r31,%rax,4\),%xmm12 [ ]*[a-f0-9]+:[ ]*62 dc .e 08 d8 84 87 23 01 00 00[ ]+aesencwide128kl[ ]+0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 dc .e 08 d8 94 87 23 01 00 00[ ]+aesencwide256kl[ ]+0x123\(%r31,%rax,4\) [ ]*[a-f0-9]+:[ ]*62 4c 7f 08 fc 8c 87 23 01 00 00[ ]+aor[ ]+%r25d,0x123\(%r31,%rax,4\) @@ -297,18 +291,12 @@ Disassembly of section \.text: [ ]*[a-f0-9]+:[ ]*62 5a 86 08 f5 df[ ]+pext[ ]+%r31,%r15,%r11 [ ]*[a-f0-9]+:[ ]*62 da 36 00 f5 94 87 23 01 00 00[ ]+pext[ ]+0x123\(%r31,%rax,4\),%r25d,%edx [ ]*[a-f0-9]+:[ ]*62 5a 86 00 f5 bc 87 23 01 00 00[ ]+pext[ ]+0x123\(%r31,%rax,4\),%r31,%r15 -[ ]*[a-f0-9]+:[ ]*62 a4 .c 08 d9 f7[ ]+sha1msg1[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc .c 08 d9 b4 87 23 01 00 00[ ]+sha1msg1[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 .c 08 da f7[ ]+sha1msg2[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc .c 08 da b4 87 23 01 00 00[ ]+sha1msg2[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 .c 08 d8 f7[ ]+sha1nexte[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc .c 08 d8 b4 87 23 01 00 00[ ]+sha1nexte[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 .c 08 d4 f7 7b[ ]+sha1rnds4[ ]+\$0x7b,%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc .c 08 d4 b4 87 23 01 00 00 7b[ ]+sha1rnds4[ ]+\$0x7b,0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 .c 08 dc f7[ ]+sha256msg1[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc .c 08 dc b4 87 23 01 00 00[ ]+sha256msg1[ ]+0x123\(%r31,%rax,4\),%xmm22 -[ ]*[a-f0-9]+:[ ]*62 a4 .c 08 dd f7[ ]+sha256msg2[ ]+%xmm23,%xmm22 -[ ]*[a-f0-9]+:[ ]*62 cc .c 08 dd b4 87 23 01 00 00[ ]+sha256msg2[ ]+0x123\(%r31,%rax,4\),%xmm22 +[ ]*[a-f0-9]+:[ ]*62 5c .c 08 d9 a4 87 23 01 00 00[ ]+sha1msg1[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c .c 08 da a4 87 23 01 00 00[ ]+sha1msg2[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c .c 08 d8 a4 87 23 01 00 00[ ]+sha1nexte[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c .c 08 d4 a4 87 23 01 00 00 7b[ ]+sha1rnds4[ ]+\$0x7b,0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c .c 08 dc a4 87 23 01 00 00[ ]+sha256msg1[ ]+0x123\(%r31,%rax,4\),%xmm12 +[ ]*[a-f0-9]+:[ ]*62 5c .c 08 dd a4 87 23 01 00 00[ ]+sha256msg2[ ]+0x123\(%r31,%rax,4\),%xmm12 [ ]*[a-f0-9]+:[ ]*62 5c .c 08 db a4 87 23 01 00 00[ ]+sha256rnds2[ ]+%xmm0,0x123\(%r31,%rax,4\),%xmm12 [ ]*[a-f0-9]+:[ ]*62 72 35 00 f7 d2[ ]+shlx[ ]+%r25d,%edx,%r10d [ ]*[a-f0-9]+:[ ]*62 da 35 00 f7 94 87 23 01 00 00[ ]+shlx[ ]+%r25d,0x123\(%r31,%rax,4\),%edx --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -12828,6 +12828,11 @@ print_vector_reg (instr_info *ins, unsig else names = att_names_xmm; oappend_register (ins, names[reg]); + + /* Legacy insns promoted to EVEX, like the legacy insns themselves, don't + allow use of the upper 16 vector registers. */ + if (ins->evex_type == evex_from_legacy && reg >= 16) + oappend (ins, "(bad)"); } static bool