From patchwork Fri Jul 24 10:02:02 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 139874 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 9E6BF4BA799C for ; Fri, 24 Jul 2026 10:02:40 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9E6BF4BA799C Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=suse.com header.i=@suse.com header.a=rsa-sha256 header.s=google header.b=aB/ISL5h X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by sourceware.org (Postfix) with ESMTPS id 6C8E44BA799A for ; Fri, 24 Jul 2026 10:02:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6C8E44BA799A 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 6C8E44BA799A Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::42f ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1784887325; cv=none; b=l91xlMicQPfdnk6HQ7kpa1V2tpshRDmUd0EdOvq1DfcTMC2wqgNHC32+BGVROnNftqhqshgCIKT9Gq8rIUggyEYUGg6TsIMbr3rSpK+43ofv7guNprZNmRmiHbe2eo+blT2PKSIv8BzTc7tKFIcVz7qkWbCkbveBes+J3xBIWJ0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1784887325; c=relaxed/simple; bh=ZBthih4DpMOInM8Q72jq8W3tMJrjt0xSlGLYV8k2pas=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=PHL5FD2ZPpIXW3QuMrpGNIbSUFiXJR/kR7I0eJHcq8Pze+UZ4h3h9T9miWd1CudOd4nxxHSdMn4K8yggyyUbje+FCBIUQpObeqJFGbiQdAFZAPUK236tfpyMs77QW10Hh9ofF9P7OM/Syd5v5fwxdsurUFh8bnO7qmFPqBh1NC4= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=suse.com header.i=@suse.com header.a=rsa-sha256 header.s=google header.b=aB/ISL5h DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6C8E44BA799A Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-47f9ab7ee38so155781f8f.2 for ; Fri, 24 Jul 2026 03:02:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1784887324; x=1785492124; darn=sourceware.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=1w6Tav1aYCZxtCsJyVUum05OQXRURuaFkbGmgFrlLxY=; b=aB/ISL5hMBBiVkOWcnSQYfQZGPrvuH+wHHjR82A1P22ZkbDxglGjCc3ZGf7jL/bipr YZOEcB4xg4IZl8+yVKL5SE+YR3ApFaeebqzGO3rX6954ezZd6bI+ITP8j6G7jT8/Vh55 dW9cmo2T5Mu+TmpGBtCub3kMLtXse5K2YWFFhfGvDoQTjJ1UP5onrOZ4y/le44c6xrqR XfFQfLq8niN8Z6aM0E0P5n4tZvPvQpbJ1i+1VhRHIuf9vFxDHXZyp6Ev9qKSLYJMZqRA GPloivcJ1Nd8P7BfiXzrxf4Pz0fNHAlhWM0uy1u9/4GQwd4AqfKwzS7zsHNZ/1d7TSa7 tDTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784887324; x=1785492124; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=1w6Tav1aYCZxtCsJyVUum05OQXRURuaFkbGmgFrlLxY=; b=OrEp0CYo8Nn+mX7XMarbl5ll4uhOsmHYj4pIoxxAq3OWs8NkiiD0YagOYKsDOj9C3O 7t22mTKiYJzBpC7pDslCeKhXia3g4wWr9JI8RHc+vzqkq/MdhiD55iB22VziYQD9Wbuq 6LOIXK/pNEk//9oKjYnY96/2B+GIZ/uNojVZaiLG+PkjJIS5brLEDt4l0NWtFvAy7DY2 03dv0Z7K+q5/MLLdMP2VoSKyNUc4tJhgwWurzfosIaMvgiMkw5jr7iB6s7SXKNEr8c2O ShItto6B37SIURnIPzC9dKhiIzuz0VJ7A8e/vHays1IDco7Id/tooztcmHzv+VQgzqVZ SsfQ== X-Gm-Message-State: AOJu0YzRLwTp7m0R9K4XCveBlA1bAvRieUwUICX25qJxcADa0Im51oOj nnfGF7cMBARJb0SIXEVPW3lpUWLkjCGq2TBB1spgB1gTVRVY+KNIeYalcE/ODI8QpdSCcxvDppv /TnDVVQ== X-Gm-Gg: AR+sD10kpDlA4A+m3xZgxXkYdAEggQZEP5Cvzx9oWviB0RIwa42ubG3A4rzL3tqPf60 AqTBnaoJj3/+/nuY18CUOMt+30nKrp8k/K9/pZsWm9mYGEEMoXRR3HeEi7j8t4UmxUJ0PQcTxJj nqcUIv7ZxtWAiPrKSxU3VKkt88XG7LS+dO8fZAnpRZGznwHe5lWFJhzsaAs67a5lu7I7/dcPMhr CT49l+IDh9RkOPnK98JG4h2mWsSgRpls8CvgCedn+aH43rCzG0L4cMfZuSeNpe9NgUmTn6mMwxu sKuZURf4Y7hnUNeh7DCpSNpP3oWDfP1uBAzbGmbco7goFK1SxmiW80y/RrIRovx8wBMyrO4RtCA Nnhy0vW+lDpbeACe94GUBmNs8w5OpCUh00Wb4PSsGbL9TMKsBwPRV8SMJjyuGbImpi3rMxTctnT JqtNflbR6rA9rMJ4U0tGSZrLgFxhhhhHtsFUnm60pLfCaRmNZDLnPwxTJMljG0Ttp/7/gcoPSim bkr X-Received: by 2002:a05:6000:2993:20b0:47f:8e50:93e0 with SMTP id ffacd0b85a97d-47f8e50956emr6893239f8f.39.1784887324325; Fri, 24 Jul 2026 03:02:04 -0700 (PDT) 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 ffacd0b85a97d-47f85c53052sm22490618f8f.18.2026.07.24.03.02.02 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 24 Jul 2026 03:02:03 -0700 (PDT) Message-ID: <2fa75e19-4d95-403b-876a-eeab235ddf64@suse.com> Date: Fri, 24 Jul 2026 12:02:02 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v4 01/12] bfd/RISC-V: Zv{b,k}* imply Zve32x From: Jan Beulich To: Binutils Cc: Palmer Dabbelt , Andrew Waterman , Jim Wilson , Nelson Chu , jiawei References: <6801be76-4052-4c49-87f2-6a08950368c0@suse.com> Content-Language: en-US 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: <6801be76-4052-4c49-87f2-6a08950368c0@suse.com> X-Spam-Status: No, score=-3015.7 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 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on 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 The specification is quite explicit about this. Since only forward references are permitted within the table, the pre-existing Zv{b,k} block needs moving up. --- Is the placement of "zve32x" after "zvbb" / "zvbc" actually correct? While riscv_compare_subsets() indeed does a mere strcasecmp() past "zv", it seems unlikely to be mere chance that Zve* come ahead of all other Zv* in riscv_supported_std_z_ext[]. --- v4: Put table entries into required order. v3: New. --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1244,15 +1244,35 @@ static const struct riscv_implicit_subse {"zvfqwdota8f", "+zve32f", check_implicit_always}, {"zvfwbdota16bf", "+zve32f", check_implicit_always}, {"zvfwdota16bf", "+zve32f", check_implicit_always}, + + {"zvbb", "+zvkb", check_implicit_always}, + {"zvkng", "+zvkn,+zvkg", check_implicit_always}, + {"zvknc", "+zvkn,+zvbc", check_implicit_always}, + {"zvkn", "+zvkned,+zvknhb,+zvkb,+zvkt", check_implicit_always}, + {"zvksg", "+zvks,+zvkg", check_implicit_always}, + {"zvksc", "+zvks,+zvbc", check_implicit_always}, + {"zvks", "+zvksed,+zvksh,+zvkb,+zvkt", check_implicit_always}, + + {"zvbc", "+zve32x", check_implicit_always}, + {"zvkb", "+zve32x", check_implicit_always}, + {"zvkg", "+zve32x", check_implicit_always}, + {"zvkned", "+zve32x", check_implicit_always}, + {"zvknha", "+zve32x", check_implicit_always}, + {"zvknhb", "+zve32x", check_implicit_always}, + {"zvksed", "+zve32x", check_implicit_always}, + {"zvksh", "+zve32x", check_implicit_always}, + {"zvqwbdota8i", "+zve32x", check_implicit_always}, {"zvqwbdota16i", "+zve64x", check_implicit_always}, {"zvqwdota8i", "+zve32x", check_implicit_always}, {"zvqwdota16i", "+zve64x", check_implicit_always}, + {"zve64d", "+d,+zve64f", check_implicit_always}, {"zve64f", "+zve32f,+zve64x,+zvl64b", check_implicit_always}, {"zve32f", "+f,+zve32x,+zvl32b", check_implicit_always}, {"zve64x", "+zve32x,+zvl64b", check_implicit_always}, {"zve32x", "+zvl32b,+zicsr", check_implicit_always}, + {"zvl65536b", "+zvl32768b", check_implicit_always}, {"zvl32768b", "+zvl16384b", check_implicit_always}, {"zvl16384b", "+zvl8192b", check_implicit_always}, @@ -1312,13 +1332,6 @@ static const struct riscv_implicit_subse {"zk", "+zkn,+zkr,+zkt", check_implicit_always}, {"zkn", "+zbkb,+zbkc,+zbkx,+zkne,+zknd,+zknh", check_implicit_always}, {"zks", "+zbkb,+zbkc,+zbkx,+zksed,+zksh", check_implicit_always}, - {"zvbb", "+zvkb", check_implicit_always}, - {"zvkng", "+zvkn,+zvkg", check_implicit_always}, - {"zvknc", "+zvkn,+zvbc", check_implicit_always}, - {"zvkn", "+zvkned,+zvknhb,+zvkb,+zvkt", check_implicit_always}, - {"zvksg", "+zvks,+zvkg", check_implicit_always}, - {"zvksc", "+zvks,+zvbc", check_implicit_always}, - {"zvks", "+zvksed,+zvksh,+zvkb,+zvkt", check_implicit_always}, {"sdtrig", "+zicsr", check_implicit_always}, --- a/gas/testsuite/gas/riscv/imply.d +++ b/gas/testsuite/gas/riscv/imply.d @@ -87,13 +87,13 @@ SYMBOL TABLE: [0-9a-f]+ l .text 0+000 \$xrv32i2p1_zbkb1p0_zbkc1p0_zbkx1p0_zk1p0_zkn1p0_zknd1p0_zkne1p0_zknh1p0_zkr1p0_zkt1p0 [0-9a-f]+ l .text 0+000 \$xrv32i2p1_zbkb1p0_zbkc1p0_zbkx1p0_zkn1p0_zknd1p0_zkne1p0_zknh1p0 [0-9a-f]+ l .text 0+000 \$xrv32i2p1_zbkb1p0_zbkc1p0_zbkx1p0_zks1p0_zksed1p0_zksh1p0 -[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zvbb1p0_zvkb1p0 -[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zvkb1p0_zvkg1p0_zvkn1p0_zvkned1p0_zvkng1p0_zvknhb1p0_zvkt1p0 -[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zvbc1p0_zvkb1p0_zvkn1p0_zvknc1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zvkb1p0_zvkn1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zvkb1p0_zvkg1p0_zvks1p0_zvksed1p0_zvksg1p0_zvksh1p0_zvkt1p0 -[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zvbc1p0_zvkb1p0_zvks1p0_zvksc1p0_zvksed1p0_zvksh1p0_zvkt1p0 -[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zvkb1p0_zvks1p0_zvksed1p0_zvksh1p0_zvkt1p0 +[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zvbb1p0_zve32x1p0_zvkb1p0_zvl32b1p0 +[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvkb1p0_zvkg1p0_zvkn1p0_zvkned1p0_zvkng1p0_zvknhb1p0_zvkt1p0_zvl32b1p0 +[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zvbc1p0_zve32x1p0_zvkb1p0_zvkn1p0_zvknc1p0_zvkned1p0_zvknhb1p0_zvkt1p0_zvl32b1p0 +[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvkb1p0_zvkn1p0_zvkned1p0_zvknhb1p0_zvkt1p0_zvl32b1p0 +[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvkb1p0_zvkg1p0_zvks1p0_zvksed1p0_zvksg1p0_zvksh1p0_zvkt1p0_zvl32b1p0 +[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zvbc1p0_zve32x1p0_zvkb1p0_zvks1p0_zvksc1p0_zvksed1p0_zvksh1p0_zvkt1p0_zvl32b1p0 +[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvkb1p0_zvks1p0_zvksed1p0_zvksh1p0_zvkt1p0_zvl32b1p0 [0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_sdtrig1p0 [0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_smaia1p0_ssaia1p0 [0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_smcdeleg1p0_ssccfg1p0_sscsrind1p0