From patchwork Fri Jun 30 21:57:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christoph_M=C3=BCllner?= X-Patchwork-Id: 114893 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10681273vqr; Fri, 30 Jun 2023 15:00:12 -0700 (PDT) X-Google-Smtp-Source: APBJJlHxkweM1uqWfk1fdXmQLyJyxXaFem8th6rhOj20x1f7hRLM+JjSZmNGWJ/2372zi10yMl2F X-Received: by 2002:a05:6512:1595:b0:4f8:56c8:e6b4 with SMTP id bp21-20020a056512159500b004f856c8e6b4mr4072210lfb.47.1688162411896; Fri, 30 Jun 2023 15:00:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688162411; cv=none; d=google.com; s=arc-20160816; b=ifS3YkMokzSxj3aKV7Ai6VRRARv6OoGQ0XiLNB0fl9ykl9axWO1WwTMKyh9qVk1SLp aFWP9s3q91Xrds8X7xJIlmftX21f6tQvXRHIe46SVEnEZ4T+sLPsf8Cagfol6eOiMxlk GN/VFHZeW/jGPUVtx7KfhV0BfrmtDytXfR37gWGtco2AmY0JExQKkKJ6JRouxwxDXhNc 2wWUxfGAoYPTeoK5Pax84B8+nK0qNehxdXwCc41Vgw3lz/4qotd4X1zzJKqO7rWm2dAs M7XjhJChb5OI/CfuFPp6vR154lBoF/MWzewIfs/tDZqgqKNMhxGr4uTYO1NxDOjuqisG tRjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=KrLG772tyJqiA3PBTaf4uJLIDxAIQEr+oZ1LrT+Rw0k=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=sVSGHoDT7GgFgmMY83cL+KsJ+5zyjclOUeuZ1IAdwcexGVLs6oLSKpJzsiGqFgSLN5 9kt+8Drfbrpuml33WZxPVoZ7SuW3j2DxmEr76/P6hQNjVsXFytmJCGTSSlJHE/bnMkjP /N5NJ/m013KCZsyp4Jx1e+0pvbth0c28F9YRsEEQidWfrrbNXEcf0c/nyIHAnGwrw+ho qLDH5QzhnvANf7L7WSinnOC0u9zPEc68+utX4ITdTsMeFO1y7lT7AKDTpbM5dwSaxyJV O7HawbkgUzHZ/cGUYfKHNu4fHZKniihAvyjPwj3cxFDSQ4vaYMhyCh3NJQ7iLOeMNEN0 4Cuw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=syJQFni0; 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" Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id r8-20020aa7d148000000b0051daf7e6305si4731828edo.167.2023.06.30.15.00.11 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 15:00:11 -0700 (PDT) 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=@vrull.eu header.s=google header.b=syJQFni0; 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" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 9DB053888C6C for ; Fri, 30 Jun 2023 21:58:21 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com [IPv6:2a00:1450:4864:20::52e]) by sourceware.org (Postfix) with ESMTPS id 41B2E3882AFC for ; Fri, 30 Jun 2023 21:57:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 41B2E3882AFC Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=vrull.eu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=vrull.eu Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-51bece5d935so2765869a12.1 for ; Fri, 30 Jun 2023 14:57:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688162251; x=1690754251; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KrLG772tyJqiA3PBTaf4uJLIDxAIQEr+oZ1LrT+Rw0k=; b=syJQFni0v99wJKjXl6V0HYiIOcQr6/DXAc5e7U3bFb7CigN3kgeIqUpX639e2MRHzR bRR11Cf+4zdo0KAt0ovPbPf9ZwMyrjgvnot94sQq6CjzZGYPIZyaJI9X+kBPP9MU2CcL MJZ23PPKQ288qATiNTN1ZzIZpsG0zLKIbn++MKlPg18vllUlCk+ALnTK4OOb2x4sXrWx qkutvf/+Tbd8onR2V3xrD85kiGBboIdcHhZoKxjHNuC7Pb2KeYu/m6oRk6WtEnK4K/xg SHvPcF0eG8iFN/gNVh1eq1+ECiSKedUwT/sI1+bd9D2xM0LPcAOMK22NGXcb7/Eos4ad Zt7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688162251; x=1690754251; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KrLG772tyJqiA3PBTaf4uJLIDxAIQEr+oZ1LrT+Rw0k=; b=WbLr5lTaPNqMU0I9O/5IcdnOL+sjMceh/z++HVsAZdGTkj3cXrO57YaxrFOobLNaZG r/ar00PIuj7ovzSChqYzOeFDhhmuOqz87z1egf78VKXlrEf3JMDTak6Rp2gR7jn5seZv qTsq1xGPAMbws4jALTd6XMg8W8EKsrtoUQY2cc8iaEqUQYQSC+r3QfG07YjLlzYdIp72 MG8Bm28ka4vzmFgTbrjCJuj55B1bl+0FXU5FP5uLnRWoSH+gq1q8mjtKwDNsnHRlwxlo 0+DuwPqLP184j/Dg+wJ1VwVOsMZLR1VWS3PpXReMSEZyCnmsPfNFsi3Gs0L3uE1c/CaJ 3lpQ== X-Gm-Message-State: ABy/qLYapaTqEeLd1aso3IhixCJGHJ44b2eRVjPEPiAAmceO3JPzQVbJ lXQiKowcAtustmU5zLtN7VIMQllbteNmquTJvkc= X-Received: by 2002:a05:6402:1848:b0:51d:8967:325f with SMTP id v8-20020a056402184800b0051d8967325fmr2727007edy.36.1688162251454; Fri, 30 Jun 2023 14:57:31 -0700 (PDT) Received: from beast.fritz.box (62-178-148-172.cable.dynamic.surfer.at. [62.178.148.172]) by smtp.gmail.com with ESMTPSA id q7-20020aa7d447000000b005183ce42da9sm7052132edr.18.2023.06.30.14.57.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:57:30 -0700 (PDT) From: Christoph Muellner To: binutils@sourceware.org, Nathan Huckleberry , nhuck@pmull.org, Jeff Law , Nelson Chu , Andrew Waterman , Palmer Dabbelt , Jim Wilson , Philipp Tomsich Cc: =?utf-8?q?Christoph_M=C3=BCllner?= Subject: [PATCH v5 01/15] RISC-V: Add support for the Zvbb ISA extension Date: Fri, 30 Jun 2023 23:57:11 +0200 Message-ID: <20230630215725.3725876-2-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230630215725.3725876-1-christoph.muellner@vrull.eu> References: <20230630215725.3725876-1-christoph.muellner@vrull.eu> MIME-Version: 1.0 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SCC_5_SHORT_WORD_LINES, SPF_HELO_NONE, SPF_PASS, 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.29 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 Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770166589195250261?= X-GMAIL-MSGID: =?utf-8?q?1770166589195250261?= From: Christoph Müllner Zvbb is part of the vector crypto extensions. This extension adds the following instructions: - vandn.[vv,vx] - vbrev.v - vbrev8.v - vrev8.v - vclz.v - vctz.v - vcpop.v - vrol.[vv,vx] - vror.[vv,vx,vi] - vwsll.[vv,vx,vi] bfd/ChangeLog: * elfxx-riscv.c (riscv_multi_subset_supports): Add instruction class support for Zvbb. (riscv_multi_subset_supports_ext): Likewise. gas/ChangeLog: * config/tc-riscv.c (validate_riscv_insn): Add 'l' as new format string directive. (riscv_ip): Likewise. * testsuite/gas/riscv/zvbb.d: New test. * testsuite/gas/riscv/zvbb.s: New test. include/ChangeLog: * opcode/riscv-opc.h (MATCH_VANDN_VV): New. (MASK_VANDN_VV): New. (MATCH_VANDN_VX): New. (MASK_VANDN_VX): New. (MATCH_VBREV8_V): New. (MASK_VBREV8_V): New. (MATCH_VBREV_V): New. (MASK_VBREV_V): New. (MATCH_VCLZ_V): New. (MASK_VCLZ_V): New. (MATCH_VCPOP_V): New. (MASK_VCPOP_V): New. (MATCH_VCTZ_V): New. (MASK_VCTZ_V): New. (MATCH_VREV8_V): New. (MASK_VREV8_V): New. (MATCH_VROL_VV): New. (MASK_VROL_VV): New. (MATCH_VROL_VX): New. (MASK_VROL_VX): New. (MATCH_VROR_VI): New. (MASK_VROR_VI): New. (MATCH_VROR_VV): New. (MASK_VROR_VV): New. (MATCH_VROR_VX): New. (MASK_VROR_VX): New. (MATCH_VWSLL_VI): New. (MASK_VWSLL_VI): New. (MATCH_VWSLL_VV): New. (MASK_VWSLL_VV): New. (MATCH_VWSLL_VX): New. (MASK_VWSLL_VX): New. (DECLARE_INSN): New. * opcode/riscv.h (EXTRACT_RVV_VI_UIMM6): New. (ENCODE_RVV_VI_UIMM6): New. (enum riscv_insn_class): Add instruction class for Zvbb. opcodes/ChangeLog: * riscv-dis.c (print_insn_args): Add 'l' as new format string directive. * riscv-opc.c: Add Zvbb instructions. Signed-off-by: Nathan Huckleberry Signed-off-by: Christoph Müllner --- bfd/elfxx-riscv.c | 5 ++++ gas/config/tc-riscv.c | 13 +++++++++ gas/testsuite/gas/riscv/zvbb.d | 43 +++++++++++++++++++++++++++++ gas/testsuite/gas/riscv/zvbb.s | 34 +++++++++++++++++++++++ include/opcode/riscv-opc.h | 50 ++++++++++++++++++++++++++++++++++ include/opcode/riscv.h | 5 ++++ opcodes/riscv-dis.c | 4 +++ opcodes/riscv-opc.c | 18 ++++++++++++ 8 files changed, 172 insertions(+) create mode 100644 gas/testsuite/gas/riscv/zvbb.d create mode 100644 gas/testsuite/gas/riscv/zvbb.s diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index 497709ef0db..21a4dc8ae8b 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1262,6 +1262,7 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] = {"zve64x", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zve64f", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zve64d", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zvbb", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl32b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl64b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl128b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, @@ -2427,6 +2428,8 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps, || riscv_subset_supports (rps, "zve64d") || riscv_subset_supports (rps, "zve64f") || riscv_subset_supports (rps, "zve32f")); + case INSN_CLASS_ZVBB: + return riscv_subset_supports (rps, "zvbb"); case INSN_CLASS_SVINVAL: return riscv_subset_supports (rps, "svinval"); case INSN_CLASS_H: @@ -2615,6 +2618,8 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps, return _("v' or `zve64x' or `zve32x"); case INSN_CLASS_ZVEF: return _("v' or `zve64d' or `zve64f' or `zve32f"); + case INSN_CLASS_ZVBB: + return _("zvbb"); case INSN_CLASS_SVINVAL: return "svinval"; case INSN_CLASS_H: diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c index 6bd3b2f198a..297bb9b2a81 100644 --- a/gas/config/tc-riscv.c +++ b/gas/config/tc-riscv.c @@ -1341,6 +1341,7 @@ validate_riscv_insn (const struct riscv_opcode *opc, int length) case 'i': case 'j': case 'k': USE_BITS (OP_MASK_VIMM, OP_SH_VIMM); break; + case 'l': used_bits |= ENCODE_RVV_VI_UIMM6 (-1U); break; case 'm': USE_BITS (OP_MASK_VMASK, OP_SH_VMASK); break; case 'M': break; /* Macro operand, must be a mask register. */ case 'T': break; /* Macro operand, must be a vector register. */ @@ -3069,6 +3070,18 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr, asarg = expr_parse_end; continue; + case 'l': /* 6-bit vector arith unsigned immediate */ + my_getExpression (imm_expr, asarg); + check_absolute_expr (ip, imm_expr, FALSE); + if (imm_expr->X_add_number < 0 + || imm_expr->X_add_number >= 64) + as_bad (_("bad value for vector immediate field, " + "value must be 0...63")); + ip->insn_opcode |= ENCODE_RVV_VI_UIMM6 (imm_expr->X_add_number); + imm_expr->X_op = O_absent; + asarg = expr_parse_end; + continue; + case 'm': /* optional vector mask */ if (*asarg == '\0') { diff --git a/gas/testsuite/gas/riscv/zvbb.d b/gas/testsuite/gas/riscv/zvbb.d new file mode 100644 index 00000000000..c6c9df5c681 --- /dev/null +++ b/gas/testsuite/gas/riscv/zvbb.d @@ -0,0 +1,43 @@ +#as: -march=rv64gc_zvbb +#objdump: -dr + +.*:[ ]+file format .* + + +Disassembly of section .text: +0+000 <.text>: +[ ]+[0-9a-f]+:[ ]+06860257[ ]+vandn.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+04860257[ ]+vandn.vv[ ]+v4,v8,v12,v0.t +[ ]+[0-9a-f]+:[ ]+0685c257[ ]+vandn.vx[ ]+v4,v8,a1 +[ ]+[0-9a-f]+:[ ]+0485c257[ ]+vandn.vx[ ]+v4,v8,a1,v0.t +[ ]+[0-9a-f]+:[ ]+4a852257[ ]+vbrev.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+48852257[ ]+vbrev.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+4a842257[ ]+vbrev8.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+48842257[ ]+vbrev8.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+4a84a257[ ]+vrev8.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+4884a257[ ]+vrev8.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+4a84a257[ ]+vrev8.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+4884a257[ ]+vrev8.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+4a862257[ ]+vclz.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+48862257[ ]+vclz.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+4a86a257[ ]+vctz.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+4886a257[ ]+vctz.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+4a872257[ ]+vcpop.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+48872257[ ]+vcpop.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+56860257[ ]+vrol.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+54860257[ ]+vrol.vv[ ]+v4,v8,v12,v0.t +[ ]+[0-9a-f]+:[ ]+5685c257[ ]+vrol.vx[ ]+v4,v8,a1 +[ ]+[0-9a-f]+:[ ]+5485c257[ ]+vrol.vx[ ]+v4,v8,a1,v0.t +[ ]+[0-9a-f]+:[ ]+52860257[ ]+vror.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+50860257[ ]+vror.vv[ ]+v4,v8,v12,v0.t +[ ]+[0-9a-f]+:[ ]+5285c257[ ]+vror.vx[ ]+v4,v8,a1 +[ ]+[0-9a-f]+:[ ]+5085c257[ ]+vror.vx[ ]+v4,v8,a1,v0.t +[ ]+[0-9a-f]+:[ ]+52803257[ ]+vror.vi[ ]+v4,v8,0 +[ ]+[0-9a-f]+:[ ]+548fb257[ ]+vror.vi[ ]+v4,v8,63,v0.t +[ ]+[0-9a-f]+:[ ]+d6860257[ ]+vwsll.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+d4860257[ ]+vwsll.vv[ ]+v4,v8,v12,v0.t +[ ]+[0-9a-f]+:[ ]+d685c257[ ]+vwsll.vx[ ]+v4,v8,a1 +[ ]+[0-9a-f]+:[ ]+d485c257[ ]+vwsll.vx[ ]+v4,v8,a1,v0.t +[ ]+[0-9a-f]+:[ ]+d6803257[ ]+vwsll.vi[ ]+v4,v8,0 +[ ]+[0-9a-f]+:[ ]+d48fb257[ ]+vwsll.vi[ ]+v4,v8,31,v0.t + diff --git a/gas/testsuite/gas/riscv/zvbb.s b/gas/testsuite/gas/riscv/zvbb.s new file mode 100644 index 00000000000..7a666ff959b --- /dev/null +++ b/gas/testsuite/gas/riscv/zvbb.s @@ -0,0 +1,34 @@ + vandn.vv v4, v8, v12 + vandn.vv v4, v8, v12, v0.t + vandn.vx v4, v8, a1 + vandn.vx v4, v8, a1, v0.t + vbrev.v v4, v8 + vbrev.v v4, v8, v0.t + vbrev8.v v4, v8 + vbrev8.v v4, v8, v0.t + vrev8.v v4, v8 + vrev8.v v4, v8, v0.t + vrev8.v v4, v8 + vrev8.v v4, v8, v0.t + vclz.v v4, v8 + vclz.v v4, v8, v0.t + vctz.v v4, v8 + vctz.v v4, v8, v0.t + vcpop.v v4, v8 + vcpop.v v4, v8, v0.t + vrol.vv v4, v8, v12 + vrol.vv v4, v8, v12, v0.t + vrol.vx v4, v8, a1 + vrol.vx v4, v8, a1, v0.t + vror.vv v4, v8, v12 + vror.vv v4, v8, v12, v0.t + vror.vx v4, v8, a1 + vror.vx v4, v8, a1, v0.t + vror.vi v4, v8, 0 + vror.vi v4, v8, 63, v0.t + vwsll.vv v4, v8, v12 + vwsll.vv v4, v8, v12, v0.t + vwsll.vx v4, v8, a1 + vwsll.vx v4, v8, a1, v0.t + vwsll.vi v4, v8, 0 + vwsll.vi v4, v8, 31, v0.t diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h index 3d5f6606d91..9003200d2d4 100644 --- a/include/opcode/riscv-opc.h +++ b/include/opcode/riscv-opc.h @@ -2121,6 +2121,39 @@ #define MASK_VDOTUVV 0xfc00707f #define MATCH_VFDOTVV 0xe4001057 #define MASK_VFDOTVV 0xfc00707f +/* Zvbb instructions. */ +#define MATCH_VANDN_VV 0x4000057 +#define MASK_VANDN_VV 0xfc00707f +#define MATCH_VANDN_VX 0x4004057 +#define MASK_VANDN_VX 0xfc00707f +#define MATCH_VBREV8_V 0x48042057 +#define MASK_VBREV8_V 0xfc0ff07f +#define MATCH_VBREV_V 0x48052057 +#define MASK_VBREV_V 0xfc0ff07f +#define MATCH_VCLZ_V 0x48062057 +#define MASK_VCLZ_V 0xfc0ff07f +#define MATCH_VCPOP_V 0x48072057 +#define MASK_VCPOP_V 0xfc0ff07f +#define MATCH_VCTZ_V 0x4806a057 +#define MASK_VCTZ_V 0xfc0ff07f +#define MATCH_VREV8_V 0x4804a057 +#define MASK_VREV8_V 0xfc0ff07f +#define MATCH_VROL_VV 0x54000057 +#define MASK_VROL_VV 0xfc00707f +#define MATCH_VROL_VX 0x54004057 +#define MASK_VROL_VX 0xfc00707f +#define MATCH_VROR_VI 0x50003057 +#define MASK_VROR_VI 0xf800707f +#define MATCH_VROR_VV 0x50000057 +#define MASK_VROR_VV 0xfc00707f +#define MATCH_VROR_VX 0x50004057 +#define MASK_VROR_VX 0xfc00707f +#define MATCH_VWSLL_VI 0xd4003057 +#define MASK_VWSLL_VI 0xfc00707f +#define MATCH_VWSLL_VV 0xd4000057 +#define MASK_VWSLL_VV 0xfc00707f +#define MATCH_VWSLL_VX 0xd4004057 +#define MASK_VWSLL_VX 0xfc00707f /* Svinval instruction. */ #define MATCH_SINVAL_VMA 0x16000073 #define MASK_SINVAL_VMA 0xfe007fff @@ -3230,6 +3263,23 @@ DECLARE_INSN(czero_nez, MATCH_CZERO_NEZ, MASK_CZERO_NEZ) /* Zawrs instructions. */ DECLARE_INSN(wrs_nto, MATCH_WRS_NTO, MASK_WRS_NTO) DECLARE_INSN(wrs_sto, MATCH_WRS_STO, MASK_WRS_STO) +/* Zvbb instructions. */ +DECLARE_INSN(vandn_vv, MATCH_VANDN_VV, MASK_VANDN_VV) +DECLARE_INSN(vandn_vx, MATCH_VANDN_VX, MASK_VANDN_VX) +DECLARE_INSN(vbrev8_v, MATCH_VBREV8_V, MASK_VBREV8_V) +DECLARE_INSN(vbrev_v, MATCH_VBREV_V, MASK_VBREV_V) +DECLARE_INSN(vclz_v, MATCH_VCLZ_V, MASK_VCLZ_V) +DECLARE_INSN(vcpop_v, MATCH_VCPOP_V, MASK_VCPOP_V) +DECLARE_INSN(vctz_v, MATCH_VCTZ_V, MASK_VCTZ_V) +DECLARE_INSN(vrev8_v, MATCH_VREV8_V, MASK_VREV8_V) +DECLARE_INSN(vrol_vv, MATCH_VROL_VV, MASK_VROL_VV) +DECLARE_INSN(vrol_vx, MATCH_VROL_VX, MASK_VROL_VX) +DECLARE_INSN(vror_vi, MATCH_VROR_VI, MASK_VROR_VI) +DECLARE_INSN(vror_vv, MATCH_VROR_VV, MASK_VROR_VV) +DECLARE_INSN(vror_vx, MATCH_VROR_VX, MASK_VROR_VX) +DECLARE_INSN(vwsll_vi, MATCH_VWSLL_VI, MASK_VWSLL_VI) +DECLARE_INSN(vwsll_vv, MATCH_VWSLL_VV, MASK_VWSLL_VV) +DECLARE_INSN(vwsll_vx, MATCH_VWSLL_VX, MASK_VWSLL_VX) /* Vendor-specific (T-Head) XTheadBa instructions. */ DECLARE_INSN(th_addsl, MATCH_TH_ADDSL, MASK_TH_ADDSL) /* Vendor-specific (T-Head) XTheadBb instructions. */ diff --git a/include/opcode/riscv.h b/include/opcode/riscv.h index e96b95782c4..487856478f3 100644 --- a/include/opcode/riscv.h +++ b/include/opcode/riscv.h @@ -100,6 +100,8 @@ static inline unsigned int riscv_insn_length (insn_t insn) (RV_X(x, 15, 5) | (-RV_X(x, 19, 1) << 5)) #define EXTRACT_RVV_VI_UIMM(x) \ (RV_X(x, 15, 5)) +#define EXTRACT_RVV_VI_UIMM6(x) \ + (RV_X(x, 15, 5) | (RV_X(x, 26, 1) << 5)) #define EXTRACT_RVV_OFFSET(x) \ (RV_X(x, 29, 3)) #define EXTRACT_RVV_VB_IMM(x) \ @@ -151,6 +153,8 @@ static inline unsigned int riscv_insn_length (insn_t insn) (RV_X(x, 0, 10) << 20) #define ENCODE_RVV_VC_IMM(x) \ (RV_X(x, 0, 11) << 20) +#define ENCODE_RVV_VI_UIMM6(x) \ + (RV_X(x, 0, 5) << 15 | RV_X(x, 5, 1) << 26) #define VALID_ITYPE_IMM(x) (EXTRACT_ITYPE_IMM(ENCODE_ITYPE_IMM(x)) == (x)) #define VALID_STYPE_IMM(x) (EXTRACT_STYPE_IMM(ENCODE_STYPE_IMM(x)) == (x)) @@ -410,6 +414,7 @@ enum riscv_insn_class INSN_CLASS_ZKND_OR_ZKNE, INSN_CLASS_V, INSN_CLASS_ZVEF, + INSN_CLASS_ZVBB, INSN_CLASS_SVINVAL, INSN_CLASS_ZICBOM, INSN_CLASS_ZICBOP, diff --git a/opcodes/riscv-dis.c b/opcodes/riscv-dis.c index 576cd247884..827d9b67437 100644 --- a/opcodes/riscv-dis.c +++ b/opcodes/riscv-dis.c @@ -400,6 +400,10 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info print (info->stream, dis_style_immediate, "%d", (int)EXTRACT_RVV_OFFSET (l)); break; + case 'l': + print (info->stream, dis_style_immediate, "%d", + (int)EXTRACT_RVV_VI_UIMM6 (l)); + break; case 'm': if (!EXTRACT_OPERAND (VMASK, l)) { diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c index c607e095764..6e8313bac16 100644 --- a/opcodes/riscv-opc.c +++ b/opcodes/riscv-opc.c @@ -1884,6 +1884,24 @@ const struct riscv_opcode riscv_opcodes[] = {"vmv4r.v", 0, INSN_CLASS_V, "Vd,Vt", MATCH_VMV4RV, MASK_VMV4RV, match_opcode, 0}, {"vmv8r.v", 0, INSN_CLASS_V, "Vd,Vt", MATCH_VMV8RV, MASK_VMV8RV, match_opcode, 0}, +/* Zvbb instructions. */ +{"vandn.vv", 0, INSN_CLASS_ZVBB, "Vd,Vt,VsVm", MATCH_VANDN_VV, MASK_VANDN_VV, match_opcode, 0}, +{"vandn.vx", 0, INSN_CLASS_ZVBB, "Vd,Vt,sVm", MATCH_VANDN_VX, MASK_VANDN_VX, match_opcode, 0}, +{"vbrev.v", 0, INSN_CLASS_ZVBB, "Vd,VtVm", MATCH_VBREV_V, MASK_VBREV_V, match_opcode, 0}, +{"vbrev8.v", 0, INSN_CLASS_ZVBB, "Vd,VtVm", MATCH_VBREV8_V, MASK_VBREV8_V, match_opcode, 0}, +{"vrev8.v", 0, INSN_CLASS_ZVBB, "Vd,VtVm", MATCH_VREV8_V, MASK_VREV8_V, match_opcode, 0}, +{"vclz.v", 0, INSN_CLASS_ZVBB, "Vd,VtVm", MATCH_VCLZ_V, MASK_VCLZ_V, match_opcode, 0}, +{"vctz.v", 0, INSN_CLASS_ZVBB, "Vd,VtVm", MATCH_VCTZ_V, MASK_VCTZ_V, match_opcode, 0}, +{"vcpop.v", 0, INSN_CLASS_ZVBB, "Vd,VtVm", MATCH_VCPOP_V, MASK_VCPOP_V, match_opcode, 0}, +{"vrol.vv", 0, INSN_CLASS_ZVBB, "Vd,Vt,VsVm", MATCH_VROL_VV, MASK_VROL_VV, match_opcode, 0}, +{"vrol.vx", 0, INSN_CLASS_ZVBB, "Vd,Vt,sVm", MATCH_VROL_VX, MASK_VROL_VX, match_opcode, 0}, +{"vror.vv", 0, INSN_CLASS_ZVBB, "Vd,Vt,VsVm", MATCH_VROR_VV, MASK_VROR_VV, match_opcode, 0}, +{"vror.vx", 0, INSN_CLASS_ZVBB, "Vd,Vt,sVm", MATCH_VROR_VX, MASK_VROR_VX, match_opcode, 0}, +{"vror.vi", 0, INSN_CLASS_ZVBB, "Vd,Vt,VlVm", MATCH_VROR_VI, MASK_VROR_VI, match_opcode, 0}, +{"vwsll.vv", 0, INSN_CLASS_ZVBB, "Vd,Vt,VsVm", MATCH_VWSLL_VV, MASK_VWSLL_VV, match_opcode, 0}, +{"vwsll.vx", 0, INSN_CLASS_ZVBB, "Vd,Vt,sVm", MATCH_VWSLL_VX, MASK_VWSLL_VX, match_opcode, 0}, +{"vwsll.vi", 0, INSN_CLASS_ZVBB, "Vd,Vt,VjVm", MATCH_VWSLL_VI, MASK_VWSLL_VI, match_opcode, 0}, + /* Supervisor instructions. */ {"csrr", 0, INSN_CLASS_ZICSR, "d,E", MATCH_CSRRS, MASK_CSRRS|MASK_RS1, match_opcode, INSN_ALIAS }, {"csrw", 0, INSN_CLASS_ZICSR, "E,s", MATCH_CSRRW, MASK_CSRRW|MASK_RD, match_opcode, INSN_ALIAS }, From patchwork Fri Jun 30 21:57:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christoph_M=C3=BCllner?= X-Patchwork-Id: 114888 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10680422vqr; Fri, 30 Jun 2023 14:57:46 -0700 (PDT) X-Google-Smtp-Source: APBJJlH79QmRKRu3oFFy1U/a8w/qEU9rpAO6y8NEp0kyL7Yjn8TLVVJq8DsJUI7dt2yl8yEwFqbM X-Received: by 2002:a17:906:944e:b0:988:bb33:53a8 with SMTP id z14-20020a170906944e00b00988bb3353a8mr2652489ejx.9.1688162266784; Fri, 30 Jun 2023 14:57:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688162266; cv=none; d=google.com; s=arc-20160816; b=qGXQvQJzafi6cmeMUP1b92kTgh3Wi7Xhu97P0QPkvHYW1Ei/WgAyDA6lL+n4snbFfR +91fuFzDAr2z9PJMPokhvHRZuP00e6+PZDUOFxCnK5eg4/2Dh1CTBNDcC1SM9ch8vvQ1 tgbvNr/GusN/Q1dUkJMVBSwxBjo9NYf7jHcgkdQaoZDL/m7bKCjocxHC6/L0HzuLa75M sSgVDlkYhf0+Z7Ud0mNG6aUO9LzoicgwpwSSq0P7P7Ac7QMLPOjj2oiWD15DGQA1G90w U0oO4aRsK/XyavUNDEbnel1O+qpiNWC6usJto7LrZzarHOnHUtcfh1NiUYPNWrIgnbv3 g5Pg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=/TgTpdqAPD+CzFhwNVKHZYcUFhg145riZhWhx6V/G7Y=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=apG8JEvNZ6YOig+rozKe/01xYycJhcrOlv/H4atHpRbQLodLU90YMKKJjSd6pMpx6i yh7C5CrR6KC2NhNa1v7OE7KgW/cmf8VwT1bGkieobIDVE6uhUgqDNm0iA/fKD0ct+RA3 wWwmHkSq95k47nOu5jMC8OrQDD7mLmKQYug2tMdqd86MFpBeiuQ8Q90kY4tsOuZBwPAW t0JiC0aFMwSw6oJ2/5TXmqeaMOUNHZb3o9ciRIyTHYi5mW1JPA5V2waz283MTis7Z4id +pkENIzmfjJm6noKaUYmpHHkoBVDU4FHP14MqrFh//+M4j8TcaN0Najf4TAJ6Rw2LNxs cpzg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=bYYPFgj0; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id m8-20020a17090607c800b009828298ddd5si8921929ejc.259.2023.06.30.14.57.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:57:46 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=bYYPFgj0; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B90043886C49 for ; Fri, 30 Jun 2023 21:57:41 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) by sourceware.org (Postfix) with ESMTPS id AC848388300D for ; Fri, 30 Jun 2023 21:57:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AC848388300D Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=vrull.eu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=vrull.eu Received: by mail-lf1-x12d.google.com with SMTP id 2adb3069b0e04-4fb960b7c9dso3840138e87.0 for ; Fri, 30 Jun 2023 14:57:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688162253; x=1690754253; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/TgTpdqAPD+CzFhwNVKHZYcUFhg145riZhWhx6V/G7Y=; b=bYYPFgj0EhQfKwYPNHxaFYTsXjXHjOvO/ItMh0tJSUduYNVJMM13PuKbr/b2PFI2YH ljd6y8u7WZgjp8kAuW8+/euh92mUsvrkaMr8lW633dP7CJiF7/AAb7iOWZRrHjgib1c8 yrImfTGtnuvwHvgVnHsEIJ6sHxd/V/CLVF2FSsskOROkZpbIQ0dv8tPIzRSKOKrDSERf /7O8IkkV8dfupCpmVSTZjOBDgmEPvu1fklnbhjvJJ4G5GciZffDiBe8tqLsivmsp1znp Vv9duwfudxy/kbnpKdVmEsjjE7PByMnvStaFk1AnL8GEqmNmat4TsyDQBSjzf32llDFw roiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688162253; x=1690754253; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/TgTpdqAPD+CzFhwNVKHZYcUFhg145riZhWhx6V/G7Y=; b=ipMBu2R5tteBv6VP/h17JNEv7ZWlLbhbAZPgDF8fz8EncfkOGifh+t4i9QNqRQ8NTd QljiNddTA14pU4WxItOY4r/eg08EwemfgUvQhV/pIPk0GAr0DmhAy4NIdrkZqc6essJp GsU+xO9CuU+93UTOYxtDX4A8if7eVO/eLdii2hZnaU6mJnk2RzqC7Ip83511OQUfe/SK UibhzwnRlnS5f/GvcblzjQo8sTVwM6ooywjZtLPhVxGZpg0a+HeDyzkDoav6pzE676ne YiPES9R+AH2BMEjszctZZI0Db3vYfrG3kng8+7bMgdJfSzhdnJUhUhrE+dtftijUI3Gl zCwQ== X-Gm-Message-State: ABy/qLYq2v8IcG+tXcMKEvZCC9zA/7RiNLR7xiAgCntNpKwaB3UACe3V 0S0YbPSK11JmOQxIaIwMuuyk3QMHKSZnZp7cL3k= X-Received: by 2002:a05:6512:32ba:b0:4fb:8492:83fb with SMTP id q26-20020a05651232ba00b004fb849283fbmr2880296lfe.68.1688162252727; Fri, 30 Jun 2023 14:57:32 -0700 (PDT) Received: from beast.fritz.box (62-178-148-172.cable.dynamic.surfer.at. [62.178.148.172]) by smtp.gmail.com with ESMTPSA id q7-20020aa7d447000000b005183ce42da9sm7052132edr.18.2023.06.30.14.57.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:57:32 -0700 (PDT) From: Christoph Muellner To: binutils@sourceware.org, Nathan Huckleberry , nhuck@pmull.org, Jeff Law , Nelson Chu , Andrew Waterman , Palmer Dabbelt , Jim Wilson , Philipp Tomsich Cc: =?utf-8?q?Christoph_M=C3=BCllner?= Subject: [PATCH v5 02/15] RISC-V: Add support for the Zvbc extension Date: Fri, 30 Jun 2023 23:57:12 +0200 Message-ID: <20230630215725.3725876-3-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230630215725.3725876-1-christoph.muellner@vrull.eu> References: <20230630215725.3725876-1-christoph.muellner@vrull.eu> MIME-Version: 1.0 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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.29 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 Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770166437330050528?= X-GMAIL-MSGID: =?utf-8?q?1770166437330050528?= From: Nathan Huckleberry via Binutils Zvbc is part of the crypto vector extensions. This extension adds the following instructions: - vclmul.[vv,vx] - vclmulh.[vv,vx] bfd/ChangeLog: * elfxx-riscv.c (riscv_multi_subset_supports): Add instruction class support for Zvbc. (riscv_multi_subset_supports_ext): Likewise. gas/ChangeLog: * testsuite/gas/riscv/zvbc.d: New test. * testsuite/gas/riscv/zvbc.s: New test. include/ChangeLog: * opcode/riscv-opc.h (MATCH_VCLMUL_VV): New. (MASK_VCLMUL_VV): New. (MATCH_VCLMUL_VX): New. (MASK_VCLMUL_VX): New. (MATCH_VCLMULH_VV): New. (MASK_VCLMULH_VV): New. (MATCH_VCLMULH_VX): New. (MASK_VCLMULH_VX): New. (DECLARE_INSN): New. * opcode/riscv.h (enum riscv_insn_class): Add instruction class support for Zvbc. opcodes/ChangeLog: * riscv-opc.c: Add Zvbc instruction. Signed-off-by: Nathan Huckleberry Signed-off-by: Christoph Müllner --- bfd/elfxx-riscv.c | 5 +++++ gas/testsuite/gas/riscv/zvbc.d | 16 ++++++++++++++++ gas/testsuite/gas/riscv/zvbc.s | 8 ++++++++ include/opcode/riscv-opc.h | 14 ++++++++++++++ include/opcode/riscv.h | 1 + opcodes/riscv-opc.c | 6 ++++++ 6 files changed, 50 insertions(+) create mode 100644 gas/testsuite/gas/riscv/zvbc.d create mode 100644 gas/testsuite/gas/riscv/zvbc.s diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index 21a4dc8ae8b..295e0d2c942 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1263,6 +1263,7 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] = {"zve64f", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zve64d", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvbb", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zvbc", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl32b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl64b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl128b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, @@ -2430,6 +2431,8 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps, || riscv_subset_supports (rps, "zve32f")); case INSN_CLASS_ZVBB: return riscv_subset_supports (rps, "zvbb"); + case INSN_CLASS_ZVBC: + return riscv_subset_supports (rps, "zvbc"); case INSN_CLASS_SVINVAL: return riscv_subset_supports (rps, "svinval"); case INSN_CLASS_H: @@ -2620,6 +2623,8 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps, return _("v' or `zve64d' or `zve64f' or `zve32f"); case INSN_CLASS_ZVBB: return _("zvbb"); + case INSN_CLASS_ZVBC: + return _("zvbc"); case INSN_CLASS_SVINVAL: return "svinval"; case INSN_CLASS_H: diff --git a/gas/testsuite/gas/riscv/zvbc.d b/gas/testsuite/gas/riscv/zvbc.d new file mode 100644 index 00000000000..d9213b25b01 --- /dev/null +++ b/gas/testsuite/gas/riscv/zvbc.d @@ -0,0 +1,16 @@ +#as: -march=rv64gc_zvbc +#objdump: -dr + +.*:[ ]+file format .* + + +Disassembly of section .text: +0+000 <.text>: +[ ]+[0-9a-f]+:[ ]+32862257[ ]+vclmul.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+30862257[ ]+vclmul.vv[ ]+v4,v8,v12,v0.t +[ ]+[0-9a-f]+:[ ]+3285e257[ ]+vclmul.vx[ ]+v4,v8,a1 +[ ]+[0-9a-f]+:[ ]+3085e257[ ]+vclmul.vx[ ]+v4,v8,a1,v0.t +[ ]+[0-9a-f]+:[ ]+36862257[ ]+vclmulh.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+34862257[ ]+vclmulh.vv[ ]+v4,v8,v12,v0.t +[ ]+[0-9a-f]+:[ ]+3685e257[ ]+vclmulh.vx[ ]+v4,v8,a1 +[ ]+[0-9a-f]+:[ ]+3485e257[ ]+vclmulh.vx[ ]+v4,v8,a1,v0.t diff --git a/gas/testsuite/gas/riscv/zvbc.s b/gas/testsuite/gas/riscv/zvbc.s new file mode 100644 index 00000000000..c302d1eb011 --- /dev/null +++ b/gas/testsuite/gas/riscv/zvbc.s @@ -0,0 +1,8 @@ + vclmul.vv v4, v8, v12 + vclmul.vv v4, v8, v12, v0.t + vclmul.vx v4, v8, a1 + vclmul.vx v4, v8, a1, v0.t + vclmulh.vv v4, v8, v12 + vclmulh.vv v4, v8, v12, v0.t + vclmulh.vx v4, v8, a1 + vclmulh.vx v4, v8, a1, v0.t diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h index 9003200d2d4..6102feaa557 100644 --- a/include/opcode/riscv-opc.h +++ b/include/opcode/riscv-opc.h @@ -2154,6 +2154,15 @@ #define MASK_VWSLL_VV 0xfc00707f #define MATCH_VWSLL_VX 0xd4004057 #define MASK_VWSLL_VX 0xfc00707f +/* Zvbc instructions. */ +#define MATCH_VCLMUL_VV 0x30002057 +#define MASK_VCLMUL_VV 0xfc00707f +#define MATCH_VCLMUL_VX 0x30006057 +#define MASK_VCLMUL_VX 0xfc00707f +#define MATCH_VCLMULH_VV 0x34002057 +#define MASK_VCLMULH_VV 0xfc00707f +#define MATCH_VCLMULH_VX 0x34006057 +#define MASK_VCLMULH_VX 0xfc00707f /* Svinval instruction. */ #define MATCH_SINVAL_VMA 0x16000073 #define MASK_SINVAL_VMA 0xfe007fff @@ -3280,6 +3289,11 @@ DECLARE_INSN(vror_vx, MATCH_VROR_VX, MASK_VROR_VX) DECLARE_INSN(vwsll_vi, MATCH_VWSLL_VI, MASK_VWSLL_VI) DECLARE_INSN(vwsll_vv, MATCH_VWSLL_VV, MASK_VWSLL_VV) DECLARE_INSN(vwsll_vx, MATCH_VWSLL_VX, MASK_VWSLL_VX) +/* Zvbc instructions. */ +DECLARE_INSN(vclmul_vv, MATCH_VCLMUL_VV, MASK_VCLMUL_VV) +DECLARE_INSN(vclmul_vx, MATCH_VCLMUL_VX, MASK_VCLMUL_VX) +DECLARE_INSN(vclmulh_vv, MATCH_VCLMULH_VV, MASK_VCLMULH_VV) +DECLARE_INSN(vclmulh_vx, MATCH_VCLMULH_VX, MASK_VCLMULH_VX) /* Vendor-specific (T-Head) XTheadBa instructions. */ DECLARE_INSN(th_addsl, MATCH_TH_ADDSL, MASK_TH_ADDSL) /* Vendor-specific (T-Head) XTheadBb instructions. */ diff --git a/include/opcode/riscv.h b/include/opcode/riscv.h index 487856478f3..783b1c01e52 100644 --- a/include/opcode/riscv.h +++ b/include/opcode/riscv.h @@ -415,6 +415,7 @@ enum riscv_insn_class INSN_CLASS_V, INSN_CLASS_ZVEF, INSN_CLASS_ZVBB, + INSN_CLASS_ZVBC, INSN_CLASS_SVINVAL, INSN_CLASS_ZICBOM, INSN_CLASS_ZICBOP, diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c index 6e8313bac16..19a72903510 100644 --- a/opcodes/riscv-opc.c +++ b/opcodes/riscv-opc.c @@ -1902,6 +1902,12 @@ const struct riscv_opcode riscv_opcodes[] = {"vwsll.vx", 0, INSN_CLASS_ZVBB, "Vd,Vt,sVm", MATCH_VWSLL_VX, MASK_VWSLL_VX, match_opcode, 0}, {"vwsll.vi", 0, INSN_CLASS_ZVBB, "Vd,Vt,VjVm", MATCH_VWSLL_VI, MASK_VWSLL_VI, match_opcode, 0}, +/* Zvbc instructions. */ +{"vclmul.vv", 0, INSN_CLASS_ZVBC, "Vd,Vt,VsVm", MATCH_VCLMUL_VV, MASK_VCLMUL_VV, match_opcode, 0}, +{"vclmul.vx", 0, INSN_CLASS_ZVBC, "Vd,Vt,sVm", MATCH_VCLMUL_VX, MASK_VCLMUL_VX, match_opcode, 0}, +{"vclmulh.vv", 0, INSN_CLASS_ZVBC, "Vd,Vt,VsVm", MATCH_VCLMULH_VV, MASK_VCLMULH_VV, match_opcode, 0}, +{"vclmulh.vx", 0, INSN_CLASS_ZVBC, "Vd,Vt,sVm", MATCH_VCLMULH_VX, MASK_VCLMULH_VX, match_opcode, 0}, + /* Supervisor instructions. */ {"csrr", 0, INSN_CLASS_ZICSR, "d,E", MATCH_CSRRS, MASK_CSRRS|MASK_RS1, match_opcode, INSN_ALIAS }, {"csrw", 0, INSN_CLASS_ZICSR, "E,s", MATCH_CSRRW, MASK_CSRRW|MASK_RD, match_opcode, INSN_ALIAS }, From patchwork Fri Jun 30 21:57:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christoph_M=C3=BCllner?= X-Patchwork-Id: 114896 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10683247vqr; Fri, 30 Jun 2023 15:02:49 -0700 (PDT) X-Google-Smtp-Source: APBJJlE/lN91ooW3Q9f9OHumG6I4MIYbo0pIzf5+ywOyX8yQA6L4tSda7I/+pAEjfb71JaAcjPyl X-Received: by 2002:a05:6402:548:b0:51d:e975:be9a with SMTP id i8-20020a056402054800b0051de975be9amr2380005edx.39.1688162568951; Fri, 30 Jun 2023 15:02:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688162568; cv=none; d=google.com; s=arc-20160816; b=H0uBGj2OTUh2V0pIQ2ljfZd1R64ONEUGDsVmcL/h/7dUv52AO50yYCChX8/+6upte/ soEdpRu71BaLkpIj3aKZlLCHXt43RKgzJjQoVcbZMb2xLSHN9kF0/ls4iWg47FNBGY6f 8POiyIxt/TEZ83gWTTbz0rzYrJdxaeby+FvWYD0HUB7mmRI6c8l3fsRprHdymHa0uI+g Hj5+iVgitEGI42OAc26/BB9+2PvXuXWT///wqNnvvrCXVxufadRNP22w0XlF3IVXfsy0 EFM0HxbiPV8ohEuDQEoP/rPqjsDBTa1bceS/JigDxMMkvzcN3bev4u0TkMamMPcC3tpZ 5KdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=n4/Faq9B64kWHtZB7nwDjQ2LDuAm3Lvaq0Ks8LiHAjo=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=trrFxUw2mId35uBJJjhPTAAieiQu06WBzOQGtdOZWEaRtXsi1EwvabGFreFJQpAzBo 2814St/4VUGBKGgcRA9URvhIf1quLnW5AHR9Ul8GTw0n9W7lU1jDfkmDt6amIG6NBZTs juuUC+mR50HeKE/kqMW1zoUlfnAdMZTRw46NDa2MmSB38I2j99nyznJaU2jvy6JXewjF b3iAJYkNt3lCGsGnAS0Gl0Z/lgmGzFCy0Cvlvg40XUBJ29WjRcsIw15wmiNSZvqG95m2 F0cZ9MjrvDIc0slpW/o+wIIWj1yv9C1bg4ubNhSA/qDS3h0kVqZvQ3fNYLiQUPNMUCik jgYQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=Y31+v8d8; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id p15-20020a056402074f00b0051db47e7befsi4017985edy.380.2023.06.30.15.02.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 15:02:48 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=Y31+v8d8; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 69415395B803 for ; Fri, 30 Jun 2023 21:58:53 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) by sourceware.org (Postfix) with ESMTPS id 8F3003883011 for ; Fri, 30 Jun 2023 21:57:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8F3003883011 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=vrull.eu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=vrull.eu Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-3fbc12181b6so22536355e9.2 for ; Fri, 30 Jun 2023 14:57:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688162254; x=1690754254; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=n4/Faq9B64kWHtZB7nwDjQ2LDuAm3Lvaq0Ks8LiHAjo=; b=Y31+v8d8olI65cdXDzRKoiFC5oFlKQBOGSCnTX855Qxay4QUbSuFS/m6yfLfcyd9gH pDAq4MKgMZvQyFfegXl5+/OB7YtfmwKwNvIrFvIZQn3IALZ0yb1739yZ70IaRvCIXsO7 P6gqYZYqp8KwuA6rpgmhEZjSTnIt+KQhEA0sKZveFPhsxD+g82J8GYXgNafvIwNylcYC TnLAaIMvk3NO5YFKCA40bN8Lam01MfwU3Fx1MGylGDwdCTQAc3PoNphJztnGVf9SCSd+ ku6uUXNOjoyumDPs8kgJ1MmUilC2MyJNtCddDFg8lYlE+JPSV0r+GOyj5rugc7qEGEvS k7zA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688162254; x=1690754254; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=n4/Faq9B64kWHtZB7nwDjQ2LDuAm3Lvaq0Ks8LiHAjo=; b=IGu2LvSVp2HySZUiN1VMLo7aHXiz5zRB4IszrHnbFrSHYr5LHb1ShwZjXq9usi2teR U7GMa809cFLxPrvjSRWwAspuRHYqDSjQhzR+PDdxLX/siDIJ/i/ISjGjsRuiIl8aVlfS ZT4k2a1FJxVat7+Wge0D2QzeGXj0wTAlbWMaMM/mvHxW6oVDZFkBhCIRfD1xztRron4u f0n/aZpaJutTL9BWXFYdv6j1bxq+AutJJbuOdHgboEX+BznuzPmm0CYxteRY+pvO6HS1 5xSS7WHEGoDbkNwthcAbiQqK5VBOalejymTt+BqJK3VC6QRMGDy/USqLUgVgo8flQzwz yHFw== X-Gm-Message-State: ABy/qLadmoFpz2bg8LBSulSHGcZaHFtXmR5W8UIcjjn8qXqG2qFdaK+F roKrgIqVPy9T+OCMs3/qvD8YMQ3kVo1tBZFRG2E= X-Received: by 2002:adf:f348:0:b0:313:f5e9:13ec with SMTP id e8-20020adff348000000b00313f5e913ecmr3034737wrp.68.1688162253832; Fri, 30 Jun 2023 14:57:33 -0700 (PDT) Received: from beast.fritz.box (62-178-148-172.cable.dynamic.surfer.at. [62.178.148.172]) by smtp.gmail.com with ESMTPSA id q7-20020aa7d447000000b005183ce42da9sm7052132edr.18.2023.06.30.14.57.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:57:33 -0700 (PDT) From: Christoph Muellner To: binutils@sourceware.org, Nathan Huckleberry , nhuck@pmull.org, Jeff Law , Nelson Chu , Andrew Waterman , Palmer Dabbelt , Jim Wilson , Philipp Tomsich Cc: =?utf-8?q?Christoph_M=C3=BCllner?= Subject: [PATCH v5 03/15] RISC-V: Add support for the Zvkg ISA extension Date: Fri, 30 Jun 2023 23:57:13 +0200 Message-ID: <20230630215725.3725876-4-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230630215725.3725876-1-christoph.muellner@vrull.eu> References: <20230630215725.3725876-1-christoph.muellner@vrull.eu> MIME-Version: 1.0 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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.29 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 Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770166753816073320?= X-GMAIL-MSGID: =?utf-8?q?1770166753816073320?= From: Christoph Müllner Zvkg is part of the vector crypto extensions. This extension adds the following instructions: - vghsh.vv - vgmul.vv bfd/ChangeLog: * elfxx-riscv.c (riscv_multi_subset_supports): Add instruction class support for Zvkg. (riscv_multi_subset_supports_ext): Likewise. gas/ChangeLog: * testsuite/gas/riscv/zvkg.d: New test. * testsuite/gas/riscv/zvkg.s: New test. include/ChangeLog: * opcode/riscv-opc.h (MATCH_VGHSH_VV): New. (MASK_VGHSH_VV): New. (MATCH_VGMUL_VV): New. (MASK_VGMUL_VV): New. (DECLARE_INSN): New. * opcode/riscv.h (enum riscv_insn_class): Add instruction class support for Zvkg. opcodes/ChangeLog: * riscv-opc.c: Add Zvkg instructions. Signed-off-by: Nathan Huckleberry Signed-off-by: Christoph Müllner --- bfd/elfxx-riscv.c | 5 +++++ gas/testsuite/gas/riscv/zvkg.d | 10 ++++++++++ gas/testsuite/gas/riscv/zvkg.s | 2 ++ include/opcode/riscv-opc.h | 8 ++++++++ include/opcode/riscv.h | 1 + opcodes/riscv-opc.c | 4 ++++ 6 files changed, 30 insertions(+) create mode 100644 gas/testsuite/gas/riscv/zvkg.d create mode 100644 gas/testsuite/gas/riscv/zvkg.s diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index 295e0d2c942..84461490835 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1264,6 +1264,7 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] = {"zve64d", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvbb", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvbc", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zvkg", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl32b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl64b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl128b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, @@ -2433,6 +2434,8 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps, return riscv_subset_supports (rps, "zvbb"); case INSN_CLASS_ZVBC: return riscv_subset_supports (rps, "zvbc"); + case INSN_CLASS_ZVKG: + return riscv_subset_supports (rps, "zvkg"); case INSN_CLASS_SVINVAL: return riscv_subset_supports (rps, "svinval"); case INSN_CLASS_H: @@ -2625,6 +2628,8 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps, return _("zvbb"); case INSN_CLASS_ZVBC: return _("zvbc"); + case INSN_CLASS_ZVKG: + return _("zvkg"); case INSN_CLASS_SVINVAL: return "svinval"; case INSN_CLASS_H: diff --git a/gas/testsuite/gas/riscv/zvkg.d b/gas/testsuite/gas/riscv/zvkg.d new file mode 100644 index 00000000000..7f898d377b2 --- /dev/null +++ b/gas/testsuite/gas/riscv/zvkg.d @@ -0,0 +1,10 @@ +#as: -march=rv64gc_zvkg +#objdump: -dr + +.*:[ ]+file format .* + + +Disassembly of section .text: +0+000 <.text>: +[ ]+[0-9a-f]+:[ ]+b2862277[ ]+vghsh.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+a2c8a277[ ]+vgmul.vv[ ]+v4,v12 diff --git a/gas/testsuite/gas/riscv/zvkg.s b/gas/testsuite/gas/riscv/zvkg.s new file mode 100644 index 00000000000..b802d6add39 --- /dev/null +++ b/gas/testsuite/gas/riscv/zvkg.s @@ -0,0 +1,2 @@ + vghsh.vv v4, v8, v12 + vgmul.vv v4, v12 diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h index 6102feaa557..8b4b3b2662c 100644 --- a/include/opcode/riscv-opc.h +++ b/include/opcode/riscv-opc.h @@ -2163,6 +2163,11 @@ #define MASK_VCLMULH_VV 0xfc00707f #define MATCH_VCLMULH_VX 0x34006057 #define MASK_VCLMULH_VX 0xfc00707f +/* Zvkg instructions. */ +#define MATCH_VGHSH_VV 0xb2002077 +#define MASK_VGHSH_VV 0xfe00707f +#define MATCH_VGMUL_VV 0xa208a077 +#define MASK_VGMUL_VV 0xfe0ff07f /* Svinval instruction. */ #define MATCH_SINVAL_VMA 0x16000073 #define MASK_SINVAL_VMA 0xfe007fff @@ -3294,6 +3299,9 @@ DECLARE_INSN(vclmul_vv, MATCH_VCLMUL_VV, MASK_VCLMUL_VV) DECLARE_INSN(vclmul_vx, MATCH_VCLMUL_VX, MASK_VCLMUL_VX) DECLARE_INSN(vclmulh_vv, MATCH_VCLMULH_VV, MASK_VCLMULH_VV) DECLARE_INSN(vclmulh_vx, MATCH_VCLMULH_VX, MASK_VCLMULH_VX) +/* Zvkg instructions. */ +DECLARE_INSN(vghsh_vv, MATCH_VGHSH_VV, MASK_VGHSH_VV) +DECLARE_INSN(vgmul_vv, MATCH_VGMUL_VV, MASK_VGMUL_VV) /* Vendor-specific (T-Head) XTheadBa instructions. */ DECLARE_INSN(th_addsl, MATCH_TH_ADDSL, MASK_TH_ADDSL) /* Vendor-specific (T-Head) XTheadBb instructions. */ diff --git a/include/opcode/riscv.h b/include/opcode/riscv.h index 783b1c01e52..b2098867a19 100644 --- a/include/opcode/riscv.h +++ b/include/opcode/riscv.h @@ -416,6 +416,7 @@ enum riscv_insn_class INSN_CLASS_ZVEF, INSN_CLASS_ZVBB, INSN_CLASS_ZVBC, + INSN_CLASS_ZVKG, INSN_CLASS_SVINVAL, INSN_CLASS_ZICBOM, INSN_CLASS_ZICBOP, diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c index 19a72903510..b2aadb1bc79 100644 --- a/opcodes/riscv-opc.c +++ b/opcodes/riscv-opc.c @@ -1908,6 +1908,10 @@ const struct riscv_opcode riscv_opcodes[] = {"vclmulh.vv", 0, INSN_CLASS_ZVBC, "Vd,Vt,VsVm", MATCH_VCLMULH_VV, MASK_VCLMULH_VV, match_opcode, 0}, {"vclmulh.vx", 0, INSN_CLASS_ZVBC, "Vd,Vt,sVm", MATCH_VCLMULH_VX, MASK_VCLMULH_VX, match_opcode, 0}, +/* Zvkg instructions. */ +{"vghsh.vv", 0, INSN_CLASS_ZVKG, "Vd,Vt,Vs", MATCH_VGHSH_VV, MASK_VGHSH_VV, match_opcode, 0}, +{"vgmul.vv", 0, INSN_CLASS_ZVKG, "Vd,Vt", MATCH_VGMUL_VV, MASK_VGMUL_VV, match_opcode, 0}, + /* Supervisor instructions. */ {"csrr", 0, INSN_CLASS_ZICSR, "d,E", MATCH_CSRRS, MASK_CSRRS|MASK_RS1, match_opcode, INSN_ALIAS }, {"csrw", 0, INSN_CLASS_ZICSR, "E,s", MATCH_CSRRW, MASK_CSRRW|MASK_RD, match_opcode, INSN_ALIAS }, From patchwork Fri Jun 30 21:57:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christoph_M=C3=BCllner?= X-Patchwork-Id: 114889 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10680566vqr; Fri, 30 Jun 2023 14:58:12 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7aRllzUcNamwj2uztcyp5ZBvBUBGbUP4vQvt48U8gIeWWQ5yg7pzAxRDpp1P3AFcH7hivb X-Received: by 2002:a17:906:980d:b0:991:f383:d5c3 with SMTP id lm13-20020a170906980d00b00991f383d5c3mr2565025ejb.74.1688162292002; Fri, 30 Jun 2023 14:58:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688162291; cv=none; d=google.com; s=arc-20160816; b=wPfp3rjqOSfm9gMR/Hc/MaJR8CtURv+kssBBWAqFmVffSWXgacck9V+n+xIFbkd8uZ sj20qlxlwtf9W/hkHEztaxs+b4AgM03uA0yYVcJFbTYVkME4qW878YGd1LaAssw5xA8r R27X+pnKJRbXr4VXyM56tX7M9OcPSBxyZTijRExHBuOeTo0TnmYVoi76Bbk+gUlPg7FZ 5/HnTSKEWeMt8t8q6KC3BnTxRwp8chgplFFYiiwPye3INzS5Lp6NkCT2lAyXPYW4wotc DJaaYMeBIJEYhvX/l1AsrLBDatehnza2s8XngdR2hx/Jl7DwUXlou8QCFXQDcA/+HukJ Eudw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=Yc8bP8xT9u2nGEmNVa8K/nkNYNHeX7HzI99EsKTBfys=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=QaALqooKHrzfAdXziSFmk011OjUdK6L3nZjU147IlvL/oX4uHPIOif+G4sPecTO6r6 6LSJyR35vwd7t7BxXpQBUb3S91A+Rvf55lHKpDbyHPggF7n7NbYigdeW6EEITs4c5y7L 33NuDXd9i8QBr6lyGGjvKhKDdf9+V965ttvPWIs0dcwSm8noC1qURx1bJtgXB72NrxT0 Q2YR1M6HZxsmuCaaycVQ7qwKf2yLYlc+tn4sBMGS8tn77r/0JL1trOM7mSnLPuCfNx1A SuwAGD1Jj2tru7fiK3vxyhCvrbHLgX789MjUxf8ElYfpdMYmLfmQHmH9SNriJrcJk7V8 tVHA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=Y7GaNUeZ; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id bm24-20020a170906c05800b009924c43105dsi4437448ejb.784.2023.06.30.14.58.11 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:58:11 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=Y7GaNUeZ; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 857AD3888C59 for ; Fri, 30 Jun 2023 21:57:51 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) by sourceware.org (Postfix) with ESMTPS id BCA2C3883013 for ; Fri, 30 Jun 2023 21:57:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BCA2C3883013 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=vrull.eu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=vrull.eu Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-51d80d81d6eso2564017a12.1 for ; Fri, 30 Jun 2023 14:57:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688162255; x=1690754255; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Yc8bP8xT9u2nGEmNVa8K/nkNYNHeX7HzI99EsKTBfys=; b=Y7GaNUeZsZxN2rZzWcZEpsYH5YMjphj2dZOT+qWa+HMlMTlOgPhOJYoMIcHjthJ9fu 7v/M069KieyerW+jF4JUAOILmQvaV3NapVuEJOOwGZITjoakADq7AodnyHz19thPjaXL k/0doQ9ACk1/YTnw2nWkvmwLBrMtUziSMno15ZhXZ5XCNJiXrt9vSv/O/5TXxI31+8uT gCkXyERe4c3WgBEErqPuKQEy8tw/auAr+VjPVwwsYRAran8jSv1+hGoYGg6X34U2ceBn mUMn3fmpE/C7/iJ2s1QTTFdYwJ/R+aJpaNcBsTrkt7P4CeLAVNPfe7m2ZIuB9wi3KCBE HaMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688162255; x=1690754255; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Yc8bP8xT9u2nGEmNVa8K/nkNYNHeX7HzI99EsKTBfys=; b=OkcOhNvYl+L77cjI5fhxHGn24dxwQ0ON9MSZJsok3SGdGqvdb63fw6ANO2msN2zhJq ++04/AAptQo/cAApVtuLVTX0AmCneWtrQ+rIaFVFTMQCujj2LeDRg6ChB1LJTFg/Te83 qDDU2AKyPx/RXYl/LhFoRycYVfcLGoKcPt8YACwJF5fH8n1cX3reraW9bonE3QCQ+mdX PaRPoVl5FPcOQEddRRjA4VTcZCtUJPwN9zRInHwEYyOV+UeUOChi1Vi2g8HpGrqylztM dtZwkqsLQ5KbESGGrzWHdnGBwcc3ZDMgs0nuK9D1fz4AbePzsutYbnAvVZuENWQGEAUG 2Oaw== X-Gm-Message-State: ABy/qLY+BG32iP6aahMPOo3u7kQHFo01xCsGd6tHwAKU8POh/fI+vodi qIA9k88pWctAjfO2YdxqxQ4nN3jsFd3qi6qbFWk= X-Received: by 2002:aa7:c70a:0:b0:51d:d4c3:6858 with SMTP id i10-20020aa7c70a000000b0051dd4c36858mr2550669edq.12.1688162255008; Fri, 30 Jun 2023 14:57:35 -0700 (PDT) Received: from beast.fritz.box (62-178-148-172.cable.dynamic.surfer.at. [62.178.148.172]) by smtp.gmail.com with ESMTPSA id q7-20020aa7d447000000b005183ce42da9sm7052132edr.18.2023.06.30.14.57.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:57:34 -0700 (PDT) From: Christoph Muellner To: binutils@sourceware.org, Nathan Huckleberry , nhuck@pmull.org, Jeff Law , Nelson Chu , Andrew Waterman , Palmer Dabbelt , Jim Wilson , Philipp Tomsich Cc: =?utf-8?q?Christoph_M=C3=BCllner?= Subject: [PATCH v5 04/15] RISC-V: Add support for the Zvkned ISA extension Date: Fri, 30 Jun 2023 23:57:14 +0200 Message-ID: <20230630215725.3725876-5-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230630215725.3725876-1-christoph.muellner@vrull.eu> References: <20230630215725.3725876-1-christoph.muellner@vrull.eu> MIME-Version: 1.0 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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.29 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 Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770166463408178789?= X-GMAIL-MSGID: =?utf-8?q?1770166463408178789?= From: Christoph Müllner Zvkned is part of the vector crypto extensions. This extension adds the following instructions: - vaesef.[vv,vs] - vaesem.[vv,vs] - vaesdf.[vv,vs] - vaesdm.[vv,vs] - vaeskf1.vi - vaeskf2.vi - vaesz.vs bfd/ChangeLog: * elfxx-riscv.c (riscv_multi_subset_supports): Add instruction class support for Zvkned. (riscv_multi_subset_supports_ext): Likewise. gas/ChangeLog: * testsuite/gas/riscv/zvkned.d: New test. * testsuite/gas/riscv/zvkned.s: New test. include/ChangeLog: * opcode/riscv-opc.h (MATCH_VAESDF_VS): New. (MASK_VAESDF_VS): New. (MATCH_VAESDF_VV): New. (MASK_VAESDF_VV): New. (MATCH_VAESDM_VS): New. (MASK_VAESDM_VS): New. (MATCH_VAESDM_VV): New. (MASK_VAESDM_VV): New. (MATCH_VAESEF_VS): New. (MASK_VAESEF_VS): New. (MATCH_VAESEF_VV): New. (MASK_VAESEF_VV): New. (MATCH_VAESEM_VS): New. (MASK_VAESEM_VS): New. (MATCH_VAESEM_VV): New. (MASK_VAESEM_VV): New. (MATCH_VAESKF1_VI): New. (MASK_VAESKF1_VI): New. (MATCH_VAESKF2_VI): New. (MASK_VAESKF2_VI): New. (MATCH_VAESZ_VS): New. (MASK_VAESZ_VS): New. (DECLARE_INSN): New. * opcode/riscv.h (enum riscv_insn_class): Add instruction class support for Zvkned. opcodes/ChangeLog: * riscv-opc.c: Add Zvkned instructions. Signed-off-by: Nathan Huckleberry Signed-off-by: Christoph Müllner --- bfd/elfxx-riscv.c | 5 +++++ gas/testsuite/gas/riscv/zvkned.d | 21 +++++++++++++++++++ gas/testsuite/gas/riscv/zvkned.s | 13 ++++++++++++ include/opcode/riscv-opc.h | 35 ++++++++++++++++++++++++++++++++ include/opcode/riscv.h | 1 + opcodes/riscv-opc.c | 13 ++++++++++++ 6 files changed, 88 insertions(+) create mode 100644 gas/testsuite/gas/riscv/zvkned.d create mode 100644 gas/testsuite/gas/riscv/zvkned.s diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index 84461490835..be8d956f316 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1265,6 +1265,7 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] = {"zvbb", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvbc", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvkg", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zvkned", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl32b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl64b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl128b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, @@ -2436,6 +2437,8 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps, return riscv_subset_supports (rps, "zvbc"); case INSN_CLASS_ZVKG: return riscv_subset_supports (rps, "zvkg"); + case INSN_CLASS_ZVKNED: + return riscv_subset_supports (rps, "zvkned"); case INSN_CLASS_SVINVAL: return riscv_subset_supports (rps, "svinval"); case INSN_CLASS_H: @@ -2630,6 +2633,8 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps, return _("zvbc"); case INSN_CLASS_ZVKG: return _("zvkg"); + case INSN_CLASS_ZVKNED: + return _("zvkned"); case INSN_CLASS_SVINVAL: return "svinval"; case INSN_CLASS_H: diff --git a/gas/testsuite/gas/riscv/zvkned.d b/gas/testsuite/gas/riscv/zvkned.d new file mode 100644 index 00000000000..0b09da9dbc2 --- /dev/null +++ b/gas/testsuite/gas/riscv/zvkned.d @@ -0,0 +1,21 @@ +#as: -march=rv64gc_zvkned +#objdump: -dr + +.*:[ ]+file format .* + + +Disassembly of section .text: +0+000 <.text>: +[ ]+[0-9a-f]+:[ ]+a280a277[ ]+vaesdf.vv[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+a680a277[ ]+vaesdf.vs[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+a2802277[ ]+vaesdm.vv[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+a6802277[ ]+vaesdm.vs[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+a281a277[ ]+vaesef.vv[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+a681a277[ ]+vaesef.vs[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+a2812277[ ]+vaesem.vv[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+a6812277[ ]+vaesem.vs[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+8a812277[ ]+vaeskf1.vi[ ]+v4,v8,2 +[ ]+[0-9a-f]+:[ ]+8a872277[ ]+vaeskf1.vi[ ]+v4,v8,14 +[ ]+[0-9a-f]+:[ ]+aa812277[ ]+vaeskf2.vi[ ]+v4,v8,2 +[ ]+[0-9a-f]+:[ ]+aa872277[ ]+vaeskf2.vi[ ]+v4,v8,14 +[ ]+[0-9a-f]+:[ ]+a683a277[ ]+vaesz.vs[ ]+v4,v8 diff --git a/gas/testsuite/gas/riscv/zvkned.s b/gas/testsuite/gas/riscv/zvkned.s new file mode 100644 index 00000000000..f0f3811eaec --- /dev/null +++ b/gas/testsuite/gas/riscv/zvkned.s @@ -0,0 +1,13 @@ + vaesdf.vv v4, v8 + vaesdf.vs v4, v8 + vaesdm.vv v4, v8 + vaesdm.vs v4, v8 + vaesef.vv v4, v8 + vaesef.vs v4, v8 + vaesem.vv v4, v8 + vaesem.vs v4, v8 + vaeskf1.vi v4, v8, 2 + vaeskf1.vi v4, v8, 14 + vaeskf2.vi v4, v8, 2 + vaeskf2.vi v4, v8, 14 + vaesz.vs v4, v8 diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h index 8b4b3b2662c..b8c3834b819 100644 --- a/include/opcode/riscv-opc.h +++ b/include/opcode/riscv-opc.h @@ -2168,6 +2168,29 @@ #define MASK_VGHSH_VV 0xfe00707f #define MATCH_VGMUL_VV 0xa208a077 #define MASK_VGMUL_VV 0xfe0ff07f +/* Zvkned instructions. */ +#define MATCH_VAESDF_VS 0xa600a077 +#define MASK_VAESDF_VS 0xfe0ff07f +#define MATCH_VAESDF_VV 0xa200a077 +#define MASK_VAESDF_VV 0xfe0ff07f +#define MATCH_VAESDM_VS 0xa6002077 +#define MASK_VAESDM_VS 0xfe0ff07f +#define MATCH_VAESDM_VV 0xa2002077 +#define MASK_VAESDM_VV 0xfe0ff07f +#define MATCH_VAESEF_VS 0xa601a077 +#define MASK_VAESEF_VS 0xfe0ff07f +#define MATCH_VAESEF_VV 0xa201a077 +#define MASK_VAESEF_VV 0xfe0ff07f +#define MATCH_VAESEM_VS 0xa6012077 +#define MASK_VAESEM_VS 0xfe0ff07f +#define MATCH_VAESEM_VV 0xa2012077 +#define MASK_VAESEM_VV 0xfe0ff07f +#define MATCH_VAESKF1_VI 0x8a002077 +#define MASK_VAESKF1_VI 0xfe00707f +#define MATCH_VAESKF2_VI 0xaa002077 +#define MASK_VAESKF2_VI 0xfe00707f +#define MATCH_VAESZ_VS 0xa603a077 +#define MASK_VAESZ_VS 0xfe0ff07f /* Svinval instruction. */ #define MATCH_SINVAL_VMA 0x16000073 #define MASK_SINVAL_VMA 0xfe007fff @@ -3302,6 +3325,18 @@ DECLARE_INSN(vclmulh_vx, MATCH_VCLMULH_VX, MASK_VCLMULH_VX) /* Zvkg instructions. */ DECLARE_INSN(vghsh_vv, MATCH_VGHSH_VV, MASK_VGHSH_VV) DECLARE_INSN(vgmul_vv, MATCH_VGMUL_VV, MASK_VGMUL_VV) +/* Zvkned instructions. */ +DECLARE_INSN(vaesdf_vs, MATCH_VAESDF_VS, MASK_VAESDF_VS) +DECLARE_INSN(vaesdf_vv, MATCH_VAESDF_VV, MASK_VAESDF_VV) +DECLARE_INSN(vaesdm_vs, MATCH_VAESDM_VS, MASK_VAESDM_VS) +DECLARE_INSN(vaesdm_vv, MATCH_VAESDM_VV, MASK_VAESDM_VV) +DECLARE_INSN(vaesef_vs, MATCH_VAESEF_VS, MASK_VAESEF_VS) +DECLARE_INSN(vaesef_vv, MATCH_VAESEF_VV, MASK_VAESEF_VV) +DECLARE_INSN(vaesem_vs, MATCH_VAESEM_VS, MASK_VAESEM_VS) +DECLARE_INSN(vaesem_vv, MATCH_VAESEM_VV, MASK_VAESEM_VV) +DECLARE_INSN(vaeskf1_vi, MATCH_VAESKF1_VI, MASK_VAESKF1_VI) +DECLARE_INSN(vaeskf2_vi, MATCH_VAESKF2_VI, MASK_VAESKF2_VI) +DECLARE_INSN(vaesz_vs, MATCH_VAESZ_VS, MASK_VAESZ_VS) /* Vendor-specific (T-Head) XTheadBa instructions. */ DECLARE_INSN(th_addsl, MATCH_TH_ADDSL, MASK_TH_ADDSL) /* Vendor-specific (T-Head) XTheadBb instructions. */ diff --git a/include/opcode/riscv.h b/include/opcode/riscv.h index b2098867a19..5d55dbcedf3 100644 --- a/include/opcode/riscv.h +++ b/include/opcode/riscv.h @@ -417,6 +417,7 @@ enum riscv_insn_class INSN_CLASS_ZVBB, INSN_CLASS_ZVBC, INSN_CLASS_ZVKG, + INSN_CLASS_ZVKNED, INSN_CLASS_SVINVAL, INSN_CLASS_ZICBOM, INSN_CLASS_ZICBOP, diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c index b2aadb1bc79..175cf5cc94f 100644 --- a/opcodes/riscv-opc.c +++ b/opcodes/riscv-opc.c @@ -1912,6 +1912,19 @@ const struct riscv_opcode riscv_opcodes[] = {"vghsh.vv", 0, INSN_CLASS_ZVKG, "Vd,Vt,Vs", MATCH_VGHSH_VV, MASK_VGHSH_VV, match_opcode, 0}, {"vgmul.vv", 0, INSN_CLASS_ZVKG, "Vd,Vt", MATCH_VGMUL_VV, MASK_VGMUL_VV, match_opcode, 0}, +/* Zvkned instructions. */ +{"vaesdf.vv", 0, INSN_CLASS_ZVKNED, "Vd,Vt", MATCH_VAESDF_VV, MASK_VAESDF_VV, match_opcode, 0}, +{"vaesdf.vs", 0, INSN_CLASS_ZVKNED, "Vd,Vt", MATCH_VAESDF_VS, MASK_VAESDF_VV, match_opcode, 0}, +{"vaesdm.vv", 0, INSN_CLASS_ZVKNED, "Vd,Vt", MATCH_VAESDM_VV, MASK_VAESDM_VV, match_opcode, 0}, +{"vaesdm.vs", 0, INSN_CLASS_ZVKNED, "Vd,Vt", MATCH_VAESDM_VS, MASK_VAESDM_VV, match_opcode, 0}, +{"vaesef.vv", 0, INSN_CLASS_ZVKNED, "Vd,Vt", MATCH_VAESEF_VV, MASK_VAESEF_VV, match_opcode, 0}, +{"vaesef.vs", 0, INSN_CLASS_ZVKNED, "Vd,Vt", MATCH_VAESEF_VS, MASK_VAESEF_VV, match_opcode, 0}, +{"vaesem.vv", 0, INSN_CLASS_ZVKNED, "Vd,Vt", MATCH_VAESEM_VV, MASK_VAESEM_VV, match_opcode, 0}, +{"vaesem.vs", 0, INSN_CLASS_ZVKNED, "Vd,Vt", MATCH_VAESEM_VS, MASK_VAESEM_VV, match_opcode, 0}, +{"vaeskf1.vi", 0, INSN_CLASS_ZVKNED, "Vd,Vt,Vj", MATCH_VAESKF1_VI, MASK_VAESKF1_VI, match_opcode, 0}, +{"vaeskf2.vi", 0, INSN_CLASS_ZVKNED, "Vd,Vt,Vj", MATCH_VAESKF2_VI, MASK_VAESKF2_VI, match_opcode, 0}, +{"vaesz.vs", 0, INSN_CLASS_ZVKNED, "Vd,Vt", MATCH_VAESZ_VS, MASK_VAESZ_VS, match_opcode, 0}, + /* Supervisor instructions. */ {"csrr", 0, INSN_CLASS_ZICSR, "d,E", MATCH_CSRRS, MASK_CSRRS|MASK_RS1, match_opcode, INSN_ALIAS }, {"csrw", 0, INSN_CLASS_ZICSR, "E,s", MATCH_CSRRW, MASK_CSRRW|MASK_RD, match_opcode, INSN_ALIAS }, From patchwork Fri Jun 30 21:57:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christoph_M=C3=BCllner?= X-Patchwork-Id: 114890 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10680710vqr; Fri, 30 Jun 2023 14:58:38 -0700 (PDT) X-Google-Smtp-Source: APBJJlGiw3sKsNVN/NetA2QJt1GYixwLGFS+eRDZP9phILWDrEzM9tLA7ieN0StHVl/y6YA5Fo7H X-Received: by 2002:a2e:9258:0:b0:2b6:c3b8:3a9f with SMTP id v24-20020a2e9258000000b002b6c3b83a9fmr3185375ljg.29.1688162318392; Fri, 30 Jun 2023 14:58:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688162318; cv=none; d=google.com; s=arc-20160816; b=kk2TpfAIASpzRkAMa7SDKbXXSRygnTmni7f/XVo7NLHrfdMzG6AR2EOm29XJXiXScI 5ifZXOGq882D5XuB9dtVGrl0JVJHYdqw//iZuOvPvZKbNi9WOmpQpq5sTg+nhehDevvS 9NxDD1SoO1nl+7ifZXrn9CjblDjA1NILmwbMcxA5w28PDieZC+hrAURI/u53ixc+u/4h /g7Sgx9iZmwCUoW1NrQSQAx+YZf0xhFiwZiqARSYynaSmeh363D6PdPGklMUMskqA6hT vjLZpioiNl8NxvPaaivGsPtH9K4mhssOnhI0Ogk+WpGACPvUpM5zYA8Q359ja3HdMnOF ypMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=674NY0f4iVW6rRVvm8yqCwnaPypPwqmvlzJR6iqQbyU=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=RV7Pmc2NggHV1Yv/c5HtMATW1j/wBrCfec8PlaRsn6It6lGPvNT2+7PdJD/Rz/dzFv 6KGMKqpr8H6vmQVB6bhaAEc/HaINjfKlffyLZya26UKx636MJKqUmEr0l07n+xvj0wI9 S6ocXycyzMpgKPtdgYa6CES/N9bdjOcCWYGPDN0nEuXf8xvTTWcr15gYqgP4tY90/v6J CzUBfLVph92mNVaiX5vqndGyXOJp74qnzGFLxIO98PmK3uhuAmNgIRBgWeNOU9plQQ3/ 6aP18cjzhaV1NFaJl4LLMbK3qcipOSLFrqbWx6om3Bm8nWst9NWYBBS9VgeqXHrlnmbz g8ag== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@vrull.eu header.s=google header.b=SK6opENP; 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" Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id w9-20020a17090652c900b0098da7ffc5a2si8394409ejn.222.2023.06.30.14.58.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:58:38 -0700 (PDT) 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=fail header.i=@vrull.eu header.s=google header.b=SK6opENP; 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" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 243EB389364D for ; Fri, 30 Jun 2023 21:57:59 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com [IPv6:2a00:1450:4864:20::129]) by sourceware.org (Postfix) with ESMTPS id 1E24B3884578 for ; Fri, 30 Jun 2023 21:57:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1E24B3884578 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=vrull.eu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=vrull.eu Received: by mail-lf1-x129.google.com with SMTP id 2adb3069b0e04-4f95bf5c493so3688367e87.3 for ; Fri, 30 Jun 2023 14:57:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688162256; x=1690754256; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=674NY0f4iVW6rRVvm8yqCwnaPypPwqmvlzJR6iqQbyU=; b=SK6opENPEF2lpA8s8HOwUWz+bhSQU7B7QZFVAdrQHvi0f5iK9ZHAy6K3kFKEQCNI3d 6j/1OIBpaD8MpNumgDvUiTOi67RiOuHx1JBVdpB2dnvII+SbH7xnE30LpsDPTWF2JfFe hW/U/tzhe3KeWMNbxw7wZYNvvCr/2RZdsXaZOKQB4QUsHev0kJEU0P7N2uYwVyH1deX8 Cg6FLM+ocD5BuvBmTu8jf/V6AIOEletaKXc901MctPB/x9clrmG39K/GrtIYCb8hupuZ 9HwhreMqlVBRPbCWm5YA7cRRStaRFEU1iZ9efAusbMOqoD+mNiRLQ11kDJmUxEtxmkZc sT8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688162256; x=1690754256; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=674NY0f4iVW6rRVvm8yqCwnaPypPwqmvlzJR6iqQbyU=; b=eRqX2FQIoeLdGGqjLvbANT9WHWIH+0iDYjjSdTvub9bJHzi30bUt1fnJMocN83+LR8 Qd9ZbiV4v+mMmlTRfUY16wU6Qgjtcd9YPrjZgc0fLaVVlDAAob0Dxebb8190MGyOt4TX U+qaTh4q7skiN8M2vDdGWB5c7tFoxKhFhAKrP9yf3NfXqnkpUcZZCqNnklPCYIt5Y7g1 NkJ2OQoDwYXhmPOhUX8gl6ZjgScUmY5CDoZ64NROx2hU5o50yzcIVXRJEG/+95zZWXTX PJwDYXy+MN0MTiKqNqV8qKw1nm5AAv1bf/815tKhP8a5PlXQLTJLZKMufWYeVR+fGkSk EucQ== X-Gm-Message-State: ABy/qLbFThpedTVqP2MTyMuPvF2ekSW7r+8kCOUPoCmFk0y5lE1LCY8T CvT6HvVfX4T3veQS7PotwSA0F51tNgSS27h2kJI= X-Received: by 2002:ac2:58f6:0:b0:4f9:5711:2eb6 with SMTP id v22-20020ac258f6000000b004f957112eb6mr2577483lfo.28.1688162256110; Fri, 30 Jun 2023 14:57:36 -0700 (PDT) Received: from beast.fritz.box (62-178-148-172.cable.dynamic.surfer.at. [62.178.148.172]) by smtp.gmail.com with ESMTPSA id q7-20020aa7d447000000b005183ce42da9sm7052132edr.18.2023.06.30.14.57.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:57:35 -0700 (PDT) From: Christoph Muellner To: binutils@sourceware.org, Nathan Huckleberry , nhuck@pmull.org, Jeff Law , Nelson Chu , Andrew Waterman , Palmer Dabbelt , Jim Wilson , Philipp Tomsich Cc: =?utf-8?q?Christoph_M=C3=BCllner?= Subject: [PATCH v5 05/15] RISC-V: Add support for the Zvknh[a, b] ISA extensions Date: Fri, 30 Jun 2023 23:57:15 +0200 Message-ID: <20230630215725.3725876-6-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230630215725.3725876-1-christoph.muellner@vrull.eu> References: <20230630215725.3725876-1-christoph.muellner@vrull.eu> MIME-Version: 1.0 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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.29 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 Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770166491480172549?= X-GMAIL-MSGID: =?utf-8?q?1770166491480172549?= From: Christoph Müllner Zvknh[a,b] are parts of the vector crypto extensions. This extension adds the following instructions: - vsha2ms.vv - vsha2c[hl].vv bfd/ChangeLog: * elfxx-riscv.c (riscv_multi_subset_supports): Add instruction class support for Zvknh[a,b]. (riscv_multi_subset_supports_ext): Likewise. gas/ChangeLog: * testsuite/gas/riscv/zvknha.d: New test. * testsuite/gas/riscv/zvknha_zvknhb.s: New test. * testsuite/gas/riscv/zvknhb.d: New test. include/ChangeLog: * opcode/riscv-opc.h (MATCH_VSHA2CH_VV): New. (MASK_VSHA2CH_VV): New. (MATCH_VSHA2CL_VV): New. (MASK_VSHA2CL_VV): New. (MATCH_VSHA2MS_VV): New. (MASK_VSHA2MS_VV): New. (DECLARE_INSN): New. * opcode/riscv.h (enum riscv_insn_class): Add instruction class support for Zvknh[a,b]. opcodes/ChangeLog: * riscv-opc.c: Add Zvknh[a,b] instructions. Signed-off-by: Nathan Huckleberry Signed-off-by: Christoph Müllner --- bfd/elfxx-riscv.c | 13 +++++++++++++ gas/testsuite/gas/riscv/zvknha.d | 12 ++++++++++++ gas/testsuite/gas/riscv/zvknha_zvknhb.s | 3 +++ gas/testsuite/gas/riscv/zvknhb.d | 12 ++++++++++++ include/opcode/riscv-opc.h | 11 +++++++++++ include/opcode/riscv.h | 3 +++ opcodes/riscv-opc.c | 5 +++++ 7 files changed, 59 insertions(+) create mode 100644 gas/testsuite/gas/riscv/zvknha.d create mode 100644 gas/testsuite/gas/riscv/zvknha_zvknhb.s create mode 100644 gas/testsuite/gas/riscv/zvknhb.d diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index be8d956f316..696b5c10147 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1266,6 +1266,8 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] = {"zvbc", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvkg", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvkned", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zvknha", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zvknhb", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl32b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl64b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl128b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, @@ -2439,6 +2441,13 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps, return riscv_subset_supports (rps, "zvkg"); case INSN_CLASS_ZVKNED: return riscv_subset_supports (rps, "zvkned"); + case INSN_CLASS_ZVKNHA: + return riscv_subset_supports (rps, "zvknha"); + case INSN_CLASS_ZVKNHB: + return riscv_subset_supports (rps, "zvknhb"); + case INSN_CLASS_ZVKNHA_OR_ZVKNHB: + return (riscv_subset_supports (rps, "zvknha") + || riscv_subset_supports (rps, "zvknhb")); case INSN_CLASS_SVINVAL: return riscv_subset_supports (rps, "svinval"); case INSN_CLASS_H: @@ -2635,6 +2644,10 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps, return _("zvkg"); case INSN_CLASS_ZVKNED: return _("zvkned"); + case INSN_CLASS_ZVKNHA: + return _("zvknha"); + case INSN_CLASS_ZVKNHB: + return _("zvknhb"); case INSN_CLASS_SVINVAL: return "svinval"; case INSN_CLASS_H: diff --git a/gas/testsuite/gas/riscv/zvknha.d b/gas/testsuite/gas/riscv/zvknha.d new file mode 100644 index 00000000000..36d660f634f --- /dev/null +++ b/gas/testsuite/gas/riscv/zvknha.d @@ -0,0 +1,12 @@ +#as: -march=rv64gc_zvknha +#source: zvknha_zvknhb.s +#objdump: -dr + +.*:[ ]+file format .* + + +Disassembly of section .text: +0+000 <.text>: +[ ]+[0-9a-f]+:[ ]+ba862277[ ]+vsha2ch.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+be862277[ ]+vsha2cl.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+b6862277[ ]+vsha2ms.vv[ ]+v4,v8,v12 diff --git a/gas/testsuite/gas/riscv/zvknha_zvknhb.s b/gas/testsuite/gas/riscv/zvknha_zvknhb.s new file mode 100644 index 00000000000..d20e6310531 --- /dev/null +++ b/gas/testsuite/gas/riscv/zvknha_zvknhb.s @@ -0,0 +1,3 @@ + vsha2ch.vv v4, v8, v12 + vsha2cl.vv v4, v8, v12 + vsha2ms.vv v4, v8, v12 diff --git a/gas/testsuite/gas/riscv/zvknhb.d b/gas/testsuite/gas/riscv/zvknhb.d new file mode 100644 index 00000000000..ab0f035889e --- /dev/null +++ b/gas/testsuite/gas/riscv/zvknhb.d @@ -0,0 +1,12 @@ +#as: -march=rv64gc_zvknhb +#source: zvknha_zvknhb.s +#objdump: -dr + +.*:[ ]+file format .* + + +Disassembly of section .text: +0+000 <.text>: +[ ]+[0-9a-f]+:[ ]+ba862277[ ]+vsha2ch.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+be862277[ ]+vsha2cl.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+b6862277[ ]+vsha2ms.vv[ ]+v4,v8,v12 diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h index b8c3834b819..95c4188d084 100644 --- a/include/opcode/riscv-opc.h +++ b/include/opcode/riscv-opc.h @@ -2191,6 +2191,13 @@ #define MASK_VAESKF2_VI 0xfe00707f #define MATCH_VAESZ_VS 0xa603a077 #define MASK_VAESZ_VS 0xfe0ff07f +/* Zvknh[a,b] instructions. */ +#define MATCH_VSHA2CH_VV 0xba002077 +#define MASK_VSHA2CH_VV 0xfe00707f +#define MATCH_VSHA2CL_VV 0xbe002077 +#define MASK_VSHA2CL_VV 0xfe00707f +#define MATCH_VSHA2MS_VV 0xb6002077 +#define MASK_VSHA2MS_VV 0xfe00707f /* Svinval instruction. */ #define MATCH_SINVAL_VMA 0x16000073 #define MASK_SINVAL_VMA 0xfe007fff @@ -3337,6 +3344,10 @@ DECLARE_INSN(vaesem_vv, MATCH_VAESEM_VV, MASK_VAESEM_VV) DECLARE_INSN(vaeskf1_vi, MATCH_VAESKF1_VI, MASK_VAESKF1_VI) DECLARE_INSN(vaeskf2_vi, MATCH_VAESKF2_VI, MASK_VAESKF2_VI) DECLARE_INSN(vaesz_vs, MATCH_VAESZ_VS, MASK_VAESZ_VS) +/* Zvknh[a,b] instructions. */ +DECLARE_INSN(vsha2ch_vv, MATCH_VSHA2CH_VV, MASK_VSHA2CH_VV) +DECLARE_INSN(vsha2cl_vv, MATCH_VSHA2CL_VV, MASK_VSHA2CL_VV) +DECLARE_INSN(vsha2ms_vv, MATCH_VSHA2MS_VV, MASK_VSHA2MS_VV) /* Vendor-specific (T-Head) XTheadBa instructions. */ DECLARE_INSN(th_addsl, MATCH_TH_ADDSL, MASK_TH_ADDSL) /* Vendor-specific (T-Head) XTheadBb instructions. */ diff --git a/include/opcode/riscv.h b/include/opcode/riscv.h index 5d55dbcedf3..77207ea79b2 100644 --- a/include/opcode/riscv.h +++ b/include/opcode/riscv.h @@ -418,6 +418,9 @@ enum riscv_insn_class INSN_CLASS_ZVBC, INSN_CLASS_ZVKG, INSN_CLASS_ZVKNED, + INSN_CLASS_ZVKNHA, + INSN_CLASS_ZVKNHB, + INSN_CLASS_ZVKNHA_OR_ZVKNHB, INSN_CLASS_SVINVAL, INSN_CLASS_ZICBOM, INSN_CLASS_ZICBOP, diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c index 175cf5cc94f..297fda85af5 100644 --- a/opcodes/riscv-opc.c +++ b/opcodes/riscv-opc.c @@ -1925,6 +1925,11 @@ const struct riscv_opcode riscv_opcodes[] = {"vaeskf2.vi", 0, INSN_CLASS_ZVKNED, "Vd,Vt,Vj", MATCH_VAESKF2_VI, MASK_VAESKF2_VI, match_opcode, 0}, {"vaesz.vs", 0, INSN_CLASS_ZVKNED, "Vd,Vt", MATCH_VAESZ_VS, MASK_VAESZ_VS, match_opcode, 0}, +/* Zvknh[a,b] instructions. */ +{"vsha2ch.vv", 0, INSN_CLASS_ZVKNHA_OR_ZVKNHB, "Vd,Vt,Vs", MATCH_VSHA2CH_VV, MASK_VSHA2CH_VV, match_opcode, 0}, +{"vsha2cl.vv", 0, INSN_CLASS_ZVKNHA_OR_ZVKNHB, "Vd,Vt,Vs", MATCH_VSHA2CL_VV, MASK_VSHA2CL_VV, match_opcode, 0}, +{"vsha2ms.vv", 0, INSN_CLASS_ZVKNHA_OR_ZVKNHB, "Vd,Vt,Vs", MATCH_VSHA2MS_VV, MASK_VSHA2MS_VV, match_opcode, 0}, + /* Supervisor instructions. */ {"csrr", 0, INSN_CLASS_ZICSR, "d,E", MATCH_CSRRS, MASK_CSRRS|MASK_RS1, match_opcode, INSN_ALIAS }, {"csrw", 0, INSN_CLASS_ZICSR, "E,s", MATCH_CSRRW, MASK_CSRRW|MASK_RD, match_opcode, INSN_ALIAS }, From patchwork Fri Jun 30 21:57:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christoph_M=C3=BCllner?= X-Patchwork-Id: 114899 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10684637vqr; Fri, 30 Jun 2023 15:04:53 -0700 (PDT) X-Google-Smtp-Source: APBJJlEhZNzMbcqBnjxdWvcAcgfc7oW/UcTMKCCqnkw51RA1LKpsPjcDeJVj1W6GWNT7pLUok/0U X-Received: by 2002:a5d:5592:0:b0:313:f5f0:8efa with SMTP id i18-20020a5d5592000000b00313f5f08efamr3233089wrv.18.1688162693306; Fri, 30 Jun 2023 15:04:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688162693; cv=none; d=google.com; s=arc-20160816; b=l6MuXMj/T0U48aqWxHqbOGl/WHtB/s+anJVBQ7+xkd2Dwf/4+AyL1UM+HiGGAIe4eB o33pxcxKYCiFOB/+5KJHaZLnCW6mk5FmTgUEnL0mdULTkEmYysQ0lmAMZL6GV1xZviSA EhP+2SoQGYrJFqgzcP7jD6xPo9dd8fHInwl/m8kFlL+xgr8ZpE6Kf/akx00dkTn25l7U Pl6Sh1j29N1Zku/iLTQ0SBiw34eZ6xKTLkhl/ChPQEPqnDrWYPUv8Uhl+FJg4hjQI6vv JsDnFCYbkX15m+SPb5mfv4k9qenI2U1OGn57yarMCkJgysih6EM459BgFJ3LMNwKZLEI AMkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=Vv+c7E+8oz0rC+bDdEgD6ouxxWr1dxYd455uKzH8BRg=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=wRlbZ9A1kbfVHW9wwFKznBrRbnLQuZtuMBePDn8JdOIOms8IiXY+0h0VPDGCQrANP8 FGz7pTYCU0GkBdhnt+LVY6jzW3Sm7GjVaePBeA5N/lkxD2IK9HkKMDwb5rY2Q1EvNwYm B6y+nB4Ns5sK/lzSnZT6Xg5UjllGjcQ9Av+EtmkBu41pY/B/SCmHmmA8tyfw2Uukad7U GoTyuYABl+DqIcTGwrIQki8BpdNz23KV6xoX/rBXNNXn4lkng0FTtwQ2n+UDHzMhDS3l 5GFyoiMakfQvp9wjaV/MDyF4QAkOQfdOrFT2oo8zGztLvFrB1urP6n9QQ2y05ZnuHZJ5 bwxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=eb5qiHVX; 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" Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id bm24-20020a170906c05800b009924c43105dsi4443400ejb.784.2023.06.30.15.04.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 15:04:53 -0700 (PDT) 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=@vrull.eu header.s=google header.b=eb5qiHVX; 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" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6CA643AA8432 for ; Fri, 30 Jun 2023 21:59:24 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [IPv6:2a00:1450:4864:20::536]) by sourceware.org (Postfix) with ESMTPS id F1CAB388553B for ; Fri, 30 Jun 2023 21:57:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F1CAB388553B Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=vrull.eu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=vrull.eu Received: by mail-ed1-x536.google.com with SMTP id 4fb4d7f45d1cf-51dff848168so104746a12.2 for ; Fri, 30 Jun 2023 14:57:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688162257; x=1690754257; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Vv+c7E+8oz0rC+bDdEgD6ouxxWr1dxYd455uKzH8BRg=; b=eb5qiHVXtU1SeUDSiRMrZN67vCe905oauBYHd1kREuer84Spl7hgUr2+K61YzvlUz0 43DOEJBZCxB7682QSaex4TOojIIUxhymquFoLsKyRo35QtzFpd8t9SUOrmgVp8o9dLV7 hEWstNyaOtDWrHU02C8y4pP5XyloHDhn3nWxrh+abZY9jdD5a5egpA+WCAANKEXg180K /cG41yzrMaonADaGq0TBUDvF6tyE+JdC/6CtDe4JFgxNQbn4/X6ItI3Jrm3Y2ci1Zy+1 lzv/Ds+EgqoeDMIKvMhS5d+8ay5skJpT/pw+uUUtKMUcEFmva/kiY9WsSVKn+0yNsUTU tvDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688162257; x=1690754257; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Vv+c7E+8oz0rC+bDdEgD6ouxxWr1dxYd455uKzH8BRg=; b=XBDGtCMggclSR85TmfH3QgnOnbRaJBM3p3UShm0rZyrxt+CrpwzW+e6g2WhZPEldzS FBUxqTzlp/18vD+Pmecf83AK8/h7NIThusdZhmjw3475xIDQO4HfAUtBEMlP8ePSFaI8 XHM9han6+XICkOqWmHdkmKGj8sYonh5+cS2N8aUKSkjJFlwx41AK4vmCS4itQq6UQ3vQ Q44OtWN6ZRThWhMalEOZIty1Av6npE0Rk2k9dlwTjwWx/cHTWWr4kcAd55GC8u8jsXwp 1DLGt70aQYnHoZfNAr/ccdvC4GEdyVoDX0TF+mQczHW104Grd3pCD4O5uFq/FWp5kz+T syAA== X-Gm-Message-State: ABy/qLaA4Kz+US06fzK/W5jXhov7dxdf4mY5a1w8Ni3CtbuAYFZT0TpC vrFcib7+nNmq2uIStocZrV4vniHFhvjFmbq5oHY= X-Received: by 2002:a05:6402:32b:b0:51d:a94b:f8f2 with SMTP id q11-20020a056402032b00b0051da94bf8f2mr2317827edw.2.1688162257381; Fri, 30 Jun 2023 14:57:37 -0700 (PDT) Received: from beast.fritz.box (62-178-148-172.cable.dynamic.surfer.at. [62.178.148.172]) by smtp.gmail.com with ESMTPSA id q7-20020aa7d447000000b005183ce42da9sm7052132edr.18.2023.06.30.14.57.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:57:36 -0700 (PDT) From: Christoph Muellner To: binutils@sourceware.org, Nathan Huckleberry , nhuck@pmull.org, Jeff Law , Nelson Chu , Andrew Waterman , Palmer Dabbelt , Jim Wilson , Philipp Tomsich Cc: =?utf-8?q?Christoph_M=C3=BCllner?= Subject: [PATCH v5 06/15] RISC-V: Add support for the Zvksed ISA extension Date: Fri, 30 Jun 2023 23:57:16 +0200 Message-ID: <20230630215725.3725876-7-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230630215725.3725876-1-christoph.muellner@vrull.eu> References: <20230630215725.3725876-1-christoph.muellner@vrull.eu> MIME-Version: 1.0 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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.29 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 Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770166884199380869?= X-GMAIL-MSGID: =?utf-8?q?1770166884199380869?= From: Christoph Müllner Zvksed is part of the vector crypto extensions. This extension adds the following instructions: - vsm4k.vi - vsm4r.[vv,vs] bfd/ChangeLog: * elfxx-riscv.c (riscv_multi_subset_supports): Add instruction class support for Zvksed. (riscv_multi_subset_supports_ext): Likewise. gas/ChangeLog: * testsuite/gas/riscv/zvksed.d: New test. * testsuite/gas/riscv/zvksed.s: New test. include/ChangeLog: * opcode/riscv-opc.h (MATCH_VSM4K_VI): New. (MASK_VSM4K_VI): New. (MATCH_VSM4R_VS): New. (MASK_VSM4R_VS): New. (MATCH_VSM4R_VV): New. (MASK_VSM4R_VV): New. (DECLARE_INSN): New. * opcode/riscv.h (enum riscv_insn_class): Add instruction class support for Zvksed. opcodes/ChangeLog: * riscv-opc.c: Add Zvksed instructions. Signed-off-by: Nathan Huckleberry Signed-off-by: Christoph Müllner --- bfd/elfxx-riscv.c | 5 +++++ gas/testsuite/gas/riscv/zvksed.d | 12 ++++++++++++ gas/testsuite/gas/riscv/zvksed.s | 4 ++++ include/opcode/riscv-opc.h | 11 +++++++++++ include/opcode/riscv.h | 1 + opcodes/riscv-opc.c | 5 +++++ 6 files changed, 38 insertions(+) create mode 100644 gas/testsuite/gas/riscv/zvksed.d create mode 100644 gas/testsuite/gas/riscv/zvksed.s diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index 696b5c10147..f3f8a7401d9 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1268,6 +1268,7 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] = {"zvkned", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvknha", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvknhb", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zvksed", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl32b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl64b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl128b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, @@ -2448,6 +2449,8 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps, case INSN_CLASS_ZVKNHA_OR_ZVKNHB: return (riscv_subset_supports (rps, "zvknha") || riscv_subset_supports (rps, "zvknhb")); + case INSN_CLASS_ZVKSED: + return riscv_subset_supports (rps, "zvksed"); case INSN_CLASS_SVINVAL: return riscv_subset_supports (rps, "svinval"); case INSN_CLASS_H: @@ -2648,6 +2651,8 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps, return _("zvknha"); case INSN_CLASS_ZVKNHB: return _("zvknhb"); + case INSN_CLASS_ZVKSED: + return _("zvksed"); case INSN_CLASS_SVINVAL: return "svinval"; case INSN_CLASS_H: diff --git a/gas/testsuite/gas/riscv/zvksed.d b/gas/testsuite/gas/riscv/zvksed.d new file mode 100644 index 00000000000..48b4aafdbb1 --- /dev/null +++ b/gas/testsuite/gas/riscv/zvksed.d @@ -0,0 +1,12 @@ +#as: -march=rv64gc_zvksed +#objdump: -dr + +.*:[ ]+file format .* + + +Disassembly of section .text: +0+000 <.text>: +[ ]+[0-9a-f]+:[ ]+86802277[ ]+vsm4k.vi[ ]+v4,v8,0 +[ ]+[0-9a-f]+:[ ]+8683a277[ ]+vsm4k.vi[ ]+v4,v8,7 +[ ]+[0-9a-f]+:[ ]+a2882277[ ]+vsm4r.vv[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+a6882277[ ]+vsm4r.vs[ ]+v4,v8 diff --git a/gas/testsuite/gas/riscv/zvksed.s b/gas/testsuite/gas/riscv/zvksed.s new file mode 100644 index 00000000000..754b4646adf --- /dev/null +++ b/gas/testsuite/gas/riscv/zvksed.s @@ -0,0 +1,4 @@ + vsm4k.vi v4, v8, 0 + vsm4k.vi v4, v8, 7 + vsm4r.vv v4, v8 + vsm4r.vs v4, v8 diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h index 95c4188d084..39c0cadd686 100644 --- a/include/opcode/riscv-opc.h +++ b/include/opcode/riscv-opc.h @@ -2198,6 +2198,13 @@ #define MASK_VSHA2CL_VV 0xfe00707f #define MATCH_VSHA2MS_VV 0xb6002077 #define MASK_VSHA2MS_VV 0xfe00707f +/* Zvksed instructions. */ +#define MATCH_VSM4K_VI 0x86002077 +#define MASK_VSM4K_VI 0xfe00707f +#define MATCH_VSM4R_VS 0xa6082077 +#define MASK_VSM4R_VS 0xfe0ff07f +#define MATCH_VSM4R_VV 0xa2082077 +#define MASK_VSM4R_VV 0xfe0ff07f /* Svinval instruction. */ #define MATCH_SINVAL_VMA 0x16000073 #define MASK_SINVAL_VMA 0xfe007fff @@ -3348,6 +3355,10 @@ DECLARE_INSN(vaesz_vs, MATCH_VAESZ_VS, MASK_VAESZ_VS) DECLARE_INSN(vsha2ch_vv, MATCH_VSHA2CH_VV, MASK_VSHA2CH_VV) DECLARE_INSN(vsha2cl_vv, MATCH_VSHA2CL_VV, MASK_VSHA2CL_VV) DECLARE_INSN(vsha2ms_vv, MATCH_VSHA2MS_VV, MASK_VSHA2MS_VV) +/* Zvksed instructions. */ +DECLARE_INSN(vsm4k_vi, MATCH_VSM4K_VI, MASK_VSM4K_VI) +DECLARE_INSN(vsm4r_vs, MATCH_VSM4R_VS, MASK_VSM4R_VS) +DECLARE_INSN(vsm4r_vv, MATCH_VSM4R_VV, MASK_VSM4R_VV) /* Vendor-specific (T-Head) XTheadBa instructions. */ DECLARE_INSN(th_addsl, MATCH_TH_ADDSL, MASK_TH_ADDSL) /* Vendor-specific (T-Head) XTheadBb instructions. */ diff --git a/include/opcode/riscv.h b/include/opcode/riscv.h index 77207ea79b2..c378cce71c7 100644 --- a/include/opcode/riscv.h +++ b/include/opcode/riscv.h @@ -421,6 +421,7 @@ enum riscv_insn_class INSN_CLASS_ZVKNHA, INSN_CLASS_ZVKNHB, INSN_CLASS_ZVKNHA_OR_ZVKNHB, + INSN_CLASS_ZVKSED, INSN_CLASS_SVINVAL, INSN_CLASS_ZICBOM, INSN_CLASS_ZICBOP, diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c index 297fda85af5..095af039040 100644 --- a/opcodes/riscv-opc.c +++ b/opcodes/riscv-opc.c @@ -1930,6 +1930,11 @@ const struct riscv_opcode riscv_opcodes[] = {"vsha2cl.vv", 0, INSN_CLASS_ZVKNHA_OR_ZVKNHB, "Vd,Vt,Vs", MATCH_VSHA2CL_VV, MASK_VSHA2CL_VV, match_opcode, 0}, {"vsha2ms.vv", 0, INSN_CLASS_ZVKNHA_OR_ZVKNHB, "Vd,Vt,Vs", MATCH_VSHA2MS_VV, MASK_VSHA2MS_VV, match_opcode, 0}, +/* Zvksed instructions. */ +{"vsm4k.vi", 0, INSN_CLASS_ZVKSED, "Vd,Vt,Vj", MATCH_VSM4K_VI, MASK_VSM4K_VI, match_opcode, 0}, +{"vsm4r.vv", 0, INSN_CLASS_ZVKSED, "Vd,Vt", MATCH_VSM4R_VV, MASK_VSM4R_VV, match_opcode, 0}, +{"vsm4r.vs", 0, INSN_CLASS_ZVKSED, "Vd,Vt", MATCH_VSM4R_VS, MASK_VSM4R_VS, match_opcode, 0}, + /* Supervisor instructions. */ {"csrr", 0, INSN_CLASS_ZICSR, "d,E", MATCH_CSRRS, MASK_CSRRS|MASK_RS1, match_opcode, INSN_ALIAS }, {"csrw", 0, INSN_CLASS_ZICSR, "E,s", MATCH_CSRRW, MASK_CSRRW|MASK_RD, match_opcode, INSN_ALIAS }, From patchwork Fri Jun 30 21:57:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christoph_M=C3=BCllner?= X-Patchwork-Id: 114892 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10681083vqr; Fri, 30 Jun 2023 14:59:52 -0700 (PDT) X-Google-Smtp-Source: APBJJlG0J3LY7TGZRzOJPx92oNgbWXL2H+5UY+sr0AnUk0Eqrmunmot+kBexKOqbaTzN+52/ld7O X-Received: by 2002:a2e:b057:0:b0:2b6:b575:b26d with SMTP id d23-20020a2eb057000000b002b6b575b26dmr3091785ljl.41.1688162392132; Fri, 30 Jun 2023 14:59:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688162392; cv=none; d=google.com; s=arc-20160816; b=HiuAabhDQ+SvLPa8WnY9EkiXiisNe2uuvBjM0nHkg9iz/aCtw8a8BWznKQLdT150f2 veOnoiex8X2RibehfWi2ZNWLqP1E87EUjdbDdRLsKyqlrkJSQGbA4iioaT/rNDGJxWPC HYGUx3fiQILOraAB7gnTh2W6hZij1gZtub+xUDLH7yxoeIburYSXIuYT/L22aOx0gfKf OFaydkJLWChl5AUOzJ37ArtYBHzSTAzMyGPcskRfJ2XYRfbNnX7FgVnpBE7SL4jcrijh Z5dSL+jm6ufBsJS+goHqyYFHQldceyEAU0ghEONaGGGlLw18Ay8YhyxJbVP6Ze+Zy0s8 vJzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=cnfAwZhs5N+2MOqRzj4qULve4/df0J8nZUwGJiXqCnY=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=qwWsG3C7MmHLE56JxVueiIc61EijvRLBgDhp86y68x77r1hZrl1zXc1Va5tuJ47JZN FHr9g4HlyC35qYfPkd+MEmlkhFptSyNVguVgpKsERwGmQmoHgKIPGL9JENCGz9917nX8 bPINHe9PEzss0XZYza1tOlfymeqPQKHKRnMeM2fS6lAPU4U/Pw6EVEw4gtOn+6jg3djb g1avMEfLrNJEW25dJKzBRmhf4/5Ll5BDc9CO6b62qUKpY4JrtlEW/N0Q8R32/L98PQHO qtau5fnuq1YEr045wpa9v+4MNCNiUVbCqn7ytRIQ0sWrTtudVQyMIhCLkCAc/boxn01j 6VIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b="ULjg/umr"; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id a13-20020aa7d74d000000b0051df73ddeffsi768004eds.358.2023.06.30.14.59.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:59:52 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b="ULjg/umr"; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B5A8D389C45C for ; Fri, 30 Jun 2023 21:58:17 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com [IPv6:2a00:1450:4864:20::134]) by sourceware.org (Postfix) with ESMTPS id 52880382A2DD for ; Fri, 30 Jun 2023 21:57:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 52880382A2DD Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=vrull.eu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=vrull.eu Received: by mail-lf1-x134.google.com with SMTP id 2adb3069b0e04-4fb94b1423eso3712903e87.1 for ; Fri, 30 Jun 2023 14:57:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688162258; x=1690754258; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=cnfAwZhs5N+2MOqRzj4qULve4/df0J8nZUwGJiXqCnY=; b=ULjg/umrYIXEueJ/M0lQrsDvdc2Vr/D+ndYwXOX3qvieqvwaTunGNCfRj3Ez/mvtO0 Swtg8pp4zHS6xTlRzMPcBLF+rIP00myD5ZuT48IV5BvE9Qd7mazL0VtgG+sE9uh1pLwG dTBxl9R6DAZgavmnqhp/7esDa6Amm1HT+OPRPpz4fWCSj/Yh0UYLYOQyom2qOLLXNyP2 HGWmPYDh9igkJRbcDINerbWn10faY/CO9R/ere1PO5XHUWfiq/YMHqphRKyKRG+8OSHm J1l71/nsZhAXj21+Qqohd4KdVB+1OBChD94SE7dwFUdKhM60Rm57auoQwNPBEbZTVnfk nbAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688162258; x=1690754258; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cnfAwZhs5N+2MOqRzj4qULve4/df0J8nZUwGJiXqCnY=; b=VlVSEABC+tWjZMsVJ0F/uVyJ73zD6Sd7Rzn4U6rOwB4+n3xhMHzJAorEe/aQIM1vsV DBOseGruazLwHqyrkuGbJ8HQnwAe+HoV8u9gfqlTj7iTXX3Yf/yIU3ypHmCEvFF5oF+g WdJRvvtJjEcrJwvloZbGQY6yqAk1eRXF3UkTuV0B+dbow1Ca3Ljix0kbB2+yw8X0eeqf ftxwTgfskf7+G1JtuYn53izSyizXXXzDwP8JVZ4Y88g/nun3iD8GATFCt9wzxETLXx4J vhUTuQjNpE6IZiAYitHolF1v+uuKyn3oURyfSUhWdybCHyT0vc91IJjQ12M+3fp8QFPq 7szw== X-Gm-Message-State: ABy/qLYhgzXdQS5ijSlA3QFYgEsm2pA+eDROBu3j9J8ORnJHlgBuP3Rs Jiw+VfiNjj/3ba6Jaq0ffUCJaDowjPFwAMSmfQE= X-Received: by 2002:a19:7b0a:0:b0:4f8:6c1f:b1ab with SMTP id w10-20020a197b0a000000b004f86c1fb1abmr2825244lfc.27.1688162258504; Fri, 30 Jun 2023 14:57:38 -0700 (PDT) Received: from beast.fritz.box (62-178-148-172.cable.dynamic.surfer.at. [62.178.148.172]) by smtp.gmail.com with ESMTPSA id q7-20020aa7d447000000b005183ce42da9sm7052132edr.18.2023.06.30.14.57.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:57:38 -0700 (PDT) From: Christoph Muellner To: binutils@sourceware.org, Nathan Huckleberry , nhuck@pmull.org, Jeff Law , Nelson Chu , Andrew Waterman , Palmer Dabbelt , Jim Wilson , Philipp Tomsich Cc: =?utf-8?q?Christoph_M=C3=BCllner?= Subject: [PATCH v5 07/15] RISC-V: Add support for the Zvksh ISA extension Date: Fri, 30 Jun 2023 23:57:17 +0200 Message-ID: <20230630215725.3725876-8-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230630215725.3725876-1-christoph.muellner@vrull.eu> References: <20230630215725.3725876-1-christoph.muellner@vrull.eu> MIME-Version: 1.0 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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.29 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 Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770166568945660650?= X-GMAIL-MSGID: =?utf-8?q?1770166568945660650?= From: Christoph Müllner Zvksh is part of the vector crypto extensions. This extension adds the following instructions: - vsm3me.vv - vsm3c.vi bfd/ChangeLog: * elfxx-riscv.c (riscv_multi_subset_supports): Add instruction class support for Zvksh. (riscv_multi_subset_supports_ext): Likewise. gas/ChangeLog: * testsuite/gas/riscv/zvksh.d: New test. * testsuite/gas/riscv/zvksh.s: New test. include/ChangeLog: * opcode/riscv-opc.h (MATCH_VSM3C_VI): New. (MASK_VSM3C_VI): New. (MATCH_VSM3ME_VV): New. (MASK_VSM3ME_VV): New. (DECLARE_INSN): New. * opcode/riscv.h (enum riscv_insn_class): Add instruction class support for Zvksh. opcodes/ChangeLog: * riscv-opc.c: Add Zvksh instructions. Signed-off-by: Nathan Huckleberry Signed-off-by: Christoph Müllner --- bfd/elfxx-riscv.c | 5 +++++ gas/testsuite/gas/riscv/zvksh.d | 11 +++++++++++ gas/testsuite/gas/riscv/zvksh.s | 3 +++ include/opcode/riscv-opc.h | 8 ++++++++ include/opcode/riscv.h | 1 + opcodes/riscv-opc.c | 4 ++++ 6 files changed, 32 insertions(+) create mode 100644 gas/testsuite/gas/riscv/zvksh.d create mode 100644 gas/testsuite/gas/riscv/zvksh.s diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index f3f8a7401d9..10cdcc2eb84 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1269,6 +1269,7 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] = {"zvknha", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvknhb", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvksed", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zvksh", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl32b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl64b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl128b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, @@ -2451,6 +2452,8 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps, || riscv_subset_supports (rps, "zvknhb")); case INSN_CLASS_ZVKSED: return riscv_subset_supports (rps, "zvksed"); + case INSN_CLASS_ZVKSH: + return riscv_subset_supports (rps, "zvksh"); case INSN_CLASS_SVINVAL: return riscv_subset_supports (rps, "svinval"); case INSN_CLASS_H: @@ -2653,6 +2656,8 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps, return _("zvknhb"); case INSN_CLASS_ZVKSED: return _("zvksed"); + case INSN_CLASS_ZVKSH: + return _("zvksh"); case INSN_CLASS_SVINVAL: return "svinval"; case INSN_CLASS_H: diff --git a/gas/testsuite/gas/riscv/zvksh.d b/gas/testsuite/gas/riscv/zvksh.d new file mode 100644 index 00000000000..b24d126ed7b --- /dev/null +++ b/gas/testsuite/gas/riscv/zvksh.d @@ -0,0 +1,11 @@ +#as: -march=rv64gc_zvksh +#objdump: -dr + +.*:[ ]+file format .* + + +Disassembly of section .text: +0+000 <.text>: +[ ]+[0-9a-f]+:[ ]+ae802277[ ]+vsm3c.vi[ ]+v4,v8,0 +[ ]+[0-9a-f]+:[ ]+ae8fa277[ ]+vsm3c.vi[ ]+v4,v8,31 +[ ]+[0-9a-f]+:[ ]+82862277[ ]+vsm3me.vv[ ]+v4,v8,v12 diff --git a/gas/testsuite/gas/riscv/zvksh.s b/gas/testsuite/gas/riscv/zvksh.s new file mode 100644 index 00000000000..bde705c5e33 --- /dev/null +++ b/gas/testsuite/gas/riscv/zvksh.s @@ -0,0 +1,3 @@ + vsm3c.vi v4, v8, 0 + vsm3c.vi v4, v8, 31 + vsm3me.vv v4, v8, v12 diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h index 39c0cadd686..90f44153750 100644 --- a/include/opcode/riscv-opc.h +++ b/include/opcode/riscv-opc.h @@ -2205,6 +2205,11 @@ #define MASK_VSM4R_VS 0xfe0ff07f #define MATCH_VSM4R_VV 0xa2082077 #define MASK_VSM4R_VV 0xfe0ff07f +/* Zvksh instructions. */ +#define MATCH_VSM3C_VI 0xae002077 +#define MASK_VSM3C_VI 0xfe00707f +#define MATCH_VSM3ME_VV 0x82002077 +#define MASK_VSM3ME_VV 0xfe00707f /* Svinval instruction. */ #define MATCH_SINVAL_VMA 0x16000073 #define MASK_SINVAL_VMA 0xfe007fff @@ -3359,6 +3364,9 @@ DECLARE_INSN(vsha2ms_vv, MATCH_VSHA2MS_VV, MASK_VSHA2MS_VV) DECLARE_INSN(vsm4k_vi, MATCH_VSM4K_VI, MASK_VSM4K_VI) DECLARE_INSN(vsm4r_vs, MATCH_VSM4R_VS, MASK_VSM4R_VS) DECLARE_INSN(vsm4r_vv, MATCH_VSM4R_VV, MASK_VSM4R_VV) +/* Zvksh instructions. */ +DECLARE_INSN(vsm3c_vi, MATCH_VSM3C_VI, MASK_VSM3C_VI) +DECLARE_INSN(vsm3me_vv, MATCH_VSM3ME_VV, MASK_VSM3ME_VV) /* Vendor-specific (T-Head) XTheadBa instructions. */ DECLARE_INSN(th_addsl, MATCH_TH_ADDSL, MASK_TH_ADDSL) /* Vendor-specific (T-Head) XTheadBb instructions. */ diff --git a/include/opcode/riscv.h b/include/opcode/riscv.h index c378cce71c7..d859f44fc92 100644 --- a/include/opcode/riscv.h +++ b/include/opcode/riscv.h @@ -422,6 +422,7 @@ enum riscv_insn_class INSN_CLASS_ZVKNHB, INSN_CLASS_ZVKNHA_OR_ZVKNHB, INSN_CLASS_ZVKSED, + INSN_CLASS_ZVKSH, INSN_CLASS_SVINVAL, INSN_CLASS_ZICBOM, INSN_CLASS_ZICBOP, diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c index 095af039040..533e3f4a079 100644 --- a/opcodes/riscv-opc.c +++ b/opcodes/riscv-opc.c @@ -1935,6 +1935,10 @@ const struct riscv_opcode riscv_opcodes[] = {"vsm4r.vv", 0, INSN_CLASS_ZVKSED, "Vd,Vt", MATCH_VSM4R_VV, MASK_VSM4R_VV, match_opcode, 0}, {"vsm4r.vs", 0, INSN_CLASS_ZVKSED, "Vd,Vt", MATCH_VSM4R_VS, MASK_VSM4R_VS, match_opcode, 0}, +/* Zvksh instructions. */ +{"vsm3c.vi", 0, INSN_CLASS_ZVKSH, "Vd,Vt,Vj", MATCH_VSM3C_VI, MASK_VSM3C_VI, match_opcode, 0}, +{"vsm3me.vv", 0, INSN_CLASS_ZVKSH, "Vd,Vt,Vs", MATCH_VSM3ME_VV, MASK_VSM3ME_VV, match_opcode, 0}, + /* Supervisor instructions. */ {"csrr", 0, INSN_CLASS_ZICSR, "d,E", MATCH_CSRRS, MASK_CSRRS|MASK_RS1, match_opcode, INSN_ALIAS }, {"csrw", 0, INSN_CLASS_ZICSR, "E,s", MATCH_CSRRW, MASK_CSRRW|MASK_RD, match_opcode, INSN_ALIAS }, From patchwork Fri Jun 30 21:57:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christoph_M=C3=BCllner?= X-Patchwork-Id: 114895 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10682120vqr; Fri, 30 Jun 2023 15:01:20 -0700 (PDT) X-Google-Smtp-Source: APBJJlE8v0HldBtnXg7T1q83dnToG0q0dGWgEF0oIjWyJaU/kpvo/O+Y0FYMjqJM9hrsgwbBeDcG X-Received: by 2002:a17:906:5fd1:b0:975:942e:81e7 with SMTP id k17-20020a1709065fd100b00975942e81e7mr2635830ejv.37.1688162480754; Fri, 30 Jun 2023 15:01:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688162480; cv=none; d=google.com; s=arc-20160816; b=tX2Vfij8m3qRQG67YkgI6TYyK8gHBaoUnKYd1WbCtnTghk3FFfHp2qHN4hP4CEhIZm 91w6tAMqejm6eQmJjl72hHSUNyEeR6YL2p9tT6JJYCKaIUOuEWfphhGYXSoLJN2bug1P aOdHkcc5XgxG0FBg4BjT0zd1N1ct+W1A0HWFvODV3wuVblHCbDAUXRDLuxmHYVdsOuN+ ay2Rn51J1BQ5ybwhmXYEmFd5JCdJwztZ6o8fi6Xa37I/C7aOBNADtHDnYCU0mgsNyROv 2WUMCWMW9A72aMcm8zbQGxX9G1+ef3MzhfGW85PoLZZx0k2s47eyGToh0AUnoE2coYlr P7IA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=R5lRpedtwYUFOol931LVK8pJ5lHmC19DXQHwDNg6iRY=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=fE1ebluZes2PvrVklqKRCxGIE+BlyFYccdzHIGvvluN6vXzEkQbPUa1J4XKWraqan4 vLGLT5TS9m4ZrRek3MNFUnyfXDt44ZQF52TLBSRNqlIUFbwNHh2AoZotoNUOgAO7st7y F64NSfjstAvEcdbdB2hCqhWFF1WVdeUj81QsrZjy5QA5k8waEWscRtmgj6ZmnztYzKbx lnzAxqGTYdD9xQLTIBN4vJULnFN1kfXnMrXTerZrmKENOFak8JtBj0R1SiBPnoDa9W9H nRBh8cgLM3bpdN940f2KpRhEdBez1d0G38fDiTbDj8xn2wSN83ecNKTxwbkgNjAUMBhH TRTg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=m4Vzygg2; 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" Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id k26-20020a170906971a00b00991f598188csi6263657ejx.214.2023.06.30.15.01.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 15:01:20 -0700 (PDT) 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=@vrull.eu header.s=google header.b=m4Vzygg2; 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" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 78545395381B for ; Fri, 30 Jun 2023 21:58:36 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com [IPv6:2a00:1450:4864:20::531]) by sourceware.org (Postfix) with ESMTPS id A50A93829BCA for ; Fri, 30 Jun 2023 21:57:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A50A93829BCA Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=vrull.eu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=vrull.eu Received: by mail-ed1-x531.google.com with SMTP id 4fb4d7f45d1cf-51d9850ef09so2564711a12.0 for ; Fri, 30 Jun 2023 14:57:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688162260; x=1690754260; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=R5lRpedtwYUFOol931LVK8pJ5lHmC19DXQHwDNg6iRY=; b=m4Vzygg22e3I9aFhyKS68/giPg6ta5S7ZemFG5MCRBCZ6Xq3iIRXyqu+I1D4CSL6yC iPMyUdc2ji7vlCkaff3AYm7aVDCt3nb0/hMMwk/H8wAxHHAgqYK1/baGYEcasurE47Os gnINmmXnj/U2PFojUBq4nwqcoLhVnaD3HLuBiWBssv4egTvyyXUCCxktcaLE34JWCEvs e0FtVRhn0qlt8g5GgnuBn6cbeAl8VsgBf1Flya0PG00XqbeCNkGcj/wyy9K3Oh6EsInQ PRR2znzK1cPFO7CnRYy63rdkj7zt1ovbY2gQhpTMkRmKsbWPml2NavNrS+jRkRCJDKou Hkhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688162260; x=1690754260; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=R5lRpedtwYUFOol931LVK8pJ5lHmC19DXQHwDNg6iRY=; b=Ij0ChYfFsCSpRHoqihPnD6515Czi07Zxrlx8+IjDfZ2umUdvnSA6X3OUy+wG6wU1Ty f7Y5BqR6cBwpnvIMaiJdn0Zupel0B6aqPFUmOFiAgss74E8H2k9TtMsGFRfWFw2DezFw 2Q6VV/pp/2q21g7z8jFl54LUjDADUMrALMv/asLujpXVZPFxnPufQFDAgxRlC49+rPHB /D7jsuh1SUfCemG6HGCivyxW8tUlJ1DOMwIlSHP7nIhbrNdYLkIm2svg+vPklK9Iia7Q HF3Gl6J8AJ68IlexWvBwgPJlSHJlZ0BHhbMG0aZc3jTvLs3KgWx29Br39SBezo0hTCU4 h0Cg== X-Gm-Message-State: ABy/qLajh+CXcE+I4rgUr7Owx0A1tUR98oWva8zcm0RwFtHa830m2/4E /BYRBy2iKcb/3oxrC0cPEa0GMQGXkXu0LLDobBY= X-Received: by 2002:a05:6402:1654:b0:51b:dcb4:a9b3 with SMTP id s20-20020a056402165400b0051bdcb4a9b3mr2408254edx.24.1688162259998; Fri, 30 Jun 2023 14:57:39 -0700 (PDT) Received: from beast.fritz.box (62-178-148-172.cable.dynamic.surfer.at. [62.178.148.172]) by smtp.gmail.com with ESMTPSA id q7-20020aa7d447000000b005183ce42da9sm7052132edr.18.2023.06.30.14.57.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:57:39 -0700 (PDT) From: Christoph Muellner To: binutils@sourceware.org, Nathan Huckleberry , nhuck@pmull.org, Jeff Law , Nelson Chu , Andrew Waterman , Palmer Dabbelt , Jim Wilson , Philipp Tomsich Cc: =?utf-8?q?Christoph_M=C3=BCllner?= Subject: [PATCH v5 08/15] RISC-V: Add support for the Zvkn ISA extension Date: Fri, 30 Jun 2023 23:57:18 +0200 Message-ID: <20230630215725.3725876-9-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230630215725.3725876-1-christoph.muellner@vrull.eu> References: <20230630215725.3725876-1-christoph.muellner@vrull.eu> MIME-Version: 1.0 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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.29 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 Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770166661404332234?= X-GMAIL-MSGID: =?utf-8?q?1770166661404332234?= From: Christoph Müllner Zvkn is part of the vector crypto extensions. Zvkn is shorthand for the following set of extensions: - Zvkned - Zvknhb - Zvbb - Zvkt bfd/ChangeLog: * elfxx-riscv.c: Define Zvkn extension. gas/ChangeLog: * testsuite/gas/riscv/zvkn.d: New test. * testsuite/gas/riscv/zvkn.s: New test. Signed-off-by: Nathan Huckleberry Signed-off-by: Christoph Müllner --- bfd/elfxx-riscv.c | 5 ++++ gas/testsuite/gas/riscv/zvkn.d | 45 ++++++++++++++++++++++++++++++++++ gas/testsuite/gas/riscv/zvkn.s | 36 +++++++++++++++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 gas/testsuite/gas/riscv/zvkn.d create mode 100644 gas/testsuite/gas/riscv/zvkn.s diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index 10cdcc2eb84..426139d4960 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1156,6 +1156,10 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] = {"zks", "zbkx", check_implicit_always}, {"zks", "zksed", check_implicit_always}, {"zks", "zksh", check_implicit_always}, + {"zvkn", "zvkned", check_implicit_always}, + {"zvkn", "zvknha", check_implicit_always}, + {"zvkn", "zvknhb", check_implicit_always}, + {"zvkn", "zvbb", check_implicit_always}, {"smaia", "ssaia", check_implicit_always}, {"smstateen", "ssstateen", check_implicit_always}, {"smepmp", "zicsr", check_implicit_always}, @@ -1265,6 +1269,7 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] = {"zvbb", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvbc", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvkg", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zvkn", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvkned", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvknha", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvknhb", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, diff --git a/gas/testsuite/gas/riscv/zvkn.d b/gas/testsuite/gas/riscv/zvkn.d new file mode 100644 index 00000000000..abb92b9f001 --- /dev/null +++ b/gas/testsuite/gas/riscv/zvkn.d @@ -0,0 +1,45 @@ +#as: -march=rv64gc_zvkn +#objdump: -dr + +.*:[ ]+file format .* + + +Disassembly of section .text: +0+000 <.text>: +[ ]+[0-9a-f]+:[ ]+a280a277[ ]+vaesdf.vv[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+ba862277[ ]+vsha2ch.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+06860257[ ]+vandn.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+04860257[ ]+vandn.vv[ ]+v4,v8,v12,v0.t +[ ]+[0-9a-f]+:[ ]+0685c257[ ]+vandn.vx[ ]+v4,v8,a1 +[ ]+[0-9a-f]+:[ ]+0485c257[ ]+vandn.vx[ ]+v4,v8,a1,v0.t +[ ]+[0-9a-f]+:[ ]+4a852257[ ]+vbrev.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+48852257[ ]+vbrev.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+4a842257[ ]+vbrev8.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+48842257[ ]+vbrev8.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+4a84a257[ ]+vrev8.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+4884a257[ ]+vrev8.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+4a84a257[ ]+vrev8.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+4884a257[ ]+vrev8.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+4a862257[ ]+vclz.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+48862257[ ]+vclz.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+4a86a257[ ]+vctz.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+4886a257[ ]+vctz.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+4a872257[ ]+vcpop.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+48872257[ ]+vcpop.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+56860257[ ]+vrol.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+54860257[ ]+vrol.vv[ ]+v4,v8,v12,v0.t +[ ]+[0-9a-f]+:[ ]+5685c257[ ]+vrol.vx[ ]+v4,v8,a1 +[ ]+[0-9a-f]+:[ ]+5485c257[ ]+vrol.vx[ ]+v4,v8,a1,v0.t +[ ]+[0-9a-f]+:[ ]+52860257[ ]+vror.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+50860257[ ]+vror.vv[ ]+v4,v8,v12,v0.t +[ ]+[0-9a-f]+:[ ]+5285c257[ ]+vror.vx[ ]+v4,v8,a1 +[ ]+[0-9a-f]+:[ ]+5085c257[ ]+vror.vx[ ]+v4,v8,a1,v0.t +[ ]+[0-9a-f]+:[ ]+52803257[ ]+vror.vi[ ]+v4,v8,0 +[ ]+[0-9a-f]+:[ ]+548fb257[ ]+vror.vi[ ]+v4,v8,63,v0.t +[ ]+[0-9a-f]+:[ ]+d6860257[ ]+vwsll.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+d4860257[ ]+vwsll.vv[ ]+v4,v8,v12,v0.t +[ ]+[0-9a-f]+:[ ]+d685c257[ ]+vwsll.vx[ ]+v4,v8,a1 +[ ]+[0-9a-f]+:[ ]+d485c257[ ]+vwsll.vx[ ]+v4,v8,a1,v0.t +[ ]+[0-9a-f]+:[ ]+d6803257[ ]+vwsll.vi[ ]+v4,v8,0 +[ ]+[0-9a-f]+:[ ]+d48fb257[ ]+vwsll.vi[ ]+v4,v8,31,v0.t + diff --git a/gas/testsuite/gas/riscv/zvkn.s b/gas/testsuite/gas/riscv/zvkn.s new file mode 100644 index 00000000000..44e8f1769ce --- /dev/null +++ b/gas/testsuite/gas/riscv/zvkn.s @@ -0,0 +1,36 @@ + vaesdf.vv v4, v8 + vsha2ch.vv v4, v8, v12 + vandn.vv v4, v8, v12 + vandn.vv v4, v8, v12, v0.t + vandn.vx v4, v8, a1 + vandn.vx v4, v8, a1, v0.t + vbrev.v v4, v8 + vbrev.v v4, v8, v0.t + vbrev8.v v4, v8 + vbrev8.v v4, v8, v0.t + vrev8.v v4, v8 + vrev8.v v4, v8, v0.t + vrev8.v v4, v8 + vrev8.v v4, v8, v0.t + vclz.v v4, v8 + vclz.v v4, v8, v0.t + vctz.v v4, v8 + vctz.v v4, v8, v0.t + vcpop.v v4, v8 + vcpop.v v4, v8, v0.t + vrol.vv v4, v8, v12 + vrol.vv v4, v8, v12, v0.t + vrol.vx v4, v8, a1 + vrol.vx v4, v8, a1, v0.t + vror.vv v4, v8, v12 + vror.vv v4, v8, v12, v0.t + vror.vx v4, v8, a1 + vror.vx v4, v8, a1, v0.t + vror.vi v4, v8, 0 + vror.vi v4, v8, 63, v0.t + vwsll.vv v4, v8, v12 + vwsll.vv v4, v8, v12, v0.t + vwsll.vx v4, v8, a1 + vwsll.vx v4, v8, a1, v0.t + vwsll.vi v4, v8, 0 + vwsll.vi v4, v8, 31, v0.t From patchwork Fri Jun 30 21:57:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christoph_M=C3=BCllner?= X-Patchwork-Id: 114901 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10685497vqr; Fri, 30 Jun 2023 15:06:28 -0700 (PDT) X-Google-Smtp-Source: APBJJlH2UGaBv/b8JUY0Dkc04gUmqW0EgbBItxeJ0xxyz8fy2/3EJN+yvHEMPk9bxb7q96oqbm2M X-Received: by 2002:a17:906:c7c9:b0:992:344e:d62d with SMTP id dc9-20020a170906c7c900b00992344ed62dmr2788712ejb.28.1688162788170; Fri, 30 Jun 2023 15:06:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688162788; cv=none; d=google.com; s=arc-20160816; b=nsCMiuLc+LrbtF7+02+G7vM/5CsbN1LHy0p31ONPx6s5oIEGM3VUu4iqKH5YGs3Bz0 UO4oQfqumvdNTiUnst5dByEMtZcvkeXy+9TAI5+qo854X43em0TUv/2QTVSO4ogv5Sr9 2udemyNB2CxL3p+J2uBsKgUdpd4pAf/UlXnsJa8s1CfInSzwQI5bM+blMiuz/jQ+xj3l iTlNcJUE4aE6VLe3QhZOo9UZuwjaRAfhMkWK/fnztko5irwGgCBjLLImnKaXFn9ZzLgw 5zO2GWNjJ/oCr8kBMVSq0D9jvptfDvBoY6eJuW8+HR6JsMS/0fve3k3NNrEXL4Er3zrq NznA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=1QmwMFKfPfcsLwNEUVIjISeKieF1fgKQWK1Sa4sFZM4=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=sD/V0CDOOcmtLku8umMpIbJ26k/+CiEiiQgkqGoShrF7lXic35BMOlpQp55I2y6yUI rLirifIjeElzD3OvPjL00X5SL+F2t+Sx5yi2w1RKN15Pxva+4KdUYgYsdfVPNUmFf2+5 igMYAIlyy7alqmwP+NWvD09SrBCsskxpCGZZY7egbbBE2oJ+WnGarpMD06i8/ZNpyE5H Ye2tdpW3vjbyP0dAZsuChkeGamer1XwxaXX2m/CCvUhOq0GWzUQ7ojhmRTCPDjLDCMkn NyXLTu29giBwdNC9SR1ogJ4UtLwGguQkOjxkIQ0Oa4ffRmg4ZGRMVaqt/OCQR03yMRV9 Vm4Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=K9CIVbV8; 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" Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id rn1-20020a170906d92100b00982a5377650si8470600ejb.247.2023.06.30.15.06.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 15:06:28 -0700 (PDT) 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=@vrull.eu header.s=google header.b=K9CIVbV8; 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" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 342F13AA8024 for ; Fri, 30 Jun 2023 21:59:55 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com [IPv6:2a00:1450:4864:20::236]) by sourceware.org (Postfix) with ESMTPS id B378A382A2E7 for ; Fri, 30 Jun 2023 21:57:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B378A382A2E7 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=vrull.eu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=vrull.eu Received: by mail-lj1-x236.google.com with SMTP id 38308e7fff4ca-2b69a48368fso37696261fa.0 for ; Fri, 30 Jun 2023 14:57:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688162261; x=1690754261; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1QmwMFKfPfcsLwNEUVIjISeKieF1fgKQWK1Sa4sFZM4=; b=K9CIVbV8oR0Mw5UC/0JFbubXJvY1gsPVzmZCssf1pYOU19HAvOzsV99Ge/eXWikyNQ hnOyd8hUnhXgoiK91KwTA6QLKzDkgYtcxNWQWVmogPkf8hGtxypoJEbF5BigVx03uvtl rZV6+7EP6nDCo7RENpY2aq+jMrbloQQEAJ03TxdPnbr4ReLfozNuU0Lngz+7iol4K2zH bnuKj/gxFEuIIAli1MlSynGZDCiTxwjHZzg5r5O2315kyJjk624ueTj8XM/a0iKA9M/F GFFKTIPLFQB+5SRH++w4obxhXVC/0rCkS5+mE+fAVTRVwbFPjZYDBzcRg4gVxkrQa7Ls QWTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688162261; x=1690754261; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1QmwMFKfPfcsLwNEUVIjISeKieF1fgKQWK1Sa4sFZM4=; b=ZfoK55LOrsDiiYhJLE1siDccHE7mitCXGvQMjeVLOlEWiCik6nc87BgXBanelKvXDj Zqun3wZsab/0Wq3670NNLRM0TdUM7Mrtm1t+qFQyQ0Rj1Rxwhns2566vDswnTvQIwS4h k3/s7A+zUzAR5EdYY0va9koGBE8Q/2V/enh3IOCIkhIRMpximCV+aZZVZBrDSYVmfNkZ NBAXKueYrHTBDLKtnuAbKqVWdezxITcL+fexWJavZIiIoWsjXpNWscM/ue1qG9OEcway CMjo8rm2dnmAyd5yJT5U3ppmiJB4DpBRRjBwidCgLRkRUH4e7b/yJPURKPwxSN54eV4Q RjMQ== X-Gm-Message-State: ABy/qLaYipAM0dHNiU0yq/ZvPpeojl+XjxEhqjcF09smharquP5/4rnq PcW9nRAwb0uqNRe2l/+TW/ZRhJ7HdLFyTl+BA7I= X-Received: by 2002:a2e:8058:0:b0:2b5:8eae:7848 with SMTP id p24-20020a2e8058000000b002b58eae7848mr3164361ljg.44.1688162260944; Fri, 30 Jun 2023 14:57:40 -0700 (PDT) Received: from beast.fritz.box (62-178-148-172.cable.dynamic.surfer.at. [62.178.148.172]) by smtp.gmail.com with ESMTPSA id q7-20020aa7d447000000b005183ce42da9sm7052132edr.18.2023.06.30.14.57.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:57:40 -0700 (PDT) From: Christoph Muellner To: binutils@sourceware.org, Nathan Huckleberry , nhuck@pmull.org, Jeff Law , Nelson Chu , Andrew Waterman , Palmer Dabbelt , Jim Wilson , Philipp Tomsich Cc: =?utf-8?q?Christoph_M=C3=BCllner?= Subject: [PATCH v5 09/15] RISC-V: Allow nested implications for extensions Date: Fri, 30 Jun 2023 23:57:19 +0200 Message-ID: <20230630215725.3725876-10-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230630215725.3725876-1-christoph.muellner@vrull.eu> References: <20230630215725.3725876-1-christoph.muellner@vrull.eu> MIME-Version: 1.0 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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.29 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 Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770166983605133647?= X-GMAIL-MSGID: =?utf-8?q?1770166983605133647?= From: Nathan Huckleberry via Binutils Certain extensions require two levels of implications. For example, zvkng implies zvkn and zvkn implies zvkned. Enabling zvkng should also enable zvkned. This patch fixes this behavior. bfd/ChangeLog: * elfxx-riscv.c (riscv_parse_add_implicit_subsets): Allow nested implications for extensions. Signed-off-by: Nathan Huckleberry Signed-off-by: Christoph Müllner --- bfd/elfxx-riscv.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index 426139d4960..ee368a74b4b 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1873,15 +1873,27 @@ static void riscv_parse_add_implicit_subsets (riscv_parse_subset_t *rps) { struct riscv_implicit_subset *t = riscv_implicit_subsets; - for (; t->subset_name; t++) + bool finished = false; + while (!finished) { + finished = true; + for (; t->subset_name; t++) { riscv_subset_t *subset = NULL; + riscv_subset_t *implicit_subset = NULL; if (riscv_lookup_subset (rps->subset_list, t->subset_name, &subset) - && t->check_func (t->implicit_name, subset)) + && !riscv_lookup_subset (rps->subset_list, t->implicit_name, &implicit_subset) + && t->check_func (t->implicit_name, subset)) { riscv_parse_add_subset (rps, t->implicit_name, RISCV_UNKNOWN_VERSION, RISCV_UNKNOWN_VERSION, true); + + /* Restart the loop and pick up any new implications. */ + finished = false; + t = riscv_implicit_subsets; + break; + } } + } } /* Check extensions conflicts. */ From patchwork Fri Jun 30 21:57:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christoph_M=C3=BCllner?= X-Patchwork-Id: 114894 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10681924vqr; Fri, 30 Jun 2023 15:01:07 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5QJLbFCbch45gHq1CU5WdNBDKjuvnN5noOu5Z1/nERXnwRmwtyY5hggWgPKkijlNJi4Vnr X-Received: by 2002:a17:906:16c4:b0:989:1a52:72b5 with SMTP id t4-20020a17090616c400b009891a5272b5mr2787258ejd.45.1688162466982; Fri, 30 Jun 2023 15:01:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688162466; cv=none; d=google.com; s=arc-20160816; b=xGSriKIwxTkEd+YAaVpfw8YBYnDEHzu0AohBkUJ0gMESFhzi/RFMM8DVbOI/BktZP4 pyaAgAWWXVU/YA39Bbqzkt4qdtUwz/ALdQjGJEN1a35/jAYtVopEJZaDVfR9PO12PR7H lxUvlUpxhOyYhiCUdIN1XYYzn5VPLMwAEvbQ06qUBktXNiwrWvPI6IhpID8RfzeOlqSl /R3OoXSKzsh1882SQi0v1debtV7YHOsHQkqrzK3O8OU6O9nbZsJhsj0oqLr7YQ1/P/Ch JuAfoMWF6VwE9rA/Kj25sW5TaVh0tQFL9rXbTx1MxeBDtlvsDEK5szNUhvPxp+0piSNX N79g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=Gcioqr4w1OT0VAcNF79J1RW+EZoJhMJCgf/MleycIbA=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=tN/KsRLpvtu4caPqWcdAmh8J/TUYI/kOcl4Lnp6GQL4ztd9a9rzx6aXAtjvMWIPway uAxViK7wickqo7h0T/gUTPD+WTFZcBXy6def7UiixNF4U4uMQyflvWaKvVOkgi9oLqpF SvUt4Mo1qyjnss2qzrZoah4O3Z2DD8sv7/R57d71M6YaPOXWpsxO0W23mFcAfViNQ4dU 2vYX9SUvnz4G1rpCDpI4R0B6dZHRhk1ipulgN6VO/ibrhtANyZyU6ICsW6HAsR/tMZwu 3L/LP6h8a0plrEZfWjF1nmU6lax/UCuHls2G8pTsWtpXJyy63AAcoRt4MHjcZFkKv/tw DmQg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=NQ2F4swU; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id t23-20020a170906179700b00988c66d2480si7937672eje.80.2023.06.30.15.01.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 15:01:06 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=NQ2F4swU; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 951E1394743F for ; Fri, 30 Jun 2023 21:58:33 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) by sourceware.org (Postfix) with ESMTPS id 23FD2382C103 for ; Fri, 30 Jun 2023 21:57:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 23FD2382C103 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=vrull.eu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=vrull.eu Received: by mail-ed1-x52d.google.com with SMTP id 4fb4d7f45d1cf-51da8a744c4so2511688a12.0 for ; Fri, 30 Jun 2023 14:57:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688162262; x=1690754262; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Gcioqr4w1OT0VAcNF79J1RW+EZoJhMJCgf/MleycIbA=; b=NQ2F4swU6SDyTfjxpR7uSpJLabBE8IvWPpGMEWxPgH2b5vv7B1D3stLdDObufrauM6 DonQzzjEleIY9NcUrwlNl5NYsm6NgXjDSdkoU739hczNjausXsRLDTmCFZRa+wYBV1KF 2R6FmksDCmZmsq67TNNAimgNqZ263bHc6sv5dvZs/4E0R9MPnKNdP3nnvGrgcDZFZFnA QbR/4oh6bLRYg9klOGywcVr40DsAHPZG+IEjgDnDexLM3umSxKjw8S6iOWQ7FZvclhaE CWDhbCiDpdrVd09eZNJCKe94GVdTvwJNmxoNeCfQ90LadcYvKHG4hRZyLce0hksXDZlL ZRnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688162262; x=1690754262; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Gcioqr4w1OT0VAcNF79J1RW+EZoJhMJCgf/MleycIbA=; b=JYACCKh+mAlkky044bQYg2gnyX22LfA2lx5gXKhR4eOCfdOu2By9ajlkwob7OiDCQy 4JTNwwxNegE0n7TU9FA/4KxUku3YoE3PpK9C63Cct7zTBVZ2vX3BEawqd25057ENs1QW byzOW6eoGZwONlMZlCRHom99VfsYo7DrZMlsKobfCv+NfGOIi1d3QvEVRtAfPnosyWn9 MMRGGmm6XqeP6nz0sekoHa3oiuLSZRZM7vZ31xoC+C1rYAP/0uww+uca2828bQcD3Kma 7Ch2PipPFY4/M19TikgdV7NsIr+AardSwYJb2P0MdR+ckwxskSI+v6vO57ius8Iistaq DOkw== X-Gm-Message-State: ABy/qLbRdfof9m04p4oLM7UjiPhDuLbYdSrWQSdKw1FAqz8t0FImdXmG hfHaN7glwGKlXJvKHk0jf5+o+gGH7hvdedIrPsY= X-Received: by 2002:aa7:d98e:0:b0:518:721e:f594 with SMTP id u14-20020aa7d98e000000b00518721ef594mr2661526eds.37.1688162262470; Fri, 30 Jun 2023 14:57:42 -0700 (PDT) Received: from beast.fritz.box (62-178-148-172.cable.dynamic.surfer.at. [62.178.148.172]) by smtp.gmail.com with ESMTPSA id q7-20020aa7d447000000b005183ce42da9sm7052132edr.18.2023.06.30.14.57.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:57:42 -0700 (PDT) From: Christoph Muellner To: binutils@sourceware.org, Nathan Huckleberry , nhuck@pmull.org, Jeff Law , Nelson Chu , Andrew Waterman , Palmer Dabbelt , Jim Wilson , Philipp Tomsich Cc: =?utf-8?q?Christoph_M=C3=BCllner?= Subject: [PATCH v5 10/15] RISC-V: Add support for the Zvkng ISA extension Date: Fri, 30 Jun 2023 23:57:20 +0200 Message-ID: <20230630215725.3725876-11-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230630215725.3725876-1-christoph.muellner@vrull.eu> References: <20230630215725.3725876-1-christoph.muellner@vrull.eu> MIME-Version: 1.0 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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.29 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 Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770166646971334529?= X-GMAIL-MSGID: =?utf-8?q?1770166646971334529?= From: Nathan Huckleberry via Binutils Zvkng is part of the vector crypto extensions. Zvkng is shorthand for the following set of extensions: - Zvkn - Zvkg bfd/ChangeLog: * elfxx-riscv.c: Define Zvkng extension. gas/ChangeLog: * testsuite/gas/riscv/zvkng.d: New test. * testsuite/gas/riscv/zvkng.s: New test. Signed-off-by: Nathan Huckleberry Signed-off-by: Christoph Müllner --- bfd/elfxx-riscv.c | 3 +++ gas/testsuite/gas/riscv/zvkng.d | 12 ++++++++++++ gas/testsuite/gas/riscv/zvkng.s | 4 ++++ 3 files changed, 19 insertions(+) create mode 100644 gas/testsuite/gas/riscv/zvkng.d create mode 100644 gas/testsuite/gas/riscv/zvkng.s diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index ee368a74b4b..e6de960d4f0 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1160,6 +1160,8 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] = {"zvkn", "zvknha", check_implicit_always}, {"zvkn", "zvknhb", check_implicit_always}, {"zvkn", "zvbb", check_implicit_always}, + {"zvkng", "zvkn", check_implicit_always}, + {"zvkng", "zvkg", check_implicit_always}, {"smaia", "ssaia", check_implicit_always}, {"smstateen", "ssstateen", check_implicit_always}, {"smepmp", "zicsr", check_implicit_always}, @@ -1270,6 +1272,7 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] = {"zvbc", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvkg", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvkn", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zvkng", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvkned", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvknha", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvknhb", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, diff --git a/gas/testsuite/gas/riscv/zvkng.d b/gas/testsuite/gas/riscv/zvkng.d new file mode 100644 index 00000000000..1206350c7e5 --- /dev/null +++ b/gas/testsuite/gas/riscv/zvkng.d @@ -0,0 +1,12 @@ +#as: -march=rv64gc_zvkng +#objdump: -dr + +.*:[ ]+file format .* + + +Disassembly of section .text: +0+000 <.text>: +[ ]+[0-9a-f]+:[ ]+a280a277[ ]+vaesdf.vv[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+ba862277[ ]+vsha2ch.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+b2862277[ ]+vghsh.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+a2c8a277[ ]+vgmul.vv[ ]+v4,v12 diff --git a/gas/testsuite/gas/riscv/zvkng.s b/gas/testsuite/gas/riscv/zvkng.s new file mode 100644 index 00000000000..5c24ffd63c8 --- /dev/null +++ b/gas/testsuite/gas/riscv/zvkng.s @@ -0,0 +1,4 @@ + vaesdf.vv v4, v8 + vsha2ch.vv v4, v8, v12 + vghsh.vv v4, v8, v12 + vgmul.vv v4, v12 From patchwork Fri Jun 30 21:57:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christoph_M=C3=BCllner?= X-Patchwork-Id: 114897 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10683844vqr; Fri, 30 Jun 2023 15:03:41 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7Gj2ncVCG688L7Z3qycPH2kW9+J9yS0/UbRJUQIVeTmrq6BBdlX81ebWWD39AHhxZSeLxR X-Received: by 2002:a17:906:abd2:b0:987:e230:690 with SMTP id kq18-20020a170906abd200b00987e2300690mr2868148ejb.57.1688162621287; Fri, 30 Jun 2023 15:03:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688162621; cv=none; d=google.com; s=arc-20160816; b=KdNUvdqbm4oWhAidcn7eEc7FznVVq0OwjwLu8LkMt9abdGvA1NyeM6YnWWo/Ezd88m DQlp7OGES6iNc9sMVbVLSieAZwop3E26PXDXPERdm5tHeCMdOPJHTcyyjcunY46H9kJR IdTgfOL+3pP9/8veqyT7RN4PuvL8SDpBFjlqU1MnAikJ4coBHG/xINSsr/NqQrF9qCQH TxXSlEOptePLprBhZwnMbUvBSPEoGKryujUOGKgQrsOSFgAtXw7QmNen/XlgJlR/Y6d/ a7gx7hV2mvjzyXRFt/+Ck6xen65Sv9pmFIQPvbrjmDjp7XTfdEdqHujOSt4EQYTiJKyA RPUg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=mjTrZJJxfV9qZ87VkGF5Yyx7WoY1Yc9OBDXuORelS08=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=QgBeMxdmCWrYE/TNFMh99oXGhPxmPo2IH/SxxMcmMDqM+uLevIcmV2BSplak235ZE+ EPKUuHrVM6TDzKwNc8iTxgVIWpbhSF/zqt6HtnEXQi5wG8nMWBgSqO/cvooJCu83yHch M4fxqwEto2g6GOjs090L136df4UCRdwWoBg3KRxhPZ44jq6JjCLgu/cpbu1+TcDGZXAk W5syZ0eMO1cYWBPrf/ulAbQCABVtenrrhVXOnOF9t2zQWKUVRTWc+tQUYFVMUUxX/ZdG Ajr+MiPi9n7Z2l1tBwusb4yonWc6b+o0LH9J2hHZwrnz4OE1D2GyLGLPLcPwh/uPrba4 PjJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=Zg8KvURg; 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" Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id j8-20020a170906830800b0098ce1b37a89si9290050ejx.316.2023.06.30.15.03.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 15:03:41 -0700 (PDT) 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=@vrull.eu header.s=google header.b=Zg8KvURg; 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" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B14D0396E068 for ; Fri, 30 Jun 2023 21:59:04 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com [IPv6:2a00:1450:4864:20::132]) by sourceware.org (Postfix) with ESMTPS id 7D3353887F4A for ; Fri, 30 Jun 2023 21:57:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7D3353887F4A Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=vrull.eu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=vrull.eu Received: by mail-lf1-x132.google.com with SMTP id 2adb3069b0e04-4f8735ac3e3so3831208e87.2 for ; Fri, 30 Jun 2023 14:57:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688162263; x=1690754263; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mjTrZJJxfV9qZ87VkGF5Yyx7WoY1Yc9OBDXuORelS08=; b=Zg8KvURgO/JuyHdtY/+SaIk23QQM5xofh2vQzFCmUAkfN9j02r9zZP/gGZd0DRN6IE PYUtsYe6Eq9xAk3XtT3k5E57O0UcfjNflIYWjDj558h4J1tG62v8Uh38JWxV4be1AvMn TomGmlLE571OYJZCUnnYk4rW0DB73l7dlpBpgBLBlGIkwMxfbXkmo2VmpkcGnurH77li kbcrNz6NGInxfwEJ5QpPS+CKD8idVM9MOxFmIZWrpycwYvFRVriD3mahu6VC2+UVw6pm HQNkOYn1QxIOv+jNSq120+eTo48Tctr3xrYvJBNTWFgmnALLFCWud3+7P9xAjj+4eEYa mn6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688162263; x=1690754263; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mjTrZJJxfV9qZ87VkGF5Yyx7WoY1Yc9OBDXuORelS08=; b=Ynn5attSVncHkMBkG7jygQSl+h55angoI4nchTflcgoH355MLaSyq/35+6yf9WKRXX Afj8bQhL6u6YYfVa3mrWy79jP/P1IVRE9iF6PdH6/07XPc35L1guFrASLcbhoRPwFsRY JAh3LOLXgCW4Jkw+o/sG0S4rT8vEm2a5YOloQg+QsPIOAunodN15mDhlW5WusPprbfmD KYGNptZ+6Wvsj+LESdDBQ+6gnbFl9yD5kpWGcAeBa4JqeyLXBor6jNaL5SdbiAMum7o0 mp27RnYrKjxavKegd8cncmxEqAxG74x224SMiAkrS6PPhv1Zu5lgObTFE+fhDVIuYzTa jNIA== X-Gm-Message-State: ABy/qLbS25yrWLBfeAB9xEcene9nz2bSeWNt5MLkbdRoc+HODlukTBrP u0194oCP9ESN/RTMoLd4RfIVIvZXNU1kvof69Zs= X-Received: by 2002:a19:431e:0:b0:4f8:5886:186d with SMTP id q30-20020a19431e000000b004f85886186dmr2706349lfa.9.1688162263644; Fri, 30 Jun 2023 14:57:43 -0700 (PDT) Received: from beast.fritz.box (62-178-148-172.cable.dynamic.surfer.at. [62.178.148.172]) by smtp.gmail.com with ESMTPSA id q7-20020aa7d447000000b005183ce42da9sm7052132edr.18.2023.06.30.14.57.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:57:43 -0700 (PDT) From: Christoph Muellner To: binutils@sourceware.org, Nathan Huckleberry , nhuck@pmull.org, Jeff Law , Nelson Chu , Andrew Waterman , Palmer Dabbelt , Jim Wilson , Philipp Tomsich Cc: =?utf-8?q?Christoph_M=C3=BCllner?= Subject: [PATCH v5 11/15] RISC-V: Add support for the Zvks ISA extension Date: Fri, 30 Jun 2023 23:57:21 +0200 Message-ID: <20230630215725.3725876-12-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230630215725.3725876-1-christoph.muellner@vrull.eu> References: <20230630215725.3725876-1-christoph.muellner@vrull.eu> MIME-Version: 1.0 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SCC_5_SHORT_WORD_LINES, SPF_HELO_NONE, SPF_PASS, 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.29 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 Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770166808732453264?= X-GMAIL-MSGID: =?utf-8?q?1770166808732453264?= From: Christoph Müllner Zvks is part of the vector crypto extensions. Zvks is shorthand for the following set of extensions: - Zvksed - Zvksh - Zvbb - Zvkt bfd/ChangeLog: * elfxx-riscv.c: Define Zvks extension. gas/ChangeLog: * testsuite/gas/riscv/zvks.d: New test. * testsuite/gas/riscv/zvks.s: New test. Signed-off-by: Nathan Huckleberry Signed-off-by: Christoph Müllner --- bfd/elfxx-riscv.c | 4 +++ gas/testsuite/gas/riscv/zvks.d | 45 ++++++++++++++++++++++++++++++++++ gas/testsuite/gas/riscv/zvks.s | 36 +++++++++++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 gas/testsuite/gas/riscv/zvks.d create mode 100644 gas/testsuite/gas/riscv/zvks.s diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index e6de960d4f0..d0135d9ee89 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1162,6 +1162,9 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] = {"zvkn", "zvbb", check_implicit_always}, {"zvkng", "zvkn", check_implicit_always}, {"zvkng", "zvkg", check_implicit_always}, + {"zvks", "zvksed", check_implicit_always}, + {"zvks", "zvksh", check_implicit_always}, + {"zvks", "zvbb", check_implicit_always}, {"smaia", "ssaia", check_implicit_always}, {"smstateen", "ssstateen", check_implicit_always}, {"smepmp", "zicsr", check_implicit_always}, @@ -1278,6 +1281,7 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] = {"zvknhb", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvksed", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvksh", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zvks", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl32b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl64b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl128b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, diff --git a/gas/testsuite/gas/riscv/zvks.d b/gas/testsuite/gas/riscv/zvks.d new file mode 100644 index 00000000000..2f55630f505 --- /dev/null +++ b/gas/testsuite/gas/riscv/zvks.d @@ -0,0 +1,45 @@ +#as: -march=rv64gc_zvks +#objdump: -dr + +.*:[ ]+file format .* + + +Disassembly of section .text: +0+000 <.text>: +[ ]+[0-9a-f]+:[ ]+86802277[ ]+vsm4k.vi[ ]+v4,v8,0 +[ ]+[0-9a-f]+:[ ]+ae802277[ ]+vsm3c.vi[ ]+v4,v8,0 +[ ]+[0-9a-f]+:[ ]+06860257[ ]+vandn.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+04860257[ ]+vandn.vv[ ]+v4,v8,v12,v0.t +[ ]+[0-9a-f]+:[ ]+0685c257[ ]+vandn.vx[ ]+v4,v8,a1 +[ ]+[0-9a-f]+:[ ]+0485c257[ ]+vandn.vx[ ]+v4,v8,a1,v0.t +[ ]+[0-9a-f]+:[ ]+4a852257[ ]+vbrev.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+48852257[ ]+vbrev.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+4a842257[ ]+vbrev8.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+48842257[ ]+vbrev8.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+4a84a257[ ]+vrev8.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+4884a257[ ]+vrev8.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+4a84a257[ ]+vrev8.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+4884a257[ ]+vrev8.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+4a862257[ ]+vclz.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+48862257[ ]+vclz.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+4a86a257[ ]+vctz.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+4886a257[ ]+vctz.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+4a872257[ ]+vcpop.v[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+48872257[ ]+vcpop.v[ ]+v4,v8,v0.t +[ ]+[0-9a-f]+:[ ]+56860257[ ]+vrol.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+54860257[ ]+vrol.vv[ ]+v4,v8,v12,v0.t +[ ]+[0-9a-f]+:[ ]+5685c257[ ]+vrol.vx[ ]+v4,v8,a1 +[ ]+[0-9a-f]+:[ ]+5485c257[ ]+vrol.vx[ ]+v4,v8,a1,v0.t +[ ]+[0-9a-f]+:[ ]+52860257[ ]+vror.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+50860257[ ]+vror.vv[ ]+v4,v8,v12,v0.t +[ ]+[0-9a-f]+:[ ]+5285c257[ ]+vror.vx[ ]+v4,v8,a1 +[ ]+[0-9a-f]+:[ ]+5085c257[ ]+vror.vx[ ]+v4,v8,a1,v0.t +[ ]+[0-9a-f]+:[ ]+52803257[ ]+vror.vi[ ]+v4,v8,0 +[ ]+[0-9a-f]+:[ ]+548fb257[ ]+vror.vi[ ]+v4,v8,63,v0.t +[ ]+[0-9a-f]+:[ ]+d6860257[ ]+vwsll.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+d4860257[ ]+vwsll.vv[ ]+v4,v8,v12,v0.t +[ ]+[0-9a-f]+:[ ]+d685c257[ ]+vwsll.vx[ ]+v4,v8,a1 +[ ]+[0-9a-f]+:[ ]+d485c257[ ]+vwsll.vx[ ]+v4,v8,a1,v0.t +[ ]+[0-9a-f]+:[ ]+d6803257[ ]+vwsll.vi[ ]+v4,v8,0 +[ ]+[0-9a-f]+:[ ]+d48fb257[ ]+vwsll.vi[ ]+v4,v8,31,v0.t + diff --git a/gas/testsuite/gas/riscv/zvks.s b/gas/testsuite/gas/riscv/zvks.s new file mode 100644 index 00000000000..b0d3d824f3a --- /dev/null +++ b/gas/testsuite/gas/riscv/zvks.s @@ -0,0 +1,36 @@ + vsm4k.vi v4, v8, 0 + vsm3c.vi v4, v8, 0 + vandn.vv v4, v8, v12 + vandn.vv v4, v8, v12, v0.t + vandn.vx v4, v8, a1 + vandn.vx v4, v8, a1, v0.t + vbrev.v v4, v8 + vbrev.v v4, v8, v0.t + vbrev8.v v4, v8 + vbrev8.v v4, v8, v0.t + vrev8.v v4, v8 + vrev8.v v4, v8, v0.t + vrev8.v v4, v8 + vrev8.v v4, v8, v0.t + vclz.v v4, v8 + vclz.v v4, v8, v0.t + vctz.v v4, v8 + vctz.v v4, v8, v0.t + vcpop.v v4, v8 + vcpop.v v4, v8, v0.t + vrol.vv v4, v8, v12 + vrol.vv v4, v8, v12, v0.t + vrol.vx v4, v8, a1 + vrol.vx v4, v8, a1, v0.t + vror.vv v4, v8, v12 + vror.vv v4, v8, v12, v0.t + vror.vx v4, v8, a1 + vror.vx v4, v8, a1, v0.t + vror.vi v4, v8, 0 + vror.vi v4, v8, 63, v0.t + vwsll.vv v4, v8, v12 + vwsll.vv v4, v8, v12, v0.t + vwsll.vx v4, v8, a1 + vwsll.vx v4, v8, a1, v0.t + vwsll.vi v4, v8, 0 + vwsll.vi v4, v8, 31, v0.t From patchwork Fri Jun 30 21:57:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christoph_M=C3=BCllner?= X-Patchwork-Id: 114903 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10686202vqr; Fri, 30 Jun 2023 15:07:45 -0700 (PDT) X-Google-Smtp-Source: APBJJlHZf4YcmLoRzZFlOUfQ8ErGwCfcfb6MWmeHWDmJPxNfA0QxgPYO/STlSVCL1kUaKTug1qq0 X-Received: by 2002:a19:8c1d:0:b0:4f4:b13a:d683 with SMTP id o29-20020a198c1d000000b004f4b13ad683mr2921037lfd.69.1688162865550; Fri, 30 Jun 2023 15:07:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688162865; cv=none; d=google.com; s=arc-20160816; b=OxCgrfaDLFUdLPKmhVBVQVrXm/PsBNk4xDYPVrYLnMxlCjy7Vjjn9turXZo7VFjh94 +OWdrAiYKNMOox1y7MOCMvdR8R1cTaABpOwU+ew8Xbeq/zuO+gJo9w+683JCgiH1moCC 4H2z7LaSof796NfetNPraiaKW0XXAeWZAl6bpRpdVSSY7VeARZeZr2cbsun5UsBSs3Ls 6GelzMQymL+u1mcPV5oBPVmxfe/RRwRsLdvKdu69EFM/vVuii5bd4O1+CGDunQ6oYVLn DJYF2Wt/0UuXTwPofzNbviW2HrNcyZZYY54flhtgXgpqL+Nw5+UZBjMooCeh8M7DrBcz cC9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=g9xJm1ak6G2RqM0RlIi2sfs8ix3a/YuCW6Jz9ASiTns=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=nqQYnR7SJVmymyNb6NM6KflI0oS3UN7wAFn7GkhEosgHftDK3yQjptPYdCaDJn4jef ANqJsmyDzJvfuNyuTpSMPgBW8EL9cn/0IiPgLuusEX466kB7gPomTUS1kYWnNiMeuWcF M5GpO8VpgEurwpDYFRKXEdqJ2+9X9eB+p4L4EbJYXlLmNfwv1332YKzWSvu42+OwxXGD K1vE+aHTlINOkHdgcFNAU7S7wsg8faqL9fNCu7JnH3l1cHxvwdWPHUj8M/x3zpTiXl04 7SzGAOk8HFcW/V3UHHQ+WJlsJnpfZ8z/yv6gCpk6w2c8JxHB3a2VGREbLB6pnA3wf9yv ZPeQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=qVs+VWIY; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id e4-20020a056402088400b0051d975c7fbesi266191edy.171.2023.06.30.15.07.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 15:07:45 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=qVs+VWIY; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 852F6382F965 for ; Fri, 30 Jun 2023 22:00:26 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com [IPv6:2a00:1450:4864:20::12e]) by sourceware.org (Postfix) with ESMTPS id 97518382A2F6 for ; Fri, 30 Jun 2023 21:57:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 97518382A2F6 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=vrull.eu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=vrull.eu Received: by mail-lf1-x12e.google.com with SMTP id 2adb3069b0e04-4f76a0a19d4so3806708e87.2 for ; Fri, 30 Jun 2023 14:57:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688162265; x=1690754265; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=g9xJm1ak6G2RqM0RlIi2sfs8ix3a/YuCW6Jz9ASiTns=; b=qVs+VWIYX0CTjcIN7t74ERq37cvOMWnE2R6rEMzlB+K/S8pA1oCQRgQf+IivoQFjK4 VqZYy5e0dCCArwDLrGhqBS90xtWFJy8RGdicQAkA99/jDqkh8Cf6RLN1PtTltefH6hkl aqbRlqSpswxIL12SSoPpZBpi3Ne2xl8Zpa9PPuzEkhq8bYGRCcr4Pjqwx1eSkserRYeu LG5hWiP9TkUneeGBIZ3H1kLZyyLJNH7pauxg1BKNiYV0s+mDjd3RGnDuA2QZtWSBlE9Q YkPBxyzNNd4OW8JS4tDd+sov4kUrj8qL1Bbctw3Gk8oTe5AalLFMAX6kKmxFe5aJliZZ 8H7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688162265; x=1690754265; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=g9xJm1ak6G2RqM0RlIi2sfs8ix3a/YuCW6Jz9ASiTns=; b=j/mVL+Hc+XEv56HfhDKOUmcOBm64Vxbj51qFqI8UTiri040RD8p7YBkps023bJ56lQ nyBPzDbJXPpT3c0mLn8QaUgEloxxpzRFoL1Rwhu1fEz6sVvZ0q8mIw9Xaj0Cfbl3AdCh xwQsnZgDP1zQyC2y6qd9KeD9Oh2/fi8NiCyE7NRHxi2/1IHFHXgb/2biDYtyAe5vxN8s v6Poe/QKadrhxaRBz84QJyDPOngyqvTHm2sS8RDbzAOuKEvbTQajbaT7XxjoOAeieM8q A5VV+f7Ruyeqz6FLVCUMDu/UO0NIQNGG8bzUEhizD5MAs/Q2+jTJjAxlolt0VoEjej1K HbQw== X-Gm-Message-State: ABy/qLaY3JZIYsvmUFcMM0vCUb906BhlDG5dkhO00xDliIAYF7cYuKE0 kKAAStWfyKp0aK+xguqDaut+1pF9/sx4+tebMRA= X-Received: by 2002:a05:6512:3708:b0:4f8:71bf:8b93 with SMTP id z8-20020a056512370800b004f871bf8b93mr3062639lfr.6.1688162264857; Fri, 30 Jun 2023 14:57:44 -0700 (PDT) Received: from beast.fritz.box (62-178-148-172.cable.dynamic.surfer.at. [62.178.148.172]) by smtp.gmail.com with ESMTPSA id q7-20020aa7d447000000b005183ce42da9sm7052132edr.18.2023.06.30.14.57.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:57:44 -0700 (PDT) From: Christoph Muellner To: binutils@sourceware.org, Nathan Huckleberry , nhuck@pmull.org, Jeff Law , Nelson Chu , Andrew Waterman , Palmer Dabbelt , Jim Wilson , Philipp Tomsich Cc: =?utf-8?q?Christoph_M=C3=BCllner?= Subject: [PATCH v5 12/15] RISC-V: Add support for the Zvksg ISA extension Date: Fri, 30 Jun 2023 23:57:22 +0200 Message-ID: <20230630215725.3725876-13-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230630215725.3725876-1-christoph.muellner@vrull.eu> References: <20230630215725.3725876-1-christoph.muellner@vrull.eu> MIME-Version: 1.0 X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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.29 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 Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770167064771617366?= X-GMAIL-MSGID: =?utf-8?q?1770167064771617366?= From: Nathan Huckleberry via Binutils Zvksg is part of the vector crypto extensions. Zvksg is shorthand for the following set of extensions: - Zvks - Zvkg bfd/ChangeLog: * elfxx-riscv.c: Define Zvksg extension. gas/ChangeLog: * testsuite/gas/riscv/zvksg.d: New test. * testsuite/gas/riscv/zvksg.s: New test. Signed-off-by: Nathan Huckleberry Signed-off-by: Christoph Müllner --- bfd/elfxx-riscv.c | 3 +++ gas/testsuite/gas/riscv/zvksg.d | 12 ++++++++++++ gas/testsuite/gas/riscv/zvksg.s | 4 ++++ 3 files changed, 19 insertions(+) create mode 100644 gas/testsuite/gas/riscv/zvksg.d create mode 100644 gas/testsuite/gas/riscv/zvksg.s diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index d0135d9ee89..ae92f23d9c2 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1165,6 +1165,8 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] = {"zvks", "zvksed", check_implicit_always}, {"zvks", "zvksh", check_implicit_always}, {"zvks", "zvbb", check_implicit_always}, + {"zvksg", "zvks", check_implicit_always}, + {"zvksg", "zvkg", check_implicit_always}, {"smaia", "ssaia", check_implicit_always}, {"smstateen", "ssstateen", check_implicit_always}, {"smepmp", "zicsr", check_implicit_always}, @@ -1282,6 +1284,7 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] = {"zvksed", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvksh", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvks", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zvksg", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl32b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl64b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl128b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, diff --git a/gas/testsuite/gas/riscv/zvksg.d b/gas/testsuite/gas/riscv/zvksg.d new file mode 100644 index 00000000000..24a7126e9a7 --- /dev/null +++ b/gas/testsuite/gas/riscv/zvksg.d @@ -0,0 +1,12 @@ +#as: -march=rv64gc_zvksg +#objdump: -dr + +.*:[ ]+file format .* + + +Disassembly of section .text: +0+000 <.text>: +[ ]+[0-9a-f]+:[ ]+86802277[ ]+vsm4k.vi[ ]+v4,v8,0 +[ ]+[0-9a-f]+:[ ]+ae802277[ ]+vsm3c.vi[ ]+v4,v8,0 +[ ]+[0-9a-f]+:[ ]+b2862277[ ]+vghsh.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+a2c8a277[ ]+vgmul.vv[ ]+v4,v12 diff --git a/gas/testsuite/gas/riscv/zvksg.s b/gas/testsuite/gas/riscv/zvksg.s new file mode 100644 index 00000000000..8da053e1d6f --- /dev/null +++ b/gas/testsuite/gas/riscv/zvksg.s @@ -0,0 +1,4 @@ + vsm4k.vi v4, v8, 0 + vsm3c.vi v4, v8, 0 + vghsh.vv v4, v8, v12 + vgmul.vv v4, v12 From patchwork Fri Jun 30 21:57:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christoph_M=C3=BCllner?= X-Patchwork-Id: 114898 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10683939vqr; Fri, 30 Jun 2023 15:03:49 -0700 (PDT) X-Google-Smtp-Source: APBJJlGJo8e3JRDv1CjrkAkXROM4WiUGA8kvapdXYUC6g9Z+aQvzAUUoMk8MPMIbUPG6olChpnus X-Received: by 2002:a05:6512:20cf:b0:4f8:6dbf:401d with SMTP id u15-20020a05651220cf00b004f86dbf401dmr2716725lfr.57.1688162629606; Fri, 30 Jun 2023 15:03:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688162629; cv=none; d=google.com; s=arc-20160816; b=A5MsWOuHF7n8YoogWbgg6jNdYPWaChM9w2F/UlzHMY6aVr2UKpcFATHy2r1xrmByk5 amMrxvqRT6dpl5egwouOKQZYcVScTP2VAuNy/l3VpObcD6mGLEV/WO4koy5AANkBkFpH AKX6vDZcilxM/XbVz+Pmmm0aBeGGVAxSBYGBJjVeAdH43m+qfrfMf0ASu7L1xmingLh0 EG74leaqJExJ7jh5vHfWlscDt/bketood5whih/DWuzM1rVvXg9KishDlUbwWoG7UwJx XnbLyJ7+BGXkwej9IwVYMokgOlRDkpnvot3Hb+kDkkBJPRmoVfnT+QDk77yEM+GwUhTV 6mJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=rn+2YhduiOYlLfic6hJ6h6EWuOaO5H83wAaHDZzSrR0=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=LSEuzrjDXmg2CJ8r4y3hRxoEwqG0IiSaggYqnq9q+f6zTT5URALUPJmukJKrl+iyLE eixgByhOJZ+Y54uWj9I/dN0H0QVO7bC5PuyBg9LOr1yEGGNwf0chcagHv+RftMPVB8sv rGGcgobfeMrEenjxeig6BpGTk4MeLbqu4yJNV2yU8YHIxhHiZ/r5yUeReX5gFEDCODdS xZmaX+AcYNk+er3b07NEILsCZGNlsNtZqQm0iq8EU9ekc2OmXe4KVjJrC81MU5U1beBd ZfHYAauhZIOR+kF7ghaIEnCBHiFDeGxpsvYAdyjamQY58W5ZvLphnahm7ltiD/iqPWlG xkiQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=P8wnCuG5; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id w25-20020aa7cb59000000b005184305b356si8165978edt.14.2023.06.30.15.03.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 15:03:49 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=P8wnCuG5; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 503DE396E465 for ; Fri, 30 Jun 2023 21:59:07 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com [IPv6:2a00:1450:4864:20::535]) by sourceware.org (Postfix) with ESMTPS id 5CB4D3887F47 for ; Fri, 30 Jun 2023 21:57:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5CB4D3887F47 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=vrull.eu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=vrull.eu Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-5149aafef44so2430736a12.0 for ; Fri, 30 Jun 2023 14:57:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688162265; x=1690754265; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rn+2YhduiOYlLfic6hJ6h6EWuOaO5H83wAaHDZzSrR0=; b=P8wnCuG5/OloQGgIy8goCOQgrOb1yM8sm5vXEi/RW6NjjJCG5xK2ih3Bb+eaa7N1Sr qm9BoGwKLH7eVu2OH+WK1xr/yUD1anrlfPAyfP/cRKUWObLVnIOIKB3c1Rqfq/LKmuhJ gfSmKKM1mh144FC7ikt+wu0chZZDmBekdxk/8uP033kuhYfMGo97vnlgi4o9QtR+7DFt 7rXfjFkO3+xPNyUhfqVjP5e67PsvLGPcwuj1UbIaUh6I9Mz8lATC4YQkq7nT4I7v1hiJ XxXFXGmuTo4/9UtOths9QxQhk1+NCFsqreuo47DU/iEWbKvtTiosN+u5tbXkA4r/970T vnkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688162266; x=1690754266; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rn+2YhduiOYlLfic6hJ6h6EWuOaO5H83wAaHDZzSrR0=; b=KjY4j1t3yEp5Ci+vyt2fmTkPRewza/h1gwCNiu4eHYhkxEeFX4Q67nSut4UtzfM/f4 tCsICZ4TH8zNSb65RwAxbqJbtc+z9pflkxdFa/YG0tkzUhRPj6rqEr020E2XVNHB6lUi B86EJj6GJ6UBj+WY+gQ5dCDU5DObWmymjnhUKeDSiHp+S53JVADGKBtDioewbuwN/871 FPN6HHniPpzMLzJ5+jdp6DPaj1WGMJEG57+DsUWHK6YiA2MQlRLz+dw2FQEF5AEtkFmB aGYKAzunGbGq5ZYvWsXwsuxcpjcUaAYGy2w3XyxPPkJ/Emjng3j9cftnYNWb3s8r5qpj d2pg== X-Gm-Message-State: ABy/qLZXBOt/BBIxgDKdrbBBLSFu/rqVjS6yHND6pU/b0/q55M542D7i eTQh19mG3quGDWgTTYvl3q6AFduzSQgYM7XO/JI= X-Received: by 2002:aa7:c907:0:b0:51d:d19a:dfe6 with SMTP id b7-20020aa7c907000000b0051dd19adfe6mr2568799edt.9.1688162265822; Fri, 30 Jun 2023 14:57:45 -0700 (PDT) Received: from beast.fritz.box (62-178-148-172.cable.dynamic.surfer.at. [62.178.148.172]) by smtp.gmail.com with ESMTPSA id q7-20020aa7d447000000b005183ce42da9sm7052132edr.18.2023.06.30.14.57.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:57:45 -0700 (PDT) From: Christoph Muellner To: binutils@sourceware.org, Nathan Huckleberry , nhuck@pmull.org, Jeff Law , Nelson Chu , Andrew Waterman , Palmer Dabbelt , Jim Wilson , Philipp Tomsich Cc: =?utf-8?q?Christoph_M=C3=BCllner?= Subject: [PATCH v5 13/15] RISC-V: Add support for the Zvknc ISA extension Date: Fri, 30 Jun 2023 23:57:23 +0200 Message-ID: <20230630215725.3725876-14-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230630215725.3725876-1-christoph.muellner@vrull.eu> References: <20230630215725.3725876-1-christoph.muellner@vrull.eu> MIME-Version: 1.0 X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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.29 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 Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770166817513069035?= X-GMAIL-MSGID: =?utf-8?q?1770166817513069035?= From: Nathan Huckleberry via Binutils Zvknc is part of the vector crypto extensions. Zvknc is shorthand for the following set of extensxions: - Zvkn - Zvbc bfd/ChangeLog: * elfxx-riscv.c: Define Zvknc extension. gas/ChangeLog: * testsuite/gas/riscv/zvknc.d: New test. * testsuite/gas/riscv/zvknc.s: New test. Signed-off-by: Nathan Huckleberry Signed-off-by: Christoph Müllner --- bfd/elfxx-riscv.c | 3 +++ gas/testsuite/gas/riscv/zvknc.d | 18 ++++++++++++++++++ gas/testsuite/gas/riscv/zvknc.s | 10 ++++++++++ 3 files changed, 31 insertions(+) create mode 100644 gas/testsuite/gas/riscv/zvknc.d create mode 100644 gas/testsuite/gas/riscv/zvknc.s diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index ae92f23d9c2..7c9b2dbeb3e 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1162,6 +1162,8 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] = {"zvkn", "zvbb", check_implicit_always}, {"zvkng", "zvkn", check_implicit_always}, {"zvkng", "zvkg", check_implicit_always}, + {"zvknc", "zvkn", check_implicit_always}, + {"zvknc", "zvbc", check_implicit_always}, {"zvks", "zvksed", check_implicit_always}, {"zvks", "zvksh", check_implicit_always}, {"zvks", "zvbb", check_implicit_always}, @@ -1278,6 +1280,7 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] = {"zvkg", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvkn", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvkng", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zvknc", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvkned", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvknha", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvknhb", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, diff --git a/gas/testsuite/gas/riscv/zvknc.d b/gas/testsuite/gas/riscv/zvknc.d new file mode 100644 index 00000000000..f68103b129e --- /dev/null +++ b/gas/testsuite/gas/riscv/zvknc.d @@ -0,0 +1,18 @@ +#as: -march=rv64gc_zvknc +#objdump: -dr + +.*:[ ]+file format .* + + +Disassembly of section .text: +0+000 <.text>: +[ ]+[0-9a-f]+:[ ]+a280a277[ ]+vaesdf.vv[ ]+v4,v8 +[ ]+[0-9a-f]+:[ ]+ba862277[ ]+vsha2ch.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+32862257[ +vclmul.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+30862257[ ]+vclmul.vv[ ]+v4,v8,v12,v0.t +[ ]+[0-9a-f]+:[ ]+3285e257[ ]+vclmul.vx[ ]+v4,v8,a1 +[ ]+[0-9a-f]+:[ ]+3085e257[ ]+vclmul.vx[ ]+v4,v8,a1,v0.t +[ ]+[0-9a-f]+:[ ]+36862257[ ]+vclmulh.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+34862257[ ]+vclmulh.vv[ ]+v4,v8,v12,v0.t +[ ]+[0-9a-f]+:[ ]+3685e257[ ]+vclmulh.vx[ ]+v4,v8,a1 +[ ]+[0-9a-f]+:[ ]+3485e257[ ]+vclmulh.vx[ ]+v4,v8,a1,v0.t diff --git a/gas/testsuite/gas/riscv/zvknc.s b/gas/testsuite/gas/riscv/zvknc.s new file mode 100644 index 00000000000..60b10d8b8b5 --- /dev/null +++ b/gas/testsuite/gas/riscv/zvknc.s @@ -0,0 +1,10 @@ + vaesdf.vv v4, v8 + vsha2ch.vv v4, v8, v12 + vclmul.vv v4, v8, v12 + vclmul.vv v4, v8, v12, v0.t + vclmul.vx v4, v8, a1 + vclmul.vx v4, v8, a1, v0.t + vclmulh.vv v4, v8, v12 + vclmulh.vv v4, v8, v12, v0.t + vclmulh.vx v4, v8, a1 + vclmulh.vx v4, v8, a1, v0.t From patchwork Fri Jun 30 21:57:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christoph_M=C3=BCllner?= X-Patchwork-Id: 114900 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10685019vqr; Fri, 30 Jun 2023 15:05:40 -0700 (PDT) X-Google-Smtp-Source: APBJJlGxegR83qLq0S7mxEu7AZtA4IXfnkkJOp8cbNqshjSGMcoO2rhvE2YKEb6kFFujetLG9R+y X-Received: by 2002:aa7:d710:0:b0:51d:d264:9b3f with SMTP id t16-20020aa7d710000000b0051dd2649b3fmr4244171edq.13.1688162739914; Fri, 30 Jun 2023 15:05:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688162739; cv=none; d=google.com; s=arc-20160816; b=YbjlS4KZcuhy46ifAQyD/qt5yTiPbnQ8OhfNJhywUrfbUcrWL8mISqGqycNVNRjmDZ unMAJJAfzJF8C942Bh1Xv4wAR2ysjySLD8j33Ku03E+cGae9v4MVkDVmu4+t/mbxUlly Xt4US7Yp/RmKI3v2OHNNLA6ziHJ46VwtARDlJtxnxrctnB6TQVMDYhIxKCzWysanG22j OATF5uv9+gaV1kiOpU2WAn88xAJKKWMeFcgYVCrfv/2XvFFxsKVgyjnY4s6KBG91v1Zf k/vo8to44V0QI1kgKilG2iaEBS/wFsgZV6yuCVbA6tYZ503TnCqKoMJRWxQn2boNEDBI IONw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=LuO9ct18wpF2UOq6603/pJIBAugtYQ5EXuLCjugkKII=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=A9QGGxAawiPtq+1JH6p70kvZIoowD7MrxQX2DqTx8l2lyT1cCURo85/SpAQ5G98xWA zqWqUy20oF9ZohFNmEPeA7LyDGyOzJL8Iv3oiVTvNZwuPYI7ijhbBekJFulmdNR+GEzs BfP9HTRDvt224pNcaTDsB3NuhCfUyJDCZygby/KcYY3FE6SUb1vTLaMvJSeJ08vnts8E szRv5xkdX99vEafTzK932UIvj2yCLWV5g6VgM3JYIO2CmVcOV0aQZGW/HYtUhj7hdCUJ 3nRlZrvf4KdjpgTzEcTuK/mTZR07oYNX6JBWEIrrdfg41nRHLml6yvXUIFUezZPMABDv kwBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=XULYWwEO; 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" Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id n20-20020aa7c694000000b0051db1e8aafcsi4449363edq.298.2023.06.30.15.05.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 15:05:39 -0700 (PDT) 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=@vrull.eu header.s=google header.b=XULYWwEO; 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" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B787B3959C50 for ; Fri, 30 Jun 2023 21:59:35 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [IPv6:2a00:1450:4864:20::52a]) by sourceware.org (Postfix) with ESMTPS id 553373883022 for ; Fri, 30 Jun 2023 21:57:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 553373883022 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=vrull.eu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=vrull.eu Received: by mail-ed1-x52a.google.com with SMTP id 4fb4d7f45d1cf-51d80c5c834so4063316a12.1 for ; Fri, 30 Jun 2023 14:57:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688162266; x=1690754266; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LuO9ct18wpF2UOq6603/pJIBAugtYQ5EXuLCjugkKII=; b=XULYWwEO4BCWP3ADwQxTIsye6Md8qDnRYYWgwUHrs2Bhxr3bWUw2jZ2W0XguK5trXx cBnh56kvQAPUXYdmYD3NSqFERCYYacZQECbIP7k407IihLA72pMs5fu0nixAl+l9vEuc NhfiEWIoZBwLNRAsOw1GskQy19qRhbzq1K2WsNiHp57fC63v7yoSg5DmPx8R9Ktrpyj8 TP8fzuLKr0e71vIci2VdHbO00SDOU6YienXn9SzhEZdBOY6xls1yKvg+eFJ8E5Jdpvsn m3KclaD1IWK6HX8eMoLLUaEp3MR67de6mgPg1tfnwYw9YGuHkFLD288aN12C//wtsIm8 /LSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688162266; x=1690754266; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LuO9ct18wpF2UOq6603/pJIBAugtYQ5EXuLCjugkKII=; b=bAxpOdFPoEdyaaKPeX86wjPJ9GtaRoouh7bAXAf8+QsgKpGVQt69IEsDOCkAbVCHM0 nm7XqjR/jdCaCNfcmEPE69j3HCsUnJjdSiKiLSP1a8oSRcofeD1uPP8VdAscFgzWBmGA HfTMsw7wVbYR6crE18vRjqu8mFZg5TGhYLbJmbwmKPOtzQDdd58ATTDoQTOR94UazrX3 6mGw2FoN6M2+EnHCEOwHPtfVZI7jA3P8XrRzNmqrJ2l5FqbZj1IQ4A4szBxIG0rOkwio ynRnW9O311qNNd/wv/mmlTjjVms7sPQLQR6eKjrmign0Sf8a1iu9ynMDwivu1VoHGB2x zGuQ== X-Gm-Message-State: AC+VfDzdkO6LvgIb3+X3NinpBr4PPm12C/JKYrYfZNFYw3H3G5kl77di bobIJdFamUtfKmSan3oPpddTA3bOqpFSZrHpA8w= X-Received: by 2002:aa7:c388:0:b0:514:a21b:f137 with SMTP id k8-20020aa7c388000000b00514a21bf137mr8150479edq.6.1688162266718; Fri, 30 Jun 2023 14:57:46 -0700 (PDT) Received: from beast.fritz.box (62-178-148-172.cable.dynamic.surfer.at. [62.178.148.172]) by smtp.gmail.com with ESMTPSA id q7-20020aa7d447000000b005183ce42da9sm7052132edr.18.2023.06.30.14.57.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:57:46 -0700 (PDT) From: Christoph Muellner To: binutils@sourceware.org, Nathan Huckleberry , nhuck@pmull.org, Jeff Law , Nelson Chu , Andrew Waterman , Palmer Dabbelt , Jim Wilson , Philipp Tomsich Cc: =?utf-8?q?Christoph_M=C3=BCllner?= Subject: [PATCH v5 14/15] RISC-V: Add support for the Zvksc ISA extension Date: Fri, 30 Jun 2023 23:57:24 +0200 Message-ID: <20230630215725.3725876-15-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230630215725.3725876-1-christoph.muellner@vrull.eu> References: <20230630215725.3725876-1-christoph.muellner@vrull.eu> MIME-Version: 1.0 X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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.29 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 Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770166933034694722?= X-GMAIL-MSGID: =?utf-8?q?1770166933034694722?= From: Nathan Huckleberry via Binutils Zvksc is part of the vector crypto extensions. Zvksc is shorthand for the following set of extensions: - Zvks - Zvbc bfd/ChangeLog: * elfxx-riscv.c: Define Zvksc extension. gas/ChangeLog: * testsuite/gas/riscv/zvksc.d: New test. * testsuite/gas/riscv/zvksc.s: New test. Signed-off-by: Nathan Huckleberry Signed-off-by: Christoph Müllner --- bfd/elfxx-riscv.c | 3 +++ gas/testsuite/gas/riscv/zvksc.d | 18 ++++++++++++++++++ gas/testsuite/gas/riscv/zvksc.s | 10 ++++++++++ 3 files changed, 31 insertions(+) create mode 100644 gas/testsuite/gas/riscv/zvksc.d create mode 100644 gas/testsuite/gas/riscv/zvksc.s diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index 7c9b2dbeb3e..44328a23e63 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1169,6 +1169,8 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] = {"zvks", "zvbb", check_implicit_always}, {"zvksg", "zvks", check_implicit_always}, {"zvksg", "zvkg", check_implicit_always}, + {"zvksc", "zvks", check_implicit_always}, + {"zvksc", "zvbc", check_implicit_always}, {"smaia", "ssaia", check_implicit_always}, {"smstateen", "ssstateen", check_implicit_always}, {"smepmp", "zicsr", check_implicit_always}, @@ -1288,6 +1290,7 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] = {"zvksh", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvks", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvksg", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zvksc", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl32b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl64b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl128b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, diff --git a/gas/testsuite/gas/riscv/zvksc.d b/gas/testsuite/gas/riscv/zvksc.d new file mode 100644 index 00000000000..8614ede5ccf --- /dev/null +++ b/gas/testsuite/gas/riscv/zvksc.d @@ -0,0 +1,18 @@ +#as: -march=rv64gc_zvksc +#objdump: -dr + +.*:[ ]+file format .* + + +Disassembly of section .text: +0+000 <.text>: +[ ]+[0-9a-f]+:[ ]+86802277[ ]+vsm4k.vi[ ]+v4,v8,0 +[ ]+[0-9a-f]+:[ ]+ae802277[ ]+vsm3c.vi[ ]+v4,v8,0 +[ ]+[0-9a-f]+:[ ]+32862257[ ]+vclmul.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+30862257[ ]+vclmul.vv[ ]+v4,v8,v12,v0.t +[ ]+[0-9a-f]+:[ ]+3285e257[ ]+vclmul.vx[ ]+v4,v8,a1 +[ ]+[0-9a-f]+:[ ]+3085e257[ ]+vclmul.vx[ ]+v4,v8,a1,v0.t +[ ]+[0-9a-f]+:[ ]+36862257[ ]+vclmulh.vv[ ]+v4,v8,v12 +[ ]+[0-9a-f]+:[ ]+34862257[ ]+vclmulh.vv[ ]+v4,v8,v12,v0.t +[ ]+[0-9a-f]+:[ ]+3685e257[ ]+vclmulh.vx[ ]+v4,v8,a1 +[ ]+[0-9a-f]+:[ ]+3485e257[ ]+vclmulh.vx[ ]+v4,v8,a1,v0.t diff --git a/gas/testsuite/gas/riscv/zvksc.s b/gas/testsuite/gas/riscv/zvksc.s new file mode 100644 index 00000000000..aed60105c69 --- /dev/null +++ b/gas/testsuite/gas/riscv/zvksc.s @@ -0,0 +1,10 @@ + vsm4k.vi v4, v8, 0 + vsm3c.vi v4, v8, 0 + vclmul.vv v4, v8, v12 + vclmul.vv v4, v8, v12, v0.t + vclmul.vx v4, v8, a1 + vclmul.vx v4, v8, a1, v0.t + vclmulh.vv v4, v8, v12 + vclmulh.vv v4, v8, v12, v0.t + vclmulh.vx v4, v8, a1 + vclmulh.vx v4, v8, a1, v0.t From patchwork Fri Jun 30 21:57:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christoph_M=C3=BCllner?= X-Patchwork-Id: 114902 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10685790vqr; Fri, 30 Jun 2023 15:06:58 -0700 (PDT) X-Google-Smtp-Source: APBJJlGq+tOtd2RZh5SnKyX7f3W0XwufRkkBCdmevBpb0CLyfkJs4ZENCoCR5fpxw1dTslgX0b98 X-Received: by 2002:a17:906:fa89:b0:992:48b9:84ef with SMTP id lt9-20020a170906fa8900b0099248b984efmr2931294ejb.29.1688162818412; Fri, 30 Jun 2023 15:06:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688162818; cv=none; d=google.com; s=arc-20160816; b=rODPITyes4NFBSeVSC2x7jMxwuULMDGnr1/hVA+Lbf1qh8rTqrvNyTmWDgqfSrZoQ/ 0ce1QYdMGUJRGznnrlyrkVkpISxN5itwkrRTcU+LLFKEdaEl2KPWl2A4XZ7RltZaSB/+ ygTYTJO9FDxhnqsXrvwCngKmp4nj0hdVaXb2KO0I0UjysrVmuyrTAsW9KxfP24AOWq6K I+kCCWErttgzZNGHHV+BCf/8xsCV52CLwCKpYL3HV8idA8sU5XLqAgQDHuLr4KLbPHwZ TBExALrm2cKpVhiRhnhOcYoE6Z523R7BGhhVgV1D+tH1tmUPhIM9APYmIisDsxq6t3sc hS9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=1rpDmRLuolJb3WS31AgGE3embzEpVFY/fPYieJL1WsY=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=sEG5V66PXHbpVKTas/fXHqOvXpV0cCC/Tkw4V/ipSKsmqIBz8FycJ8e7Mgp85//yYG Jl0EH8+RNf3zO3Fbh+CQYO7r30n6n/pW1QhXlfkoWWyejCr/UYqv9zSsX/z1KMHeqaUK LxEPXJQvuy+vbQpPTmIOFZxqraLkUSliEPXqhW1SkX9GCPv8EpsFTsi8tdyFbXLmkzBZ tmS6AY4B0CYEm+jFi5xPgpyBv2R4fWEmL9v9jGcT4xYYIwyBETIsUs4nc5RGr7XiD+ro 2z7Xg5x2CANLTC5g1f36qOSHHqqapCqhA+Jm7TpQo13njVNlLsP1qbOwEPXa2+cl+Oax RmmA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=roLfEd9Y; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id xo13-20020a170907bb8d00b00992cd4e0b83si1751996ejc.426.2023.06.30.15.06.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 15:06:58 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=roLfEd9Y; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 93C803ACBCB6 for ; Fri, 30 Jun 2023 22:00:06 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com [IPv6:2a00:1450:4864:20::136]) by sourceware.org (Postfix) with ESMTPS id BFA5B3888839 for ; Fri, 30 Jun 2023 21:57:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BFA5B3888839 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=vrull.eu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=vrull.eu Received: by mail-lf1-x136.google.com with SMTP id 2adb3069b0e04-4fb7769f15aso3852141e87.0 for ; Fri, 30 Jun 2023 14:57:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688162268; x=1690754268; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1rpDmRLuolJb3WS31AgGE3embzEpVFY/fPYieJL1WsY=; b=roLfEd9Y1unZWp/00FabGPyz39M0LTjmKhIEM1+XyeI0LsdHIsauiyuOdUh96AO1TD jvm56TO29Y0ItfgjxlftTtXFr1aVWWVL/QAf6mEZ01uGrnC1gXr3obhVprITJCuegRrO U6XhPwYGspNn/xOc+uTMjItp2oOXzW+LAgqcfcrCn1GJ0rjYhrPwebkkDZFGAKeV6Izm ifIOrF3WhbwJ4s9yeK/bulDD+xp+SLLMPG/42Ef9/nj3uJ5vPO2P4yAbFTnvm5V3j/IY FuceMnXd0vdQiGsuCSLW+xJawrCRxs729Cxwh76Al90J3Z3bJSnocDhJEKiH4cOPokig IDIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688162268; x=1690754268; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1rpDmRLuolJb3WS31AgGE3embzEpVFY/fPYieJL1WsY=; b=KbbTiP3t+7ZCxY3dcj5qLOjqS9rrg6rkSqgc7Bc2RGtdc+N8cbAJNnUiZVJhUR+Mme 4M2ZOtFLQdVtRnM6A1cRuqZFQFfW6sNTbiACJ9aP8AmFQDEzuAvEQLnlIlXOcsJolqs+ QWYw190Mcx/GkSCHwQLK8orEoa0Spgm/216zKa8z6vcwsVBdLg6+YqBQHX9I0LJouBaa MswLvyPTVNlyyEXAUbg6WnvQInqyUmnk0O80QcJRNMqaDfqaUxqqgVM9+5OuKTUSzaAE WL7kNXm1o4roJgpWRWPl3AJ67orrCYuwvx0PTDrcaFQ8VomyEi2otzQt6BshNbaQtY5Y Kirw== X-Gm-Message-State: ABy/qLbJu/IQsPdmRrDBcu/qjaY6gQZeNbcuPXjtUbX5Kv+8u75tlQGl kBykcPnOKEaYOmqgtY+1yqrEmHuAIY3+RvzptaI= X-Received: by 2002:a05:6512:2022:b0:4f8:767d:9b98 with SMTP id s2-20020a056512202200b004f8767d9b98mr2917408lfs.37.1688162267910; Fri, 30 Jun 2023 14:57:47 -0700 (PDT) Received: from beast.fritz.box (62-178-148-172.cable.dynamic.surfer.at. [62.178.148.172]) by smtp.gmail.com with ESMTPSA id q7-20020aa7d447000000b005183ce42da9sm7052132edr.18.2023.06.30.14.57.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 14:57:47 -0700 (PDT) From: Christoph Muellner To: binutils@sourceware.org, Nathan Huckleberry , nhuck@pmull.org, Jeff Law , Nelson Chu , Andrew Waterman , Palmer Dabbelt , Jim Wilson , Philipp Tomsich Cc: =?utf-8?q?Christoph_M=C3=BCllner?= Subject: [PATCH v5 15/15] binutils: NEWS: Announce new RISC-V vector crypto extensions Date: Fri, 30 Jun 2023 23:57:25 +0200 Message-ID: <20230630215725.3725876-16-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230630215725.3725876-1-christoph.muellner@vrull.eu> References: <20230630215725.3725876-1-christoph.muellner@vrull.eu> MIME-Version: 1.0 X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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.29 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 Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770167015277235202?= X-GMAIL-MSGID: =?utf-8?q?1770167015277235202?= From: Christoph Müllner This commit adds the recently added support of the RISC-V vector crypto extensions to the NEWS file. binutils/ChangeLog: * NEWS: Announce new RISC-V vector crypto extensions. Signed-off-by: Christoph Müllner --- binutils/NEWS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/binutils/NEWS b/binutils/NEWS index 2e8d51d2773..834e648db6c 100644 --- a/binutils/NEWS +++ b/binutils/NEWS @@ -23,6 +23,8 @@ * The RISC-V port now supports the following new standard extensions: - Zicond (conditional zero instructions) - Zfa (additional floating-point instructions) + - Zvbb, Zvbc, Zvkg, Zvkned, Zvknh[ab], Zvksed, Zvksh, Zvkn, Zvknc, Zvkng, + Zvks, Zvksc, Zvkg, Zvkt (vector crypto instructions) * The RISC-V port now supports the following vendor-defined extensions: - XVentanaCondOps