From patchwork Fri Feb 16 09:47:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 202018 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:c619:b0:108:e6aa:91d0 with SMTP id hn25csp402576dyb; Fri, 16 Feb 2024 01:47:21 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXKsbsRhmW/dVXGqxY1fTXOCtGChQeMRKtNW15OWQ+3oNwFOPjWzSV0oi/UBwJlKJ5oStRp+KzjRLpM5xuPgdOzLnIkkg== X-Google-Smtp-Source: AGHT+IF3hZRidxBxgnTZTjoLTtb2fOcBegwqbKCr6+7pkI9A3m4FEnbCcmLFoHVtrJ6Q/Th9wA1h X-Received: by 2002:a05:620a:172a:b0:787:25f3:c188 with SMTP id az42-20020a05620a172a00b0078725f3c188mr5015578qkb.27.1708076841163; Fri, 16 Feb 2024 01:47:21 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708076841; cv=pass; d=google.com; s=arc-20160816; b=vorwB87Gq2uJovZP92FzXyUff0YCtU2PrGfoPBn/6aBFDXbv2zqwWMoT21rvhS0/E0 HRnE7AT/7Yj8qBB+r5UCvcIyIeC8dSrcCJAp2xtGsopLm8bzcdF9fvg9tOQ+3ybIT0In Zpz+a6OsilqXX0KVXxSQZ20e0UCED6lwqxML/LPFHvIldU8inier9YeknDol7HHXYVZg Am3OLfczxhGKOP/RZBspOR3flzp6pXjgJQCZwttX2RGiW2PAXNPrgAaoaffNK56SKvKO zlIt6Uwovly7CXoMdkFxsAqRNL7hTmGh+u4ffpPOgJxVvBMYVrK2I4h5bT5waInuaXjZ e1gA== 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 :autocrypt:subject:from:cc:to:content-language:user-agent :mime-version:date:message-id:dkim-signature:arc-filter:dmarc-filter :delivered-to; bh=v7pv6C8qSwjcueUF408LrWZaCKFDr3byA2ZNFwITGJQ=; fh=8WW8/k0o0G2vlJiZAQKLzwZ5FShsw2CjyMds4OH6804=; b=sg3drW+xWXT9cPjmHeNrXUD9Gni5oqVL2lXYhM/d8oWngozfgVPydA7U6dQVylOCuC rNmhv+135V/GZE0W70vPwMBQN0Fa+4Lk02veMwhWDUeabCfB2E/MvylAiHb9oBU0/wjk MIW4zwTv2UqDXFWZZI0ymViMIKRiH+K+f9FbhlAoMAwop6dtvNmgp2pwM49EArRmmqkQ VpAwhTXefeXb7hHXNgMMH2EBzu0Y7dgsT9UfROKkQdxVxamX+x0GtZv5H+rF5pvzA0Jf V2aCVu+U7ajHB6ma08hXp2eCDjLJOf1EbSOb7IlB5BNoRMnh6tt+upsy5nMEE+2KVDl1 dIjw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@suse.com header.s=google header.b=XmgoaNEE; 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 s15-20020ae9f70f000000b007859f20c29fsi3504972qkg.616.2024.02.16.01.47.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Feb 2024 01:47:21 -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=XmgoaNEE; 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 CC57B38582BB for ; Fri, 16 Feb 2024 09:47:20 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) by sourceware.org (Postfix) with ESMTPS id A379338582A0 for ; Fri, 16 Feb 2024 09:47:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A379338582A0 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 A379338582A0 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::431 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708076831; cv=none; b=IoD/mQUzWvqj/HcgPxRjTthulaGbtAB7CyB5aIT0VBHl1lt17z8OhAvFQ0/CA957vq+vXTR/F+nEdBBozdxLCvx9toQ7ZVnclQE9GZJOppZKFQLLdpSB/ex3Kx5Pl/D2JZpQ2tubGaO2qQykOWJv4xzjPluY//BoYvcsUxlgKp0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708076831; c=relaxed/simple; bh=tC5M3/7mJqLoCaR6O5sGmLYhgSgWDqjG2YQVOrC3qII=; h=DKIM-Signature:Message-ID:Date:MIME-Version:To:From:Subject; b=J/isf++heZvgHkw6kDvUR3g0O9O4X0aZHN1eAgjYIh2oQK9yoxKVDXGvJ179CfteXnXoyhaHv3bIt/SuHbL5Wp9EvU9X5EZaqw0jQ540cJQ8WGOpOoevmktlJfWIfG4Zs/WDjvZEitZUwAYftH4CCwVGPwaZN4AdvuDtnpI00jc= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-33d173acb98so325937f8f.2 for ; Fri, 16 Feb 2024 01:47:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1708076826; x=1708681626; 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=v7pv6C8qSwjcueUF408LrWZaCKFDr3byA2ZNFwITGJQ=; b=XmgoaNEEh2pchMTSGOfFa4LCPaLK2BTmP311XeStDLYMpNbVvPzVBSNeObXAsleypa vi5T41+GwpP2fk6jOy6AcUX3Gs5FHxLTdi+isYlOvOuOJWrNOADZdvCMJup7PgmRobrQ N3uf7CBepT6F0raeIUViMhKu9+7gZLZLJ+PPZABMVBoWasuJaLln/e57YC5a9Bk9MQRC j/ci+0DNab6cF500gIWYf7TunEq1fp8eEPXWFNOZR8jdD4/WxlTH7TVBN3vGqGgpubO0 kGioVGCYi55cq+V7yFseZwQItBUhZGUMgWDHdhYtxLMXXUjLR4i2WEyGPtfJ2x5kzgIV 51AQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708076826; x=1708681626; 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=v7pv6C8qSwjcueUF408LrWZaCKFDr3byA2ZNFwITGJQ=; b=L1uAHorgg0JLwUpDZ6WGBpgCrk6PJMu1B5RwparuQMuiI1waTosFmp1krCuOduoeiF I71zunB3MVRCH3xG2/NBx+V4L/t//cWZORhpuXJhTawWDX0ChMoZus6FZZzxafEa6ke7 GDGwgLHyn8m5CtAppcS7vd5bi6GjNiSCRW/r0nAZk7OJO31gqCoPCFlUMS4ncnhdRo48 cdU31Z403pXITqfIr/3oAJTrCSAgvFxqfJSo1+/2roEDJb8uyV/OrMkSKyJRAag7hP95 LXZ4wjEVB8pYw2yv3uNXB6Zmps2gpaFdmvugme60q48WnMkYeEkhxWXJrub7Rm9EutcI /dHA== X-Gm-Message-State: AOJu0YwH+K8DyEGVnzqR4+UR7RScSCyUUZkfE8UmILQU/zzbDwBzD2bZ HuGPeTEBTEocCdXmskfeXYigxuP8C7LK5pbx3HWzgJ+yOOINQo0kSV3+0F4bG8rMavQuFcfyjrU = X-Received: by 2002:a5d:530b:0:b0:33b:68fd:aff2 with SMTP id e11-20020a5d530b000000b0033b68fdaff2mr3104792wrv.24.1708076826187; Fri, 16 Feb 2024 01:47:06 -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 z9-20020a5d4c89000000b0033cef5812f6sm1662038wrs.109.2024.02.16.01.47.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 16 Feb 2024 01:47:05 -0800 (PST) Message-ID: <57c348fd-5677-4350-9578-91d47552cc91@suse.com> Date: Fri, 16 Feb 2024 10:47:05 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: Binutils Cc: "H.J. Lu" From: Jan Beulich Subject: [PATCH] x86: also permit YMM/ZMM use in CFI directives 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.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham 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: 1791048381875644121 X-GMAIL-MSGID: 1791048381875644121 Next to code using %ymm or %zmm it is more natural to have .cfi_* directives also reference those, not the corresponding %xmm. Accept their names as kind of aliases, i.e. resolving to the same numbers. While extending the respective 64-bit testcase, also add %bnd there (should have happened right with 633789901c83 ["x86-64: Dwarf2 register numbers for %bnd"], sorry), requiring binutils/dwarf.c to be adjusted accordingly as well. --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -8654,7 +8654,8 @@ static const char *const dwarf_regnames_ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 99 - 106 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 107 - 114 */ NULL, NULL, NULL, /* 115 - 117 */ - "k0", "k1", "k2", "k3", "k4", "k5", "k6", "k7" + "k0", "k1", "k2", "k3", "k4", "k5", "k6", "k7", + "bnd0", "bnd1", "bnd2", "bnd3", }; static void --- a/gas/testsuite/gas/cfi/cfi-i386.d +++ b/gas/testsuite/gas/cfi/cfi-i386.d @@ -58,7 +58,7 @@ Contents of the .eh_frame section: DW_CFA_undefined: r8 \(eip\) DW_CFA_nop -0+00a0 0+00ac 0+0018 FDE cie=0+008c pc=0+0044..0+0079 +0+00a0 0+[0-9a-f]+ 0+0018 FDE cie=0+008c pc=0+0044\..* DW_CFA_advance_loc: 1 to 0+0045 DW_CFA_undefined: r0 \(eax\) DW_CFA_advance_loc: 1 to 0+0046 @@ -147,23 +147,52 @@ Contents of the .eh_frame section: DW_CFA_undefined: r35 \(mm6\) DW_CFA_advance_loc: 1 to 0+0070 DW_CFA_undefined: r36 \(mm7\) - DW_CFA_advance_loc: 1 to 0+0071 + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r21 \([xy]mm0\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r22 \([xy]mm1\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r23 \([xy]mm2\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r24 \([xy]mm3\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r25 \([xy]mm4\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r26 \([xy]mm5\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r27 \([xy]mm6\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r28 \([xy]mm7\) + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r93 \(k0\) - DW_CFA_advance_loc: 1 to 0+0072 + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r94 \(k1\) - DW_CFA_advance_loc: 1 to 0+0073 + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r95 \(k2\) - DW_CFA_advance_loc: 1 to 0+0074 + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r96 \(k3\) - DW_CFA_advance_loc: 1 to 0+0075 + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r97 \(k4\) - DW_CFA_advance_loc: 1 to 0+0076 + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r98 \(k5\) - DW_CFA_advance_loc: 1 to 0+0077 + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r99 \(k6\) - DW_CFA_advance_loc: 1 to 0+0078 + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r100 \(k7\) - DW_CFA_nop - DW_CFA_nop - DW_CFA_nop - + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r21 \([xyz]mm0\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r22 \([xyz]mm1\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r23 \([xyz]mm2\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r24 \([xyz]mm3\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r25 \([xyz]mm4\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r26 \([xyz]mm5\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r27 \([xyz]mm6\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r28 \([xyz]mm7\) +#pass --- a/gas/testsuite/gas/cfi/cfi-i386.s +++ b/gas/testsuite/gas/cfi/cfi-i386.s @@ -157,6 +157,15 @@ func_all_registers: .cfi_undefined mm6 ; nop .cfi_undefined mm7 ; nop + .cfi_undefined ymm0 ; nop + .cfi_undefined ymm1 ; nop + .cfi_undefined ymm2 ; nop + .cfi_undefined ymm3 ; nop + .cfi_undefined ymm4 ; nop + .cfi_undefined ymm5 ; nop + .cfi_undefined ymm6 ; nop + .cfi_undefined ymm7 ; nop + .cfi_undefined k0 ; nop .cfi_undefined k1 ; nop .cfi_undefined k2 ; nop @@ -166,4 +175,13 @@ func_all_registers: .cfi_undefined k6 ; nop .cfi_undefined k7 ; nop + .cfi_undefined zmm0 ; nop + .cfi_undefined zmm1 ; nop + .cfi_undefined zmm2 ; nop + .cfi_undefined zmm3 ; nop + .cfi_undefined zmm4 ; nop + .cfi_undefined zmm5 ; nop + .cfi_undefined zmm6 ; nop + .cfi_undefined zmm7 ; nop + .cfi_endproc --- a/gas/testsuite/gas/cfi/cfi-x86_64.d +++ b/gas/testsuite/gas/cfi/cfi-x86_64.d @@ -96,7 +96,7 @@ Contents of the .eh_frame section: DW_CFA_undefined: r16 \(rip\) DW_CFA_nop -0+00e8 0+011[04] 0+0018 FDE cie=0+00d4 pc=0+0058..0+00af +0+00e8 0+[0-9a-f]+ 0+0018 FDE cie=0+00d4 pc=0+0058\..* DW_CFA_advance_loc: 1 to 0+0059 DW_CFA_undefined: r0 \(rax\) DW_CFA_advance_loc: 1 to 0+005a @@ -253,21 +253,156 @@ Contents of the .eh_frame section: DW_CFA_undefined: r81 \(xmm30\) DW_CFA_advance_loc: 1 to 0+00a6 DW_CFA_undefined: r82 \(xmm31\) - DW_CFA_advance_loc: 1 to 0+00a7 + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r17 \([xy]mm0\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r18 \([xy]mm1\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r19 \([xy]mm2\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r20 \([xy]mm3\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r21 \([xy]mm4\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r22 \([xy]mm5\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r23 \([xy]mm6\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r24 \([xy]mm7\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r25 \([xy]mm8\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r26 \([xy]mm9\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r27 \([xy]mm10\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r28 \([xy]mm11\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r29 \([xy]mm12\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r30 \([xy]mm13\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r31 \([xy]mm14\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r32 \([xy]mm15\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r67 \([xy]mm16\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r68 \([xy]mm17\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r69 \([xy]mm18\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r70 \([xy]mm19\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r71 \([xy]mm20\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r72 \([xy]mm21\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r73 \([xy]mm22\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r74 \([xy]mm23\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r75 \([xy]mm24\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r76 \([xy]mm25\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r77 \([xy]mm26\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r78 \([xy]mm27\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r79 \([xy]mm28\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r80 \([xy]mm29\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r81 \([xy]mm30\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r82 \([xy]mm31\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r126 \(bnd0\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r127 \(bnd1\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r128 \(bnd2\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r129 \(bnd3\) + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r118 \(k0\) - DW_CFA_advance_loc: 1 to 0+00a8 + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r119 \(k1\) - DW_CFA_advance_loc: 1 to 0+00a9 + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r120 \(k2\) - DW_CFA_advance_loc: 1 to 0+00aa + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r121 \(k3\) - DW_CFA_advance_loc: 1 to 0+00ab + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r122 \(k4\) - DW_CFA_advance_loc: 1 to 0+00ac + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r123 \(k5\) - DW_CFA_advance_loc: 1 to 0+00ad + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r124 \(k6\) - DW_CFA_advance_loc: 1 to 0+00ae + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r125 \(k7\) - DW_CFA_nop + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r17 \([xyz]mm0\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r18 \([xyz]mm1\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r19 \([xyz]mm2\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r20 \([xyz]mm3\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r21 \([xyz]mm4\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r22 \([xyz]mm5\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r23 \([xyz]mm6\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r24 \([xyz]mm7\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r25 \([xyz]mm8\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r26 \([xyz]mm9\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r27 \([xyz]mm10\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r28 \([xyz]mm11\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r29 \([xyz]mm12\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r30 \([xyz]mm13\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r31 \([xyz]mm14\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r32 \([xyz]mm15\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r67 \([xyz]mm16\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r68 \([xyz]mm17\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r69 \([xyz]mm18\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r70 \([xyz]mm19\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r71 \([xyz]mm20\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r72 \([xyz]mm21\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r73 \([xyz]mm22\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r74 \([xyz]mm23\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r75 \([xyz]mm24\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r76 \([xyz]mm25\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r77 \([xyz]mm26\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r78 \([xyz]mm27\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r79 \([xyz]mm28\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r80 \([xyz]mm29\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r81 \([xyz]mm30\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r82 \([xyz]mm31\) #pass --- a/gas/testsuite/gas/cfi/cfi-x86_64.s +++ b/gas/testsuite/gas/cfi/cfi-x86_64.s @@ -221,6 +221,44 @@ func_all_registers: .cfi_undefined xmm30 ; nop .cfi_undefined xmm31 ; nop + .cfi_undefined ymm0 ; nop + .cfi_undefined ymm1 ; nop + .cfi_undefined ymm2 ; nop + .cfi_undefined ymm3 ; nop + .cfi_undefined ymm4 ; nop + .cfi_undefined ymm5 ; nop + .cfi_undefined ymm6 ; nop + .cfi_undefined ymm7 ; nop + .cfi_undefined ymm8 ; nop + .cfi_undefined ymm9 ; nop + .cfi_undefined ymm10 ; nop + .cfi_undefined ymm11 ; nop + .cfi_undefined ymm12 ; nop + .cfi_undefined ymm13 ; nop + .cfi_undefined ymm14 ; nop + .cfi_undefined ymm15 ; nop + .cfi_undefined ymm16 ; nop + .cfi_undefined ymm17 ; nop + .cfi_undefined ymm18 ; nop + .cfi_undefined ymm19 ; nop + .cfi_undefined ymm20 ; nop + .cfi_undefined ymm21 ; nop + .cfi_undefined ymm22 ; nop + .cfi_undefined ymm23 ; nop + .cfi_undefined ymm24 ; nop + .cfi_undefined ymm25 ; nop + .cfi_undefined ymm26 ; nop + .cfi_undefined ymm27 ; nop + .cfi_undefined ymm28 ; nop + .cfi_undefined ymm29 ; nop + .cfi_undefined ymm30 ; nop + .cfi_undefined ymm31 ; nop + + .cfi_undefined bnd0 ; nop + .cfi_undefined bnd1 ; nop + .cfi_undefined bnd2 ; nop + .cfi_undefined bnd3 ; nop + .cfi_undefined k0 ; nop .cfi_undefined k1 ; nop .cfi_undefined k2 ; nop @@ -230,4 +268,37 @@ func_all_registers: .cfi_undefined k6 ; nop .cfi_undefined k7 ; nop + .cfi_undefined zmm0 ; nop + .cfi_undefined zmm1 ; nop + .cfi_undefined zmm2 ; nop + .cfi_undefined zmm3 ; nop + .cfi_undefined zmm4 ; nop + .cfi_undefined zmm5 ; nop + .cfi_undefined zmm6 ; nop + .cfi_undefined zmm7 ; nop + .cfi_undefined zmm8 ; nop + .cfi_undefined zmm9 ; nop + .cfi_undefined zmm10 ; nop + .cfi_undefined zmm11 ; nop + .cfi_undefined zmm12 ; nop + .cfi_undefined zmm13 ; nop + .cfi_undefined zmm14 ; nop + .cfi_undefined zmm15 ; nop + .cfi_undefined zmm16 ; nop + .cfi_undefined zmm17 ; nop + .cfi_undefined zmm18 ; nop + .cfi_undefined zmm19 ; nop + .cfi_undefined zmm20 ; nop + .cfi_undefined zmm21 ; nop + .cfi_undefined zmm22 ; nop + .cfi_undefined zmm23 ; nop + .cfi_undefined zmm24 ; nop + .cfi_undefined zmm25 ; nop + .cfi_undefined zmm26 ; nop + .cfi_undefined zmm27 ; nop + .cfi_undefined zmm28 ; nop + .cfi_undefined zmm29 ; nop + .cfi_undefined zmm30 ; nop + .cfi_undefined zmm31 ; nop + .cfi_endproc --- a/gas/testsuite/gas/i386/ilp32/cfi/cfi-x86_64.d +++ b/gas/testsuite/gas/i386/ilp32/cfi/cfi-x86_64.d @@ -96,7 +96,7 @@ Contents of the .eh_frame section: DW_CFA_undefined: r16 \(rip\) DW_CFA_nop -000000e8 0000011[04] 00000018 FDE cie=000000d4 pc=00000058..000000af +000000e8 0000[0-9a-f]+ 00000018 FDE cie=000000d4 pc=00000058\..* DW_CFA_advance_loc: 1 to 00000059 DW_CFA_undefined: r0 \(rax\) DW_CFA_advance_loc: 1 to 0000005a @@ -253,21 +253,156 @@ Contents of the .eh_frame section: DW_CFA_undefined: r81 \(xmm30\) DW_CFA_advance_loc: 1 to 000000a6 DW_CFA_undefined: r82 \(xmm31\) - DW_CFA_advance_loc: 1 to 000000a7 + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r17 \([xy]mm0\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r18 \([xy]mm1\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r19 \([xy]mm2\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r20 \([xy]mm3\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r21 \([xy]mm4\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r22 \([xy]mm5\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r23 \([xy]mm6\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r24 \([xy]mm7\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r25 \([xy]mm8\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r26 \([xy]mm9\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r27 \([xy]mm10\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r28 \([xy]mm11\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r29 \([xy]mm12\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r30 \([xy]mm13\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r31 \([xy]mm14\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r32 \([xy]mm15\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r67 \([xy]mm16\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r68 \([xy]mm17\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r69 \([xy]mm18\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r70 \([xy]mm19\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r71 \([xy]mm20\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r72 \([xy]mm21\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r73 \([xy]mm22\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r74 \([xy]mm23\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r75 \([xy]mm24\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r76 \([xy]mm25\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r77 \([xy]mm26\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r78 \([xy]mm27\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r79 \([xy]mm28\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r80 \([xy]mm29\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r81 \([xy]mm30\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r82 \([xy]mm31\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r126 \(bnd0\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r127 \(bnd1\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r128 \(bnd2\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r129 \(bnd3\) + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r118 \(k0\) - DW_CFA_advance_loc: 1 to 000000a8 + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r119 \(k1\) - DW_CFA_advance_loc: 1 to 000000a9 + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r120 \(k2\) - DW_CFA_advance_loc: 1 to 000000aa + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r121 \(k3\) - DW_CFA_advance_loc: 1 to 000000ab + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r122 \(k4\) - DW_CFA_advance_loc: 1 to 000000ac + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r123 \(k5\) - DW_CFA_advance_loc: 1 to 000000ad + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r124 \(k6\) - DW_CFA_advance_loc: 1 to 000000ae + DW_CFA_advance_loc: 1 to .* DW_CFA_undefined: r125 \(k7\) - DW_CFA_nop - + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r17 \([xyz]mm0\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r18 \([xyz]mm1\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r19 \([xyz]mm2\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r20 \([xyz]mm3\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r21 \([xyz]mm4\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r22 \([xyz]mm5\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r23 \([xyz]mm6\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r24 \([xyz]mm7\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r25 \([xyz]mm8\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r26 \([xyz]mm9\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r27 \([xyz]mm10\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r28 \([xyz]mm11\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r29 \([xyz]mm12\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r30 \([xyz]mm13\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r31 \([xyz]mm14\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r32 \([xyz]mm15\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r67 \([xyz]mm16\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r68 \([xyz]mm17\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r69 \([xyz]mm18\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r70 \([xyz]mm19\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r71 \([xyz]mm20\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r72 \([xyz]mm21\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r73 \([xyz]mm22\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r74 \([xyz]mm23\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r75 \([xyz]mm24\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r76 \([xyz]mm25\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r77 \([xyz]mm26\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r78 \([xyz]mm27\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r79 \([xyz]mm28\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r80 \([xyz]mm29\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r81 \([xyz]mm30\) + DW_CFA_advance_loc: 1 to .* + DW_CFA_undefined: r82 \([xyz]mm31\) +#pass --- a/opcodes/i386-reg.tbl +++ b/opcodes/i386-reg.tbl @@ -278,71 +278,72 @@ xmm29, Class=RegSIMD|Xmmword, RegVRex|Re xmm30, Class=RegSIMD|Xmmword, RegVRex|RegRex, 6, Dw2Inval, 81 xmm31, Class=RegSIMD|Xmmword, RegVRex|RegRex, 7, Dw2Inval, 82 // AVX registers. -ymm0, Class=RegSIMD|Ymmword, 0, 0, Dw2Inval, Dw2Inval -ymm1, Class=RegSIMD|Ymmword, 0, 1, Dw2Inval, Dw2Inval -ymm2, Class=RegSIMD|Ymmword, 0, 2, Dw2Inval, Dw2Inval -ymm3, Class=RegSIMD|Ymmword, 0, 3, Dw2Inval, Dw2Inval -ymm4, Class=RegSIMD|Ymmword, 0, 4, Dw2Inval, Dw2Inval -ymm5, Class=RegSIMD|Ymmword, 0, 5, Dw2Inval, Dw2Inval -ymm6, Class=RegSIMD|Ymmword, 0, 6, Dw2Inval, Dw2Inval -ymm7, Class=RegSIMD|Ymmword, 0, 7, Dw2Inval, Dw2Inval -ymm8, Class=RegSIMD|Ymmword, RegRex, 0, Dw2Inval, Dw2Inval -ymm9, Class=RegSIMD|Ymmword, RegRex, 1, Dw2Inval, Dw2Inval -ymm10, Class=RegSIMD|Ymmword, RegRex, 2, Dw2Inval, Dw2Inval -ymm11, Class=RegSIMD|Ymmword, RegRex, 3, Dw2Inval, Dw2Inval -ymm12, Class=RegSIMD|Ymmword, RegRex, 4, Dw2Inval, Dw2Inval -ymm13, Class=RegSIMD|Ymmword, RegRex, 5, Dw2Inval, Dw2Inval -ymm14, Class=RegSIMD|Ymmword, RegRex, 6, Dw2Inval, Dw2Inval -ymm15, Class=RegSIMD|Ymmword, RegRex, 7, Dw2Inval, Dw2Inval -ymm16, Class=RegSIMD|Ymmword, RegVRex, 0, Dw2Inval, Dw2Inval -ymm17, Class=RegSIMD|Ymmword, RegVRex, 1, Dw2Inval, Dw2Inval -ymm18, Class=RegSIMD|Ymmword, RegVRex, 2, Dw2Inval, Dw2Inval -ymm19, Class=RegSIMD|Ymmword, RegVRex, 3, Dw2Inval, Dw2Inval -ymm20, Class=RegSIMD|Ymmword, RegVRex, 4, Dw2Inval, Dw2Inval -ymm21, Class=RegSIMD|Ymmword, RegVRex, 5, Dw2Inval, Dw2Inval -ymm22, Class=RegSIMD|Ymmword, RegVRex, 6, Dw2Inval, Dw2Inval -ymm23, Class=RegSIMD|Ymmword, RegVRex, 7, Dw2Inval, Dw2Inval -ymm24, Class=RegSIMD|Ymmword, RegVRex|RegRex, 0, Dw2Inval, Dw2Inval -ymm25, Class=RegSIMD|Ymmword, RegVRex|RegRex, 1, Dw2Inval, Dw2Inval -ymm26, Class=RegSIMD|Ymmword, RegVRex|RegRex, 2, Dw2Inval, Dw2Inval -ymm27, Class=RegSIMD|Ymmword, RegVRex|RegRex, 3, Dw2Inval, Dw2Inval -ymm28, Class=RegSIMD|Ymmword, RegVRex|RegRex, 4, Dw2Inval, Dw2Inval -ymm29, Class=RegSIMD|Ymmword, RegVRex|RegRex, 5, Dw2Inval, Dw2Inval -ymm30, Class=RegSIMD|Ymmword, RegVRex|RegRex, 6, Dw2Inval, Dw2Inval -ymm31, Class=RegSIMD|Ymmword, RegVRex|RegRex, 7, Dw2Inval, Dw2Inval +ymm0, Class=RegSIMD|Ymmword, 0, 0, 21, 17 +ymm1, Class=RegSIMD|Ymmword, 0, 1, 22, 18 +ymm2, Class=RegSIMD|Ymmword, 0, 2, 23, 19 +ymm3, Class=RegSIMD|Ymmword, 0, 3, 24, 20 +ymm4, Class=RegSIMD|Ymmword, 0, 4, 25, 21 +ymm5, Class=RegSIMD|Ymmword, 0, 5, 26, 22 +ymm6, Class=RegSIMD|Ymmword, 0, 6, 27, 23 +ymm7, Class=RegSIMD|Ymmword, 0, 7, 28, 24 +ymm8, Class=RegSIMD|Ymmword, RegRex, 0, Dw2Inval, 25 +ymm9, Class=RegSIMD|Ymmword, RegRex, 1, Dw2Inval, 26 +ymm10, Class=RegSIMD|Ymmword, RegRex, 2, Dw2Inval, 27 +ymm11, Class=RegSIMD|Ymmword, RegRex, 3, Dw2Inval, 28 +ymm12, Class=RegSIMD|Ymmword, RegRex, 4, Dw2Inval, 29 +ymm13, Class=RegSIMD|Ymmword, RegRex, 5, Dw2Inval, 30 +ymm14, Class=RegSIMD|Ymmword, RegRex, 6, Dw2Inval, 31 +ymm15, Class=RegSIMD|Ymmword, RegRex, 7, Dw2Inval, 32 +// AVX512 / AVX10 registers. +ymm16, Class=RegSIMD|Ymmword, RegVRex, 0, Dw2Inval, 67 +ymm17, Class=RegSIMD|Ymmword, RegVRex, 1, Dw2Inval, 68 +ymm18, Class=RegSIMD|Ymmword, RegVRex, 2, Dw2Inval, 69 +ymm19, Class=RegSIMD|Ymmword, RegVRex, 3, Dw2Inval, 70 +ymm20, Class=RegSIMD|Ymmword, RegVRex, 4, Dw2Inval, 71 +ymm21, Class=RegSIMD|Ymmword, RegVRex, 5, Dw2Inval, 72 +ymm22, Class=RegSIMD|Ymmword, RegVRex, 6, Dw2Inval, 73 +ymm23, Class=RegSIMD|Ymmword, RegVRex, 7, Dw2Inval, 74 +ymm24, Class=RegSIMD|Ymmword, RegVRex|RegRex, 0, Dw2Inval, 75 +ymm25, Class=RegSIMD|Ymmword, RegVRex|RegRex, 1, Dw2Inval, 76 +ymm26, Class=RegSIMD|Ymmword, RegVRex|RegRex, 2, Dw2Inval, 77 +ymm27, Class=RegSIMD|Ymmword, RegVRex|RegRex, 3, Dw2Inval, 78 +ymm28, Class=RegSIMD|Ymmword, RegVRex|RegRex, 4, Dw2Inval, 79 +ymm29, Class=RegSIMD|Ymmword, RegVRex|RegRex, 5, Dw2Inval, 80 +ymm30, Class=RegSIMD|Ymmword, RegVRex|RegRex, 6, Dw2Inval, 81 +ymm31, Class=RegSIMD|Ymmword, RegVRex|RegRex, 7, Dw2Inval, 82 // AVX512 registers. -zmm0, Class=RegSIMD|Zmmword, 0, 0, Dw2Inval, Dw2Inval -zmm1, Class=RegSIMD|Zmmword, 0, 1, Dw2Inval, Dw2Inval -zmm2, Class=RegSIMD|Zmmword, 0, 2, Dw2Inval, Dw2Inval -zmm3, Class=RegSIMD|Zmmword, 0, 3, Dw2Inval, Dw2Inval -zmm4, Class=RegSIMD|Zmmword, 0, 4, Dw2Inval, Dw2Inval -zmm5, Class=RegSIMD|Zmmword, 0, 5, Dw2Inval, Dw2Inval -zmm6, Class=RegSIMD|Zmmword, 0, 6, Dw2Inval, Dw2Inval -zmm7, Class=RegSIMD|Zmmword, 0, 7, Dw2Inval, Dw2Inval -zmm8, Class=RegSIMD|Zmmword, RegRex, 0, Dw2Inval, Dw2Inval -zmm9, Class=RegSIMD|Zmmword, RegRex, 1, Dw2Inval, Dw2Inval -zmm10, Class=RegSIMD|Zmmword, RegRex, 2, Dw2Inval, Dw2Inval -zmm11, Class=RegSIMD|Zmmword, RegRex, 3, Dw2Inval, Dw2Inval -zmm12, Class=RegSIMD|Zmmword, RegRex, 4, Dw2Inval, Dw2Inval -zmm13, Class=RegSIMD|Zmmword, RegRex, 5, Dw2Inval, Dw2Inval -zmm14, Class=RegSIMD|Zmmword, RegRex, 6, Dw2Inval, Dw2Inval -zmm15, Class=RegSIMD|Zmmword, RegRex, 7, Dw2Inval, Dw2Inval -zmm16, Class=RegSIMD|Zmmword, RegVRex, 0, Dw2Inval, Dw2Inval -zmm17, Class=RegSIMD|Zmmword, RegVRex, 1, Dw2Inval, Dw2Inval -zmm18, Class=RegSIMD|Zmmword, RegVRex, 2, Dw2Inval, Dw2Inval -zmm19, Class=RegSIMD|Zmmword, RegVRex, 3, Dw2Inval, Dw2Inval -zmm20, Class=RegSIMD|Zmmword, RegVRex, 4, Dw2Inval, Dw2Inval -zmm21, Class=RegSIMD|Zmmword, RegVRex, 5, Dw2Inval, Dw2Inval -zmm22, Class=RegSIMD|Zmmword, RegVRex, 6, Dw2Inval, Dw2Inval -zmm23, Class=RegSIMD|Zmmword, RegVRex, 7, Dw2Inval, Dw2Inval -zmm24, Class=RegSIMD|Zmmword, RegVRex|RegRex, 0, Dw2Inval, Dw2Inval -zmm25, Class=RegSIMD|Zmmword, RegVRex|RegRex, 1, Dw2Inval, Dw2Inval -zmm26, Class=RegSIMD|Zmmword, RegVRex|RegRex, 2, Dw2Inval, Dw2Inval -zmm27, Class=RegSIMD|Zmmword, RegVRex|RegRex, 3, Dw2Inval, Dw2Inval -zmm28, Class=RegSIMD|Zmmword, RegVRex|RegRex, 4, Dw2Inval, Dw2Inval -zmm29, Class=RegSIMD|Zmmword, RegVRex|RegRex, 5, Dw2Inval, Dw2Inval -zmm30, Class=RegSIMD|Zmmword, RegVRex|RegRex, 6, Dw2Inval, Dw2Inval -zmm31, Class=RegSIMD|Zmmword, RegVRex|RegRex, 7, Dw2Inval, Dw2Inval +zmm0, Class=RegSIMD|Zmmword, 0, 0, 21, 17 +zmm1, Class=RegSIMD|Zmmword, 0, 1, 22, 18 +zmm2, Class=RegSIMD|Zmmword, 0, 2, 23, 19 +zmm3, Class=RegSIMD|Zmmword, 0, 3, 24, 20 +zmm4, Class=RegSIMD|Zmmword, 0, 4, 25, 21 +zmm5, Class=RegSIMD|Zmmword, 0, 5, 26, 22 +zmm6, Class=RegSIMD|Zmmword, 0, 6, 27, 23 +zmm7, Class=RegSIMD|Zmmword, 0, 7, 28, 24 +zmm8, Class=RegSIMD|Zmmword, RegRex, 0, Dw2Inval, 25 +zmm9, Class=RegSIMD|Zmmword, RegRex, 1, Dw2Inval, 26 +zmm10, Class=RegSIMD|Zmmword, RegRex, 2, Dw2Inval, 27 +zmm11, Class=RegSIMD|Zmmword, RegRex, 3, Dw2Inval, 28 +zmm12, Class=RegSIMD|Zmmword, RegRex, 4, Dw2Inval, 29 +zmm13, Class=RegSIMD|Zmmword, RegRex, 5, Dw2Inval, 30 +zmm14, Class=RegSIMD|Zmmword, RegRex, 6, Dw2Inval, 31 +zmm15, Class=RegSIMD|Zmmword, RegRex, 7, Dw2Inval, 32 +zmm16, Class=RegSIMD|Zmmword, RegVRex, 0, Dw2Inval, 67 +zmm17, Class=RegSIMD|Zmmword, RegVRex, 1, Dw2Inval, 68 +zmm18, Class=RegSIMD|Zmmword, RegVRex, 2, Dw2Inval, 69 +zmm19, Class=RegSIMD|Zmmword, RegVRex, 3, Dw2Inval, 70 +zmm20, Class=RegSIMD|Zmmword, RegVRex, 4, Dw2Inval, 71 +zmm21, Class=RegSIMD|Zmmword, RegVRex, 5, Dw2Inval, 72 +zmm22, Class=RegSIMD|Zmmword, RegVRex, 6, Dw2Inval, 73 +zmm23, Class=RegSIMD|Zmmword, RegVRex, 7, Dw2Inval, 74 +zmm24, Class=RegSIMD|Zmmword, RegVRex|RegRex, 0, Dw2Inval, 75 +zmm25, Class=RegSIMD|Zmmword, RegVRex|RegRex, 1, Dw2Inval, 76 +zmm26, Class=RegSIMD|Zmmword, RegVRex|RegRex, 2, Dw2Inval, 77 +zmm27, Class=RegSIMD|Zmmword, RegVRex|RegRex, 3, Dw2Inval, 78 +zmm28, Class=RegSIMD|Zmmword, RegVRex|RegRex, 4, Dw2Inval, 79 +zmm29, Class=RegSIMD|Zmmword, RegVRex|RegRex, 5, Dw2Inval, 80 +zmm30, Class=RegSIMD|Zmmword, RegVRex|RegRex, 6, Dw2Inval, 81 +zmm31, Class=RegSIMD|Zmmword, RegVRex|RegRex, 7, Dw2Inval, 82 // TMM registers for AMX tmm0, Class=RegSIMD|Tmmword, 0, 0, Dw2Inval, Dw2Inval tmm1, Class=RegSIMD|Tmmword, 0, 1, Dw2Inval, Dw2Inval