From patchwork Sat Jul 1 05:20:50 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: 114949 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10840386vqr; Fri, 30 Jun 2023 22:21:23 -0700 (PDT) X-Google-Smtp-Source: APBJJlF6e310HqXlRrFXgj4qoMo2/j+/KwbvgYb4ybsft3r5A4fXGDntf9kSxDYd/M/zlSfTh66p X-Received: by 2002:a17:906:8057:b0:992:2f67:cd2e with SMTP id x23-20020a170906805700b009922f67cd2emr3259909ejw.48.1688188883355; Fri, 30 Jun 2023 22:21:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688188883; cv=none; d=google.com; s=arc-20160816; b=r2rVsoy/BMAk0kRpAE/onwfLV6e0zdwE/qlhVohi/kgbkUMnz2sNEn6sh7nRej5kvh PbEusIH2G0wqfwSRtBbIMO5R+ql3Ugu9lyM00EAnD6Z/k2DW4msHu3ULcOeaLSPIzRKP baQj/hRXL0ptrI5BAY1uksmiU8UjL0S0bQFGoQXb3/OuDgij/swxbAOV18CmGkTt7H5c CBVLsc81S+8zq+YZam7j9/4i98ZRRhdV6KYXdCY9mwRbWYx/zwJNPcjbDPDd5YSg4k1E xtUeOjjz0ZpKVV4XtrBafkvWh7J3P/4xi5aNkXDNXLMJbS21Byq3E95ZTqhq+CCUlXD3 Vpfw== 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=CBCWMMDo8pTKmyshVupxQuhRrZH2sKCeHFzx6Nvd2Za5rCT0qXVPrImGDMn+RU7/T3 F7x4TiX/aJy6Gox7AVufC1onx1EYRKbGf753ETT5t70vA35pv7WIUj0axcYagu3FlJ1l fiKuLNoB6HVCvt3iTAWgo/zHz+pDqkv5Zg/rCP5cUG3ME5V7kqadw/3gdqPMBsfoksLX JrCpiqomchkfFcqmehUOMnaoOA3m221F1qE3LTP5F4Cl7wk56t+8rGzCe+c6vf0aU/wS uXgQRiPZoabtMHuE8+2LUq716LfR0M/3YV/zw2ev52G2QgPmJ6dyYvikT9jJ1J3oLFLn AMZQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=q7PMdMFr; 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 lr26-20020a170906fb9a00b0099207b3bc48si5740077ejb.224.2023.06.30.22.21.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:21:23 -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=q7PMdMFr; 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 2ECD03857710 for ; Sat, 1 Jul 2023 05:21:18 +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 8C7A13858D35 for ; Sat, 1 Jul 2023 05:21:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8C7A13858D35 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-51d89664272so2736105a12.1 for ; Fri, 30 Jun 2023 22:21:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688188869; x=1690780869; 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=q7PMdMFrfc1xdFDUdHnvKpO49YYzrAmEpF90fuh1FspO2XG9HIWcgHB5aEb8W13wom 6FSNVZkmUkEmzBl3ERqGm5JmQ7LaqY0SZbkat9etEwnxjAqE5N7SdwZ870QOgvKTBYkm v5B0VK4OfmeCC7NQg8jR6iyGS+FzPifgCbNqjNcvK7LrAhjpiN9uHZjUhvtXY2QEqX9V lhVfYq6PBD1tLWD6jxogGpOzoHqooToGzbLUZ1O9OqVWsZzu44cw9VgpdHAlj3vhcIp8 dMpnCxS1UdUnbKb6hAMtb9l03y8Vf1bm437vEWZgM4EbRBA9XM5aT7//IwNddwo0nucl o8Pw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688188869; x=1690780869; 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=R+aU3mycU6cVkMMhYAD17VMtiLErwtTB+2aC4YVJYVl+mCC66g3kPBuR2fw0c4QKD4 kcxao+jxyBkoGsEYdpjv0IPcNbG0Rj00fnYg2Rk7ok5hdr22X/MjX3Xw04IaABw/e+pu liZhpNQvJ7ndqz+dd16Yxfv9i6lWHg2tp3dP9+Ot6/FJ9nmqc3EX9bYEv9t73/h4AKII QwsOjDFjroMdnlxdjH6vMgAUhy5ySPTgSddEg55nQ7cQCiBHsiiE//zZ0+AcfHVUeRmR yyXIvWSad6EIGtlwVwIs3VfZeOfiMfHNiIMLmLcjlhyVSjpIQusJy7Gh5T3kDA7O09Pr RGeg== X-Gm-Message-State: ABy/qLYi+kYTPNAOw7mrAAepg8FcSkNASnugrga8e/ATn2O1KbHaS8QR NcOhhfdXTFpi3OvN7o5LgL32QTAVjZTRu/v6byU= X-Received: by 2002:a17:906:b352:b0:974:7713:293f with SMTP id cd18-20020a170906b35200b009747713293fmr3141343ejb.41.1688188868768; Fri, 30 Jun 2023 22:21:08 -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 t14-20020a1709063e4e00b0098d25cbb899sm8784221eji.41.2023.06.30.22.21.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:21:08 -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 v6 01/15] RISC-V: Add support for the Zvbb ISA extension Date: Sat, 1 Jul 2023 07:20:50 +0200 Message-ID: <20230701052104.4018352-2-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230701052104.4018352-1-christoph.muellner@vrull.eu> References: <20230701052104.4018352-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?1770194346384355388?= X-GMAIL-MSGID: =?utf-8?q?1770194346384355388?= 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 Sat Jul 1 05:20:51 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: 114952 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10840974vqr; Fri, 30 Jun 2023 22:23:09 -0700 (PDT) X-Google-Smtp-Source: APBJJlFTS7++X8TJ9WFdLH6i0B2UnZAuZrTpd/jFk+dxgn59dDLbYVzPHoOfQ3yknq05eU6aHpbA X-Received: by 2002:aa7:da51:0:b0:51d:8835:90a1 with SMTP id w17-20020aa7da51000000b0051d883590a1mr3030009eds.30.1688188989572; Fri, 30 Jun 2023 22:23:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688188989; cv=none; d=google.com; s=arc-20160816; b=f6woQ00fL7A4x09Yo8Kez7/5PQS6Ja6Ifazs0uP3kgVFUGiyJwUL8TNcVPbV2dfz4T Tm6p126uGok3FYOXPlTF9UrIxsoErrC7dyuTverwgx0LOkMZx7CVcjAhPdIuReo3FT6C kzbLrUatgSsR4aQU6O+Vd8oBYZnPkVZDp1MwnK2XPbBzf7NodAH91DFJDNVI5jBCbl0r BP13b2lz6okAeg9DrEo3tjhssMEJ851kB8gXR4goBCjAi1ugnkDklND4Cl0mv8ovCcN0 vkNsN9BbY4JGY+PBW6q5pHJGy4E69wMrB0lR7nsjlSn3ZPYsXaPn0rL8sG9Xyo1XZen3 q1CA== 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=LI2OyqW2mslZsEOehH72hmWzyEDI+DjuiHFqh//ddCx04CZPWzb/lQzQEN72iIdERg RyLgujxgWwcHV7LHlnpgSZmNhpnpuw6nU0e+CR/swpwLjGpdvqZEk4UVhNDfM+Ttswxx xhHMpc01VrCaqzjdBIUep1AC53vrTNDQncWDGNnWE7WHhhqnw2pWL5AI1+Kz6IiXPgHm TpimqVLB7MXa0KQkr5GpNz4nkikCrnmSUndQx59NfOERuG+VDUwjdnV/E1IXHv+o3BKI zumwpy+8/ZK8Vy8xUU0HzqasHFlDkRdMT0MIhH79SSef29s1A81NpXaLm6HAHz2vFQTv ZXKQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=WlQdoa33; 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 w26-20020a50fa9a000000b0051d23cc58f3si604434edr.387.2023.06.30.22.23.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:23:09 -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=WlQdoa33; 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 2D1253846068 for ; Sat, 1 Jul 2023 05:21:57 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com [IPv6:2a00:1450:4864:20::62a]) by sourceware.org (Postfix) with ESMTPS id 045A13858D37 for ; Sat, 1 Jul 2023 05:21:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 045A13858D37 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-ej1-x62a.google.com with SMTP id a640c23a62f3a-992b2249d82so276243566b.1 for ; Fri, 30 Jun 2023 22:21:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688188870; x=1690780870; 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=WlQdoa33CKo+q9+aRc41Zh5d73bBLOAHQIVrTLMz1YEWHNPpuNFV4z0LwuZ5cvZJY2 /UaFoJcxL7SDmVRWiaCQ7RsN4c3GaFO/gAqQmCeBKN4QpwvG91kZmGxebdn3M4KdfDVZ S9R+mvBINnM3rqMZEoPu6vaKihPHxaYeRr105QcIlYBsKvKI7UoQuUjvwqgJxa3qMEvs 30crvoiyiyz1SgeH0dx+qemCuTMtc2LHWS8KmoGiqznMDAb1+yHKilR0jViJDN1BHJQi mvwDqCwdxu75DsFtdvFUylqbWbfkLetXMnRoAzv+Hk/D36v/+YL8pWmlzUVVbxZxr7dE H+xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688188870; x=1690780870; 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=M4hObq+4enIbL0Mt9n8nXMLFvHrT93iyZC5ybKEUQ3RV9yzfAK+80e5+jfI5gRzKhW 8uYKg9yk0DEgFc5GHvV4c2DS+GxNxTJRuEnvXo19agNniXNchL5yIlSOplst80bWflXH 764GzYueMf+oIANBHpCfKR16zHiKxL2wO1x5XwnF07L/ZYUSUOStVuZ44x5DHh+8/uw2 gyDPJrHS/xN6Sy+9hbs/NoBkWe6j70FqMUF522b9MZnljB0ANBDB5EzcS79q0PbtPI6d F0JoxSDNp8rgC0tYHf8UWsBnu1tTwBgA4tQXZZmW+6K5pulaOZ9gx5gO967qcxVV3N09 fiGw== X-Gm-Message-State: ABy/qLaIan9ikUGcF/mk3vbVL+fezDve4OeiFHpennf3I/9IpGLhwzf0 Gw8M7jTp3L4xiuba3JdyQ8KNoOAwmbyNEAH4fWw= X-Received: by 2002:a17:906:bce8:b0:98e:933:2909 with SMTP id op8-20020a170906bce800b0098e09332909mr3028111ejb.22.1688188869992; Fri, 30 Jun 2023 22:21:09 -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 t14-20020a1709063e4e00b0098d25cbb899sm8784221eji.41.2023.06.30.22.21.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:21:09 -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 v6 02/15] RISC-V: Add support for the Zvbc extension Date: Sat, 1 Jul 2023 07:20:51 +0200 Message-ID: <20230701052104.4018352-3-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230701052104.4018352-1-christoph.muellner@vrull.eu> References: <20230701052104.4018352-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?1770194457797673161?= X-GMAIL-MSGID: =?utf-8?q?1770194457797673161?= 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 Sat Jul 1 05:20:52 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: 114955 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10841753vqr; Fri, 30 Jun 2023 22:25:34 -0700 (PDT) X-Google-Smtp-Source: APBJJlFBHDpW3A93yG0tURuKm5WNbD2KGiHjZIguMrGeRKXw2kDi81HEEwQHuwNvKPNTydHVd1Fc X-Received: by 2002:a2e:9203:0:b0:2b5:7f93:b3ae with SMTP id k3-20020a2e9203000000b002b57f93b3aemr3371463ljg.38.1688189134807; Fri, 30 Jun 2023 22:25:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688189134; cv=none; d=google.com; s=arc-20160816; b=IU+zCeHli+bhWVJzQqzwVFfsFRK173mY1JuqOzJgwQ1eFw/bd1L/sdFgabkITTT/qh 9qRc/I6LTmAiz0u2cfTEkrm1A5Y0gugmCfZgBcED1cjUqGCD5tkQ9RPxRqRwOtjLrK7h OZO9AqpGwazyUFDXuWcIaAyuCl22PhoFxMwKsYbSLFxhCkVwdkf0fY7+tOh0YrkUJjCI be8Lf20XLs6Fel3mUq+caww9rbKkDM/Qdl7n9dbU5R6J/wke7UM8YUrotIyoSaNPT8nG PZXvj8ukqSPU4rXglbdm/qdY6Ylx5fgKA1kqTnhZfKpUxHw/Vg42lQNEOUIILBBlpuUL EJqQ== 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=rE4M8FZLklMwPwHbjtRDAacoSCQSSaioloonjnOEgUY5DoIiRjaJdbM1xCXDeVCOZf q8Nr5ZnARnOR3Z4EUrFESPd2vpq1/wWGMC+HMT8ny8YW4AhqneWsjpqt51B7+bVLDTpl BQ7TTxRUcEYNWylLOC/cQ6dHwrQz9SczDGrMDDZ6Fo7JygJFqWljUddC02EWgLn7dv16 9M52Vz51/VAvrORJCzQwMB6awBKrLx/PyBcPsg3zT+LHJzyAQ1WYpLI+PBHrNHpAfc2X 0DRdSEmPzpz9DDyYZiwbdpVQgKxM5hpwqHPp1yV1H1Wi+wub0Ke1uQ9k4ApddetbDno5 7Ayw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=AG7K2072; 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 w15-20020a50fa8f000000b0051df3b287b3si1318799edr.49.2023.06.30.22.25.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:25:34 -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=AG7K2072; 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 312473889E20 for ; Sat, 1 Jul 2023 05:22:33 +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 CEF953858D38 for ; Sat, 1 Jul 2023 05:21:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CEF953858D38 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-51d804c7d14so2677676a12.3 for ; Fri, 30 Jun 2023 22:21:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688188871; x=1690780871; 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=AG7K2072nh8kVKmsBBdkeF43npkl+EAhXnnXpUkYm85d+ryqqPag5pK//eFugLkXYM CGzqJscMMC9K/kZdtnV55zQa9qoMWi9dOgJrMfdIhsF2mROEAvj1kkZT6UQZ2oOnpeSf i+mWSSGZaFeF1wfDGd20YjW7y0ljsgjOaXseK5HqsOZnbSd9nuhO4+NhGP2yLy+YMF3E /gmUahPP93++Mw0JTtD5her/E6cH8V02IRnKtQEe8T9/Vv1v96IVMfuwVlh+JE02Etz0 jidJ6oPJcgaKrAsaW4rD7WnNLInro0WrWMPUYj68wiKVvdcVwSQI4eKE5odCYqIIw2Dd 3hcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688188871; x=1690780871; 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=X6p936I6TKUXNwD2Ea+36DE38Fdt6a9Z7X/SsZvV6L6HR80JmsPsjEs/59qkgeHsHo kEjcd8MuIYHSSUniwBcfq2i+2niXq164LzFRO4s4cTaRjq0/V0QIjDNH5UGYXZmxduV/ 2s3PNQFWuAFOCq3enV9Y4h2tvriwJCYBEuhGJTJSQETcSY4u6Scqi5bi8Kjk7sxFSatl eb6O4zNS7fHWRgfH+YG/W88LFJd+3JmbTwZWf2bFDfD5Q505RvTTWBjdN4kGLRHxs3x0 zZYNb09AIPIEusWLst2WpY2QFf/UhJ9AeqqSntzWP79+IFeOjNI57DYtHSekMcLOWhCl lPjA== X-Gm-Message-State: ABy/qLZwQLXHXFe3i45TWNlT9axrH3HMXkRSr1wqaf96kas3dKo91BGu kWok6UaGWus2+4c7xh08H5WQ26LSKWiDot3+cTE= X-Received: by 2002:a17:906:d961:b0:988:a837:327a with SMTP id rp1-20020a170906d96100b00988a837327amr2938522ejb.44.1688188871174; Fri, 30 Jun 2023 22:21:11 -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 t14-20020a1709063e4e00b0098d25cbb899sm8784221eji.41.2023.06.30.22.21.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:21:10 -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 v6 03/15] RISC-V: Add support for the Zvkg ISA extension Date: Sat, 1 Jul 2023 07:20:52 +0200 Message-ID: <20230701052104.4018352-4-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230701052104.4018352-1-christoph.muellner@vrull.eu> References: <20230701052104.4018352-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?1770194610047796076?= X-GMAIL-MSGID: =?utf-8?q?1770194610047796076?= 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 Sat Jul 1 05:20:53 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: 114958 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10842421vqr; Fri, 30 Jun 2023 22:27:47 -0700 (PDT) X-Google-Smtp-Source: APBJJlHD02zVClx+DuChqFy7ONoYhpvmODzCoc6P8iTkdvTF22fXx0dT+19xbQoQSll7w1IY6yA8 X-Received: by 2002:a2e:8681:0:b0:2b6:d44c:c25b with SMTP id l1-20020a2e8681000000b002b6d44cc25bmr2195580lji.45.1688189267353; Fri, 30 Jun 2023 22:27:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688189267; cv=none; d=google.com; s=arc-20160816; b=F9fAl+Vx5E/H4AbWrw5vEntZyHBLU1DR+f+hTVNfMOJprLKpQx4ClRb1JSlFDqWt9H 0Nme8KDuVhJcAuKGF/TyJIimSqs5/QCmmDBWOC1rzHsvMKgYq6XfVK0Ak/7umulbWiMQ RJmzp/LFqwAFyw1f7qY3hu+kLm26B2hp/ZEBDfy3VazC68USblDdogv2pdn44sadtykT lzKHnUzlK88dyhhLOiZbpzdULWVyZs7iu8ISrPdz2XPW9WZQrbk5r9hcCmRXTXsJvNcN RB6dCSpXMAG21/V2Dbh0jR+xmkz6dD70aAhbfByBGdBGhrPPgoj0e6B0GNuaRvL/IcTx Nydw== 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=bZPhcAqsg7XD+fjGTgRJXCFXGVI969ukoiycLBrbVjeAXJHrsI4lbDgFg3oQ81wkGx 2XhWWufkg2H9y+1OUxcAj6GRYrtaSjVfTSYRBbDe2gK/eotd1hJ2K1RA3jrCr+W3BeiN cOqKymwuoHUq2anYIZVQnqv6/sADREUqQNnakkO2BZ8ovZUCo7M0etk7+vt9fiZk+zwJ dzWsZBU5j1J3bJTkvpPrYVZRuCNtwSDaIZ309zFWAb6fDuSL4N0Ci78WS5kTxDrIERD6 gB8pqqQuGZp1dKIMkqugckxjO2euvkJ+IVqdRKBlhxfzx+nXyxLLpmA5sXGUl2G0sViB jb2A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b="O/JgSP16"; 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 x19-20020aa7d393000000b0051a5ea200c9si8284960edq.343.2023.06.30.22.27.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:27:47 -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="O/JgSP16"; 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 16E6B386D61E for ; Sat, 1 Jul 2023 05:23:07 +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 C0A643858C31 for ; Sat, 1 Jul 2023 05:21:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C0A643858C31 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-51d9bf5411aso2674798a12.2 for ; Fri, 30 Jun 2023 22:21:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688188872; x=1690780872; 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=O/JgSP161ap+uustmyfivxDaFONrk6FSINXfQERkLtxrdPRXejaGHEf0yNhcxFEAMz i69vRi5sO6voxl1YXxYQNUhQdr9Gui+wFG/Ian65HvIoNNAqpwJZP9svx4y4mtaQ9Py+ cwcuPdzXDu1VZ4ZRZ4K/rpL9dDS1KA2pGy6n9UGjR5karWWt1+RYgbhaOmwbe6VA9HSj DoV4q5z6QVhx/CvO2BuATVWodHIpF2EzVDDRzOAUmR4mcg3yL8Pn7LHT9aCp/mQCc+Hk 5A00taPJByarn5RChii+72EU3Ix6+KDIsyv6ZtkX4XjLZT5QNg0yu4EWCsx8BRF96iY1 vTJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688188872; x=1690780872; 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=cNwMnv6CA/cj9XKUcJDSST2RcRI+jRrQvLDdd+ALGHEP0nPet/XP6RH69qfNptpbAi 2rJzAcxnsY5pxjb5jDVM0ZmawPu5TXdrpmwPDrGIPRGjyDg+9Q/asPkQWAxMk1BR9H4s LPB91l9fn+nqt8doKMhhSJh1NmFnOVGrKimnKvIiSNkVjNaaPNPHTf3wrRXsodZ8G4Nf vxCxpxzdwNV7epHwqvWc63qANpi7KTFL36HTeIhl3MpBa1ASAWFivnRkCWS5uQyoilbm A1vqbuoTHsvJx9xM1sfb9Ik3dO+ORiak7gWrAQoog5YAE+jwVuQ2kQ3N/7hVoI6tNoBe xQLw== X-Gm-Message-State: ABy/qLaEy0eCvYA8uwEzSh1XrNhljBZxBOjrINYHBripS+wA1VqOqvjf fkBMvHqBec4y949vnc/YpOfPnn2o3rq1AXQHL9U= X-Received: by 2002:aa7:d8d9:0:b0:51d:e498:201 with SMTP id k25-20020aa7d8d9000000b0051de4980201mr2621422eds.27.1688188872200; Fri, 30 Jun 2023 22:21:12 -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 t14-20020a1709063e4e00b0098d25cbb899sm8784221eji.41.2023.06.30.22.21.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:21:11 -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 v6 04/15] RISC-V: Add support for the Zvkned ISA extension Date: Sat, 1 Jul 2023 07:20:53 +0200 Message-ID: <20230701052104.4018352-5-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230701052104.4018352-1-christoph.muellner@vrull.eu> References: <20230701052104.4018352-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?1770194748796635539?= X-GMAIL-MSGID: =?utf-8?q?1770194748796635539?= 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 Sat Jul 1 05:20:54 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: 114953 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10841233vqr; Fri, 30 Jun 2023 22:23:59 -0700 (PDT) X-Google-Smtp-Source: APBJJlHG/3N2mcu/5PLslW9+3SjEJY93XuoBEGRWd35IN8TK2am4Jk2EpZBbwYoS5stSt4Rvar4w X-Received: by 2002:a17:906:148c:b0:992:a257:560d with SMTP id x12-20020a170906148c00b00992a257560dmr2853877ejc.35.1688189039154; Fri, 30 Jun 2023 22:23:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688189039; cv=none; d=google.com; s=arc-20160816; b=kH0KSxbGg5BnNr/oZMUa0UtaTSRqLzupxnX+Pa+y0qnBkiF5BWnUpAdsF8bEHdDVI7 T4L0ovUUlAu0NpZfMeS2geKPifnn5tO67MIc6oMOQCwlzbM3R86mW+t5rPCrAJv4+6Vr IH7tVqaXs/M11EWWeybGa+x1+mcr1rIeM7JO+6ER/Rt7axyiVtmLk7VFNcOPOSq3Anyz m47137QngaYkdGm4SPxT63oc7EPWEUxAqULwX4FKAbVuPY+6WfXFXphO0k9ILCRzkVnH E+rxrnuzPBHxk2mLoud1jcD+hgMNvNDUeHC2YGJG3ArrSEn+YbW3wgBSL4gJGQUFuefe Hz2Q== 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=sac4Cgw77Ep2AONyxGqcFYU0AWacfUdNsJJFu5lUmc2Owx4bovbPIwTbodZbSy3TAE gFSAOTVCCm6ztX+rpOiV6Rq2Qn/OMkoGG7T/THjadxEglhZPu0S7utpAKVh0UEAhyclp kbt4WMRoDbrIO0JHfLDqtxDHp+brRJ1Ph+sTmryATyQKlqz/1iojk/6HmfBcT8z3B5ph GlChJaFZajepyCb2OrIICMjt99FbU1aqYpBX9v/ZX98lUz3fA7MPdxb74ostjirqZN/y 91S6Ee9Dlqus/McXHFz7eB2OwD1fOpk+M7IaF4wmajCzrDmQrHziiMyXRVo0YW3R/+jX VJnQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@vrull.eu header.s=google header.b=V9KgmvGc; 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 oy13-20020a170907104d00b0099318060d50si410574ejb.463.2023.06.30.22.23.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:23:59 -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=V9KgmvGc; 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 B5DF838708C1 for ; Sat, 1 Jul 2023 05:22:10 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com [IPv6:2a00:1450:4864:20::62b]) by sourceware.org (Postfix) with ESMTPS id C15FC3858291 for ; Sat, 1 Jul 2023 05:21:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C15FC3858291 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-ej1-x62b.google.com with SMTP id a640c23a62f3a-992ace062f3so290018366b.2 for ; Fri, 30 Jun 2023 22:21:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688188873; x=1690780873; 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=V9KgmvGcqHP+SHDZQ4meYnu9nNSFhurfavqX/HiRFVycPEk+ZmsTpb7FHBv4Mtt3c6 1HQjXLBPyluofRPKFW8xZBqb+pfxblm2rRJAnxWlNJ5rrGF1D3+KmGRZE0pteIJyJcli Z593giYZr0oyl/G7DMaxO6JMTDSXF6epxdAoT3p0IEn4QaL9UiCNXa8H38wv7x/fGz/k kE9YytrZOswMw6EBzmxFRVfpf36REpAhhXR1chHja5+mIeWCCi5D0d0Qi+R7l+UtLjZI VYN6gkb4cpTez9E8kTZ/btHtyLwy3YcZvJ+cJjI35Lu+ka16FUn/hgpwqCv7UB1o/YND 3qjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688188873; x=1690780873; 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=EqpO3NUu+Ukemh72OjHr5hXUXx6gFztF3mHqVAZTDDygDz5TQ4WBp7Pc4wr9Vre9m0 p99dbO6GpbR9WNdRFUzx+pw0FdZeNa7615/r9rYjIPquYQYEZa6slS616v0fhZoq1qgv /vASHt5WvJfHrkiP7jnJO1/bgG95b6npeR5YXX2fCj7AyDxPHOgwx2fD6BsizhaevEFh Y/85Qx9bKal5UsQbIl89I/KNoLDJeRo6j+uxRCkblESRFR5YQVbAUnk5VbRIiH2Y2iUa yzAYVFkfaBLnTQqWnpImUAJ3wjVGMYaiO2lC+aE3z4E8JqUyXNEqKsRg5eZI+2T27N7I b1WQ== X-Gm-Message-State: ABy/qLYGJU8ZYOqPuCfFHr9vYn2HpFaXm1I63YNFQf4og0mzoerKR7z8 Ek2bFoVmLY3cP+kPCPGlQ6UdZUlhBVf1NQSCc3w= X-Received: by 2002:a17:906:3bd3:b0:991:e961:a5f4 with SMTP id v19-20020a1709063bd300b00991e961a5f4mr3184483ejf.20.1688188873149; Fri, 30 Jun 2023 22:21:13 -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 t14-20020a1709063e4e00b0098d25cbb899sm8784221eji.41.2023.06.30.22.21.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:21:12 -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 v6 05/15] RISC-V: Add support for the Zvknh[a, b] ISA extensions Date: Sat, 1 Jul 2023 07:20:54 +0200 Message-ID: <20230701052104.4018352-6-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230701052104.4018352-1-christoph.muellner@vrull.eu> References: <20230701052104.4018352-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?1770194510325124042?= X-GMAIL-MSGID: =?utf-8?q?1770194510325124042?= 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 Sat Jul 1 05:20:55 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: 114950 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10840706vqr; Fri, 30 Jun 2023 22:22:24 -0700 (PDT) X-Google-Smtp-Source: APBJJlHYrMHTI612ylytFHOklVHwwpMtr/UDTRo0nAW8gFaXcQF40GrD0JaxK0cf7/cejWdLwm5O X-Received: by 2002:a17:906:82d7:b0:992:aab0:533a with SMTP id a23-20020a17090682d700b00992aab0533amr3705584ejy.67.1688188944519; Fri, 30 Jun 2023 22:22:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688188944; cv=none; d=google.com; s=arc-20160816; b=w6gS19mxEIk2gaDW5OcBGJximNxc6bheZPJ0zqYO/ExJPgHFUsYjShu/ylvGkY9Lj3 X4W5xR/R75zH8BxH/ZLVwcQ1zw6oxRLmQGjO6OQKXnyYebZrZx6/DJxWCSwKvkprykPw 5GIHq+DOzLS5co2OhQQnluvYN6eJ0NqMb9Jl+hHV+/FL+fuo4938iHJa3oVSKWcKlp1F 1cz/VY4j2AUu2aixW0O7gTNJmkutQAo+pD2GboDVHfXivfeqm9/++T6x/DzLDb34Dkmy utm3jpcEeJ2iMw904WXmj0WEr4c4bSFlddj2tEl8AjaFyFVOqay/SgKubauVNTIZ02vX PPgQ== 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=au4A3TL4q5fjusSEP4Tblu4L8soQpuecWkneomvc3H/nyiM01guSVoyC6XGsinEt2V EFLCCEaWyw0ztQ5TD3NWfxumyt+MleZmIAihLR9vBO3+9Dqiof4Vocl0qp4885A6Igl3 1dUaV0xDBAFyWHLqrS5d0b8pEQKl5kQff5LxU9KGExN1nSadkY9TyTcg5Dz21EnRfPwD iRvBNQX5b376EXZShOAUtxzU8Q3as2JcKBCcjer1B2gUqIRa0mpnSS4FdIyCHxkwwRNR mXUUgdv6Bh2BrDfTzFa7S2LTkSNmG+qKTzYjRBUTMFWf92xhO3DyZA0zJ1sqngYUs+kW ZFqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=QT1BAz0K; 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 y8-20020a170906558800b009930371a03csi873165ejp.1001.2023.06.30.22.22.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:22:24 -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=QT1BAz0K; 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 932353853D00 for ; Sat, 1 Jul 2023 05:21:43 +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 B0C783857C71 for ; Sat, 1 Jul 2023 05:21:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B0C783857C71 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-51d885b0256so3066232a12.2 for ; Fri, 30 Jun 2023 22:21:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688188874; x=1690780874; 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=QT1BAz0KAJmeMowr8KPtD2ti+jDZhMU/ANOqAtqAMajUeAtYw0FTLcAizTxS2WxQF3 wjWRDQqDLOXNYq/pueQImfx7Qt+Zn77aoCTKXYNCbTQQBTxs7gj3tJxcBDk0euire4OF +sUqe7lLGAvVu3leFFxQIxqfIbz/cSrU4CNo64zO0w+wSsTJFUjkScTRDQmHYdhcNwyg PoNABUc111GTh6qSaT19vkJD+5IPgfXWEk/WgeVMRwYmnB011+OXvHfrT6+i4s2X0t0k 1z6zXswD1s7T+eA2by0lLgsf1fYF0Wxhua2u2vqpLyEG+ezW10RoBrrJ7dK022pOGob5 VfkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688188874; x=1690780874; 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=g/kWvccUm9EooT14ZdhYqQFSRHQdO3HCp3oAMAmoDmTafLHStyrNp5IwGsxA+SsxWJ uOnlda7tPi4jjnjRgz0DxMSrMhvmKkgcJfd9fV/BwoMv+2ER6A/0/ukQj/6gG18llMUO 7qsvHi/2Q0hH+wsqF/ibZlbOpcyLoJM+70t/K3ZzsCMvLtAUyNYxLLd2TMtgkSJJKnvA 9sg8Y4kjUd9jUr9UQs1r8ripHuLLzkM1pjSDo8UglCSpjskdl9a6VwgBNaOe8bnloebc tqez8EU4sM3Q3Ffmps0lqcb9ktf5GCoJiqNs9rrkUgkMGwU8aD+3hJQ1AZ/zqS+2o1SX cXNw== X-Gm-Message-State: ABy/qLbXT0DeiWNBII0bO6/ZHp6lTpKf7LBy/Dcv/pA2VQOF3V8f3i1P nJEler77hSqJ9ZlMiGtrKnQ6nIicS3Pdg0Nu8+o= X-Received: by 2002:a17:906:f998:b0:992:b2a:d627 with SMTP id li24-20020a170906f99800b009920b2ad627mr3141437ejb.45.1688188874164; Fri, 30 Jun 2023 22:21:14 -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 t14-20020a1709063e4e00b0098d25cbb899sm8784221eji.41.2023.06.30.22.21.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:21:13 -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 v6 06/15] RISC-V: Add support for the Zvksed ISA extension Date: Sat, 1 Jul 2023 07:20:55 +0200 Message-ID: <20230701052104.4018352-7-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230701052104.4018352-1-christoph.muellner@vrull.eu> References: <20230701052104.4018352-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?1770194410891163926?= X-GMAIL-MSGID: =?utf-8?q?1770194410891163926?= 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 Sat Jul 1 05:20:56 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: 114956 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10842004vqr; Fri, 30 Jun 2023 22:26:20 -0700 (PDT) X-Google-Smtp-Source: APBJJlF2rI78xQ/M6C8US4vW+uUrCkZQA+iM788l38czxuBWylC4rp2KK1i7XqhRqVrqZ8ys8XLD X-Received: by 2002:a17:906:2ac7:b0:988:e365:6231 with SMTP id m7-20020a1709062ac700b00988e3656231mr2681339eje.41.1688189180181; Fri, 30 Jun 2023 22:26:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688189180; cv=none; d=google.com; s=arc-20160816; b=FTwfhqo1pfx3XPGgX3cG/H5JIgJuSX6JtMtwgkYDBfL9FGMn1WVwK6irb5GPjOuXwN tPKI3Hm4otNfK2nVUFih0KsfulKd6rtKkThyzTBnse+5/nw3FTDFFvVw+yW4bnlHPT46 2WJpC9g2Xx1ecCCCdHzavkHFd0JUCTlM6fqIRfRlwRQLv0DQV2yOm8QImzIQ4R2ACl4U BRqcupsFN6F83FIn+KFAWlf42aukHkGxIVEFyPBIEogByRdGr+WdN8KtJ2OyDDvqc5A+ gaiVADHSelGAndNAj0U1LD2S2cmt8NLK1dgebxy4exS41jbYfqLcSl3sX+zHnHn2mM2f 1wVg== 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=PfXDv4KObJb/5z/eM5DxoN7BuaZMpqHu4GPVNUPrn6ML1evSNL2djHjejQX6N44DP9 ld2fQK5yaEeIms6qqVCbsqDHm9LMLC0xVALhDDdPu72xwDUK+My9gnIdAMTSeQjsfZ1k AFMYiSJOMhpOEvtAkJRTuNZN+hCy2PiQyJMT/RqaVSAm8dNgPMTZLrMJ+TZ2BwD4plD3 bSiee8hsPyXZDijruhG1h4oDCYhXXzKK3ibtRzExpa0Ul+HlIBEyr+ecw7qyxYVzDC9e iyiy67EXEm2nSZyk9QYSBAny1w/gBtuLZqD9Hv2OK9FAQ5ryyOmwEaJsc6BPeyU0wGLl 1H5Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=g1X9wOtB; 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 cw20-20020a170906c79400b009930711de9fsi815335ejb.623.2023.06.30.22.26.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:26: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=g1X9wOtB; 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 A0D7D3889E0B for ; Sat, 1 Jul 2023 05:22:44 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com [IPv6:2a00:1450:4864:20::229]) by sourceware.org (Postfix) with ESMTPS id 5530D385783F for ; Sat, 1 Jul 2023 05:21:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5530D385783F 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-x229.google.com with SMTP id 38308e7fff4ca-2b699a2fe86so43292201fa.3 for ; Fri, 30 Jun 2023 22:21:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688188875; x=1690780875; 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=g1X9wOtBsE9yeWdLqzbNzzjsuIQBmwWnhmumC3tZGnYm53iAzd1PbPn+is0tOo111Z Q2cSh2NRfptQ/NEwlbjMcIqPtVQVvUhEbrKtosNX7OIreq5Vfw//wKg6fpJN9RvvcYoP Iedw2THQvwW7HMSxUI5EZwArBOFKHAbWJ4RFDYqu2E571d8xqmqpNhLJc2e3mL2xAZ50 CgIheyf/HoWyr5ZKEXJ4yeK4ZGbJNPHRZBdygmYvqkJdXdJ5qW9LY68a3j3cGKCpKF90 W+iwyCV735hT6EMS4JKgstKcrjKNgzyJ87iGJXF6lqqMGxH/6kVlY9vRJMArlaSYyQL1 mY4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688188875; x=1690780875; 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=YzYz2w/gh/XLyLryaJRLWaJ1joWtb7fqwJ8dTQYMaWTdSDUOBBBtPUKpKiC7eqB/AY MY/9TECa3gjRGOpxHwdY+JSR8symLiyzq9Haf5Pu/wVmZCQcYYQMmOCCNpffaRfvwmXB fSSlwbgxOB43CMcuJETl0OH3kWZyTurJCJwAOnqjcbBtwCY+A3b8s7+lr7iLGCBC6ItE hFYfY2tPNx20O4ovpZO5fGFXzZL2s0R3HEZOPY8DZ0nypsEoIcdcLhCN3gYc2Ljolzln 26WfxhYQS2Yz8gGHW3arzHM9Gm1QSzSU9waM/cxEHHc5H6w/3knqJiQaJjHHhaeQFSBC DqDw== X-Gm-Message-State: ABy/qLYHRvD1chNXDx/FkvBqCnPKuRKQYZ7rP0Rvziydm0GG9jEDIyA4 zfEtKJAuCLfeXfiVL/Bji37AN585oPbfsIMdfzA= X-Received: by 2002:a2e:87c4:0:b0:2b6:de52:34f with SMTP id v4-20020a2e87c4000000b002b6de52034fmr148320ljj.24.1688188875140; Fri, 30 Jun 2023 22:21:15 -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 t14-20020a1709063e4e00b0098d25cbb899sm8784221eji.41.2023.06.30.22.21.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:21:14 -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 v6 07/15] RISC-V: Add support for the Zvksh ISA extension Date: Sat, 1 Jul 2023 07:20:56 +0200 Message-ID: <20230701052104.4018352-8-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230701052104.4018352-1-christoph.muellner@vrull.eu> References: <20230701052104.4018352-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?1770194657708545297?= X-GMAIL-MSGID: =?utf-8?q?1770194657708545297?= 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 Sat Jul 1 05:20:57 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: 114954 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10841540vqr; Fri, 30 Jun 2023 22:24:50 -0700 (PDT) X-Google-Smtp-Source: APBJJlHnYVukWloNRVQs8AyvvB9aWEx3AFPYiHK02DNr/2DvjkI7IYGmMJILMESE4dttXtE04qNm X-Received: by 2002:a05:6402:1a25:b0:51a:5a25:6631 with SMTP id be5-20020a0564021a2500b0051a5a256631mr2746519edb.3.1688189089901; Fri, 30 Jun 2023 22:24:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688189089; cv=none; d=google.com; s=arc-20160816; b=NXNIIXubWR57PJktKqjmESSjAJSN9P3PeiyACYqeyuyqcKtb7nBBnLH79T3VZqktl8 HXr7sjsB8BmEzFyel+VmDCwqCYAVl1lhyZNH0EXmKgTDn3B1sHtEYyg4WUMQpRQd1sYu XRpXVN1NtzxVDSII8IIQGFb3990Ofj19X2PKSh6WOpYuWu7HTKL618Ofld9kUSC10k3L jsSb0ycrC84bwFZMz3r6jRw+g+1SiLEfHsnclPLivH1DYCN9J4yi1Xv41SW06xd4cQiY FC3FOsJj1iX2DU/zwb25vN/VopGObPfGOM/2pn9j1QpERu1NhVXsIJ2f+heFG2EoSG8r zuaw== 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=Fs7x/Pl6APu5KhpETe7yMVp3EYIJBEfjL9Lanl3uhxGWUAnw78yLTlazYnS5FDVokX GJMZZ+oy/X8++FUeyJSHWMGxvkZBBmJvR/pN9SOZ8cMte1XxiBE33UET6bwlTKkAF4xi N7yRHmORcil4KciNg2YTZOOYIrTVrnTzNUwQQCu4gPkOFEqsHfjsjmNiAjz7RU4eG3oD T42TWiBB4jw4jP4hnamYuwG/8rKdKRVE55FguPFfPXklcqR37+GhhjAcwwN6+4r8zG9c x79NQ86oH1SNzNufmpooX9vKgxAx7ljVoafZUVQ+pTI95zbLvPMRK4viIT7nf2TioOgK R6Yg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=khhH9dKs; 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 b2-20020aa7c902000000b0051de4b8b892si204303edt.248.2023.06.30.22.24.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:24:49 -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=khhH9dKs; 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 BA7C0388267B for ; Sat, 1 Jul 2023 05:22:21 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com [IPv6:2a00:1450:4864:20::62c]) by sourceware.org (Postfix) with ESMTPS id 16B9F3858017 for ; Sat, 1 Jul 2023 05:21:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 16B9F3858017 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-ej1-x62c.google.com with SMTP id a640c23a62f3a-9926623e367so300491666b.0 for ; Fri, 30 Jun 2023 22:21:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688188876; x=1690780876; 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=khhH9dKsMdkKZIx9cYR3Xw3lZNm1XmpecSaGyAAYtaYI5O4mQKzdtRJ0BhdeWWotQB +mSHkChUyc7IQ5GX4q/R5vORlgRKRsBFbNp5cRQn3RmRIwIRoTXOIMBPx7OWQRr0laRt dukM0mmBpjm870zTqCbwmF49cZksO3NeYRqVpze8wS9yloHtukXxD65q+AoyxaI42pek CVtJmXDCd2/Eluf5LolK2i3GXmcPHgsy2Gq4az8D3zFCxZe54PxSue0JVHdNZFg6QpKg Pw1iXJxKXaE6LnDVRHXXoZ+dBPlmgM7xU3q4Ebh9YZsjRd/Jl/NKiQM0X86d4IWpYFJr WJkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688188876; x=1690780876; 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=PpLD9jGc5gDIa4Y3zGUfzkzRu8jUS9eVtFfyxOEy3UFB7jo0GTt9phUPsYnuEn5s4i FOjNFqeLKL0APVdih499swC6pzEsgkekqLcSuccdfH5SY7v+2zy9qVLblcmKjqyfeukD Fx+Mz2N6/irf6pik6hfgXlBJ9WyjFQ1DlakLPG+vwtuc07oHI/DAP14UihIUcT4kPn58 W+jGoSvMBcpv/QIw60WwBZ67Dx2txdz5DGZPJSR8FzRdnYlI+Q61g7DilqOwnLL7WYF8 m9m6D+CWGf2Fh+TE5VRJwxqAxnu2n8psRSlu0J4vSqiZMEttkJvhuqm1rbhkYiuXIQFJ IPGA== X-Gm-Message-State: ABy/qLa6zyK6fYXDu23BoJf3Rzxr7fabBsFJRWIOJiFYkIVqAyiQ3BK8 qYpjkLmoPNTr+1YAoEzaWmIuGnd2pyKj1UuJUy4= X-Received: by 2002:a17:906:3b03:b0:988:aeb7:2a37 with SMTP id g3-20020a1709063b0300b00988aeb72a37mr2829026ejf.33.1688188876472; Fri, 30 Jun 2023 22:21:16 -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 t14-20020a1709063e4e00b0098d25cbb899sm8784221eji.41.2023.06.30.22.21.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:21:16 -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 v6 08/15] RISC-V: Add support for the Zvkn ISA extension Date: Sat, 1 Jul 2023 07:20:57 +0200 Message-ID: <20230701052104.4018352-9-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230701052104.4018352-1-christoph.muellner@vrull.eu> References: <20230701052104.4018352-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?1770194563446844562?= X-GMAIL-MSGID: =?utf-8?q?1770194563446844562?= 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 Sat Jul 1 05:20:58 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: 114960 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10842802vqr; Fri, 30 Jun 2023 22:29:08 -0700 (PDT) X-Google-Smtp-Source: APBJJlFmRYObYjOcpgc7wEqJdYh7TkGaq73IHGzh6/3d6C51MIpMEfV/3e7awyQuwXNPwmoCt8lb X-Received: by 2002:a17:906:abd2:b0:98d:f4a7:71d1 with SMTP id kq18-20020a170906abd200b0098df4a771d1mr3417072ejb.8.1688189348477; Fri, 30 Jun 2023 22:29:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688189348; cv=none; d=google.com; s=arc-20160816; b=G+YO2ALmT0z1Nq4DKGsqIWpHrlBZvfQtrl4kvaQxqeN51Y8cT0sMuH8Cv/lC8iH2uR TaAMIQSw3y5q6LiJsoPdQuC9w1aEjAF/OhtIP/2v4CtXClRmnYKe2Y4SMRS34TQmfi15 lgp8icmNf4ThnQGxmXvOpPwTGVe09qLW+8zwXjI64dPDs2VToVSQMFSD6YSDrurFUYW6 hVKwUOxmcqNJafRXAIORV1ZN7R0+JeWD2uzpvN3Vj14h7ohVkLFahTn7HBhXG+Dwetkg GFAiY8HX3GZaZ5wOndFTqb3FhMYBrQicSYj3wkl9TnXsoKb9MoADDsZ0DDty9Bah+FmB BdFw== 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=Z9pSPy4cODFsJcnnIneAZ3OPAS1JKT+9kquyyGGMClE=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=REiKmPjXNlKtJC7rCcR3xfLQbSvh7iPzJ8i8fINp55zQ5u/7KFWLPtMAHKUCrjq35U pyTaFzM7xlR/wOzKdt30QpH9WOlSwF8iTUB6WhOL7wWzkOA7ggsye75NCA6iXTZgUrS8 vYEn2o2CPLGxlS1hxF9pU8Oaa4P6XWFfA7MfmSs7p+uXGgw9RbNJn9DDpD0iDzjuXiW5 7cT3k5uEsEl6/gZyF536TSMJBSWpZzbS74UK2soNKo8TdQPPEeE8ZwH/6OI2/AlOJ4Lb +P1TzRtWjcYiRMF9Wqo526KuhRU8aUiiU0m3d0GnS6bM+xq+WBUDhlGeZWAJWucqWH2m wqXQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=HhD2jdYO; 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 va25-20020a17090711d900b00993325b159csi14966ejb.659.2023.06.30.22.29.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:29:08 -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=HhD2jdYO; 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 CA3E238708B3 for ; Sat, 1 Jul 2023 05:23:26 +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 11D383857705 for ; Sat, 1 Jul 2023 05:21:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 11D383857705 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-51dff848168so387876a12.2 for ; Fri, 30 Jun 2023 22:21:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688188877; x=1690780877; 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=Z9pSPy4cODFsJcnnIneAZ3OPAS1JKT+9kquyyGGMClE=; b=HhD2jdYOhqpxTZ0BzMnveXL22oMUExRYctMzDW/lckNW1eIR8GK+WAuvHvQHeivNpT zy6GBc7ErW61xHDqtRR4u0i2bstvaQKntGOuENzvjqONZ5HhjfgBro5Tb1lceF8UhbiN wsGX7uF9al6Nsaeu8tMTbQiPg7c7G/lbmhD1Sp2c7zob6++HLzLGRHuGWKj+J7vNKC/e elsMPT6m4URzIlZ3W/dYK9MB5yFDOSpv8t+S4l+4IPZ2k5iW40elo83v2fNuTZlt50oi WIlFP2UZsK5EzlqQn/h6+rb8N9d5POdd9wr2Z5mrtzsJdeoSaLCFnt0I0dgJQLSaS984 M68w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688188877; x=1690780877; 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=Z9pSPy4cODFsJcnnIneAZ3OPAS1JKT+9kquyyGGMClE=; b=lyOj1Nl/pyOXx6Cu6T9FRIBDdJul4+mrvHZi6Lk4cx87l1jw2ixtc4BXrIOR1aQ+fS 4CVsjy9p0B4cRO+P0feDIBcw6lXY23wdRUGvYUESZA31gjgtvDZ1C+xuvDA0XAf/8/Tp i3zkAb5AFiuouLDlvsGmujEuq20oZb4pfccOxCxV2iqDVJR3aGI5labzkVowx94ls2PQ gnu1BzSsBE5MpYXU9jIeNS0XfYEeAiftPk+7MFF/mt9edPB6YIhQj+0efeCY6EE2twVW qqEqyd7QUL7HYWdGO+zpZ+gpEIouRmkwQPggmk7oNV3q4hEWJlRaz1E6dLnsGbW4gqVz wCUw== X-Gm-Message-State: AC+VfDzekVHlL26LmfQEsehkfj08UqHznLD7mMmsG3gTQVfri8wVE9fY H8dIetgHEUANd7vIqz6aCnikQZ6TgLa2rKA37Tc= X-Received: by 2002:a17:906:dfd5:b0:992:6656:4053 with SMTP id jt21-20020a170906dfd500b0099266564053mr3047876ejc.15.1688188877542; Fri, 30 Jun 2023 22:21:17 -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 t14-20020a1709063e4e00b0098d25cbb899sm8784221eji.41.2023.06.30.22.21.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:21:17 -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 v6 09/15] RISC-V: Allow nested implications for extensions Date: Sat, 1 Jul 2023 07:20:58 +0200 Message-ID: <20230701052104.4018352-10-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230701052104.4018352-1-christoph.muellner@vrull.eu> References: <20230701052104.4018352-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?1770194834641776061?= X-GMAIL-MSGID: =?utf-8?q?1770194834641776061?= 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 | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index 426139d4960..f7fb7d88d76 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1873,14 +1873,29 @@ 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) { - riscv_subset_t *subset = NULL; - if (riscv_lookup_subset (rps->subset_list, t->subset_name, &subset) - && t->check_func (t->implicit_name, subset)) - riscv_parse_add_subset (rps, t->implicit_name, - RISCV_UNKNOWN_VERSION, - RISCV_UNKNOWN_VERSION, true); + 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) + && !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; + } + } } } From patchwork Sat Jul 1 05:20:59 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: 114951 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10840871vqr; Fri, 30 Jun 2023 22:22:48 -0700 (PDT) X-Google-Smtp-Source: APBJJlFOLo5D2AXTyhuGIHfLy8EYgJQP2TU7d831MAYrSEZrVrrGa/mrQPEF1ClKxcfHJGb5LzVi X-Received: by 2002:a05:6512:3e9:b0:4ef:ed49:fcc2 with SMTP id n9-20020a05651203e900b004efed49fcc2mr3649893lfq.26.1688188968706; Fri, 30 Jun 2023 22:22:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688188968; cv=none; d=google.com; s=arc-20160816; b=bKNABiwJ6vRq5Jnev+mMRZ4Ea46axYlh/l9oJFp9sQzKhWdwrQmKPnp8CUStteK6A8 e8rEbFMT9r4U9JTMiLzCJ2ZCp7wckcdjTu+WKaUiss8Y02s1wc7jXsgwWvhk/98SK8f/ 5ClN7KcCZQoZXFcehSW9eGZ0nuDEO1FD80+r8jaYmldrKkJKKqxanqptdCGiMYeR67f/ tIEZZsf7A7mszqr+wfsi5nfhnUZUOmTMbJh7VtH5eHoQKs0RF3umsWONVYaGouaYXJUV C268LsKibPUb57M8untm/HrjnwW1ASQ4s9PG9uH+NSyH0sf9LYG0IV9k06ypRAFYJym6 Cmwg== 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=jKzkIzwUTMsaEMoMwuiCi4BdEiOVCHRDvECoWFdi1t4=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=ZgAfVOSg4UWhds56b/nEFxNBTvs56QhkDmdEWVFsdXgXxGRyQLWdOWUm8IeUeK9gol j7IM+BZB1GCOSrWu5TMYg+U+ROQZNAXukncM8rJNDs/n9Ujqjdy9TwTBi3SKV7ajHZJj aYmSzJjN+Kt94Sg21KHX06dYjpAqdTEnwv/Ts9Rz6UtZENZhfz0l6gLp7US8aqDMsNof 5dz3lUsDZ6AGJjgBbBgKiC+Sc110VTjisI3eOG3ZY63FQ1yhnTnDdDjgu7Po+usnP0v2 Rw+Jwd+mhtaURNm7GAslNu0etC3uKZu6hthp+jrU2YVzeFjJQNq9fHE9DpfhnVGVRS1F SaaA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=dH+Slhrq; 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 l3-20020a056402124300b0051bfc800e4fsi8393707edw.26.2023.06.30.22.22.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:22:48 -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=dH+Slhrq; 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 C0351385828E for ; Sat, 1 Jul 2023 05:21:51 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by sourceware.org (Postfix) with ESMTPS id 443073857719 for ; Sat, 1 Jul 2023 05:21:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 443073857719 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-wr1-x429.google.com with SMTP id ffacd0b85a97d-313e12db357so3285020f8f.0 for ; Fri, 30 Jun 2023 22:21:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688188878; x=1690780878; 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=jKzkIzwUTMsaEMoMwuiCi4BdEiOVCHRDvECoWFdi1t4=; b=dH+SlhrqS5xH6OzJ84IaquPLqVKh/eIKLyNkmZn7ArLjhnrCNXp3cE37djr6PYYQdW E94egPlhiW5XtbqtOnD9AMnnQ9OsbV4LQi4qnbx1hZ+ZDgJtDbkC0r0PmfLLGxAx62GN yK/7s7OxahNJDRdYoG75RuJ+WerzRcCO/d5Qp3nQ2RuoQvVfnzBki4xVnMv6et8cpHuK Au2u+WP5vH9IxBSAYfcEgp0CfbQ+W8/RDsMfDCAx9SIIfe/fKUEgb+Qb1TEKH1qDsH0m Bups2DrMIGH1AXa5NMp2mKbMkOfYQZf3xNvWRpcSbs6mYAudzZjEH0dQPsjACcRx/J2z 3dZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688188878; x=1690780878; 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=jKzkIzwUTMsaEMoMwuiCi4BdEiOVCHRDvECoWFdi1t4=; b=VrHL/6O69BbrL+5xm4fy97pH+SW/zzIwbz286hhZmOFyGA6nkKPgdDPo4NFiTszEm6 33zJck+imS9cqarfEWg0/JNsBj04S+GG+T5fmDi2O5yLp3cpBHY0jA6v3Z7TKsIfUOKc XV0LyEkbu14UMkaMqDry4GeFXyOPIsa4/7D2J2ZllQuXSSNjf6wPyaSgxe76oIxmay+8 +fxnnpGJxxBAh3iP8Doj2SDx+Bsk7jztAPGXp2LPWXhbhnom9za8GlPcVPviTtBrEQ8k GezZqnx57Cv9mtMMgQgLx0BwjtP56eV838FuUz31ttwFp4IDAeBf9t+NAz1dZKuBXf+r SOUg== X-Gm-Message-State: ABy/qLZ1i6F2aC13kHkY9cAoe08SmMq5L0a8W4MZhBHLcV9Q67B+FRqm dvxnm7hWtS3I8Rm8xdzi9DWIWmaLRL2Yc0c8wco= X-Received: by 2002:adf:f209:0:b0:314:2bd2:9611 with SMTP id p9-20020adff209000000b003142bd29611mr691039wro.34.1688188878564; Fri, 30 Jun 2023 22:21:18 -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 t14-20020a1709063e4e00b0098d25cbb899sm8784221eji.41.2023.06.30.22.21.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:21:18 -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 v6 10/15] RISC-V: Add support for the Zvkng ISA extension Date: Sat, 1 Jul 2023 07:20:59 +0200 Message-ID: <20230701052104.4018352-11-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230701052104.4018352-1-christoph.muellner@vrull.eu> References: <20230701052104.4018352-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?1770194435946990105?= X-GMAIL-MSGID: =?utf-8?q?1770194435946990105?= 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 f7fb7d88d76..60cd74f06d9 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 Sat Jul 1 05:21:00 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: 114962 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10843056vqr; Fri, 30 Jun 2023 22:29:56 -0700 (PDT) X-Google-Smtp-Source: APBJJlFmkvxbAY2kHzr1scpY7bHmozk/V2t/MeUMUFUPOKOngO04wG8d86blAuDzAqeFolpRhofA X-Received: by 2002:a17:906:b352:b0:974:7713:293f with SMTP id cd18-20020a170906b35200b009747713293fmr3151290ejb.41.1688189396768; Fri, 30 Jun 2023 22:29:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688189396; cv=none; d=google.com; s=arc-20160816; b=ASVWKgV2L52F0qra8n958b1ZqBeji20kLUeNlVgHV1+TlIvZ4G9abhaXI03DC4sFne JsEBeee2JSIaxKTcFTM3XVI04fR0kEXDnQ0d8VykHIidzgR6Y2E5uyd4+Ig1PtGJXscg v9uXrawAwBEr4D4wWxqQ461xSsXAmHOmdNo3CwObmVLMHInqrlYtHKajw9yrcDwV76SQ olcHK3yUtDyRriADOiF/wAVGRFRoyPZKHEGu3jg90QlXTVNqzE9kg2rKs9V3jJEJcTsM I57vLHfjfWbe+ZNmG54Y4C6biRShSm633BVyAy2rCGO+JF7+w9CT8ve5ZiBJ07EmOfCp DA2g== 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=POB4FgcbglqZkItqMeTHSoBzxx9hJ7gi9yufsEHtqx8=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=kTysjVVJZabe1EcWhBlU10llXklUveSqJdmqniu5hbuSt0L8SBRhKl35Mg5N08bSro DABwrfgueM7DNns48KzKuiQRPFW1+uHGfbOIMpveGdU7NjVur3JZ5h05BTe71Kbf+gj7 qRC/hcwxB73hjIsAL7ZarAb/NKpcVQu3eP6AdaRWJrQ8jlGAOX257MUjMB6s5JDjHHzO y5J4UYmeyXvXxIcSncMRUPYSeaIMqq4UoazEiAC/Ro1Pp60C1YIi+v7gzXxblMao85gF l+6oFVzoDyMGBl7i7mSq5TAQzI2Od+0hkoWhszicwwfLvRNCuICEAyomIGns2uJ5J5JE v1+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=fg3dQsmu; 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 me4-20020a170906aec400b00991fcf4687dsi6332346ejb.186.2023.06.30.22.29.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:29:56 -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=fg3dQsmu; 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 B055E3857723 for ; Sat, 1 Jul 2023 05:23:38 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com [IPv6:2a00:1450:4864:20::631]) by sourceware.org (Postfix) with ESMTPS id 5AD313857400 for ; Sat, 1 Jul 2023 05:21:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5AD313857400 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-ej1-x631.google.com with SMTP id a640c23a62f3a-9924ac01f98so314152666b.1 for ; Fri, 30 Jun 2023 22:21:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688188879; x=1690780879; 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=POB4FgcbglqZkItqMeTHSoBzxx9hJ7gi9yufsEHtqx8=; b=fg3dQsmuN1crg45QHjNC85U62ijcOArWxZS4RsVnnQ21hr74OEoeoHxtHlYVNLuvVt iAUnjL25Sz6OBQ9cyUqYnZV0ZCQkWxaxNQOgxkMHIM2g3iX+eKia+KTOMV6JALHAjvGZ 6/8dCO1OX/6UVeA83ZLVlgbiP8vc6e7EB4gCcAnlKzwWOS/NYF4Q39tMakOhAlTIYKE9 gQQK+X1AeNsg456BTlc1Kbg1965C+Ot07CXhBDPQpaPqc55qd6sa5N8zgZVWG3fToajM 9ZPH0SAqd7m+lMQt6EVedXdJkIfAYj5vYt/FK7GaDSxT0JySlu3VBu70WqbhwBlMq7oS KNyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688188879; x=1690780879; 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=POB4FgcbglqZkItqMeTHSoBzxx9hJ7gi9yufsEHtqx8=; b=Qse4DunTiTgqGJ5H9nDV9b0+UYnJXQ47zrdjDTz88lXHMVlLUjN2g99pBwA1tyBUcK LBNTUA58UMyl0unItjvjVRES8glkBdU1u1cVIa3hkibM12tOrh3d7atQeawyZTw8F+1z x/liGlQ5SPaTemgo8D8m4a2SFCr84OT3ZZJ6AFJeVlRa1uMjjYdXIK16DIzxrsNLv104 MRPBizPal3GznKw75r6lCKei04vFcHEHsNaaYTzrjwewbDzCirX1j8Yl4ByT1Ydc6DWb DaNyeexYdASsY/Tjf51VzM4YuSBCdII9NWDNJzmm/9RfKe/5gCt/NFhxeHHoW9tV4hwK iJyA== X-Gm-Message-State: ABy/qLYU+Es3sUIt6Ot4fMJ1VeAi6yf1SwnAOmtU3+4IVqu0tbKgtnTX UznZ/gAKRTBN+bea98HreNsMUjjqba5d7jqsPNc= X-Received: by 2002:a17:906:edbd:b0:992:c0bc:34a2 with SMTP id sa29-20020a170906edbd00b00992c0bc34a2mr3048009ejb.42.1688188879737; Fri, 30 Jun 2023 22:21:19 -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 t14-20020a1709063e4e00b0098d25cbb899sm8784221eji.41.2023.06.30.22.21.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:21:19 -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 v6 11/15] RISC-V: Add support for the Zvks ISA extension Date: Sat, 1 Jul 2023 07:21:00 +0200 Message-ID: <20230701052104.4018352-12-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230701052104.4018352-1-christoph.muellner@vrull.eu> References: <20230701052104.4018352-1-christoph.muellner@vrull.eu> MIME-Version: 1.0 X-Spam-Status: No, score=-12.2 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?1770194884997514907?= X-GMAIL-MSGID: =?utf-8?q?1770194884997514907?= 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 60cd74f06d9..5d51ef6b262 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 Sat Jul 1 05:21:01 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: 114957 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10842239vqr; Fri, 30 Jun 2023 22:27:05 -0700 (PDT) X-Google-Smtp-Source: APBJJlGuNc95FSmQE8RbwE4libU4eVkjRp4jeCEs337Ko93Ry+CecaKeLpCKdLL4Ble5PoLsNkPy X-Received: by 2002:a17:906:779c:b0:991:b2a2:e424 with SMTP id s28-20020a170906779c00b00991b2a2e424mr3914747ejm.76.1688189224929; Fri, 30 Jun 2023 22:27:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688189224; cv=none; d=google.com; s=arc-20160816; b=KRyQcbgJHT7y3ui0WtcFUJLOSj9dv8OpDX+N0KFq+lUyGu8YgygeDZhM02wHv+wPna eVDJ8qe6bSRdTywk1m9HMiP7fpykAKY/O0R37tq28AI6dpa7NIkII0iffCBYSADvMo8q F6GIZ9SsFCTB++Q9FmjVGzU7uzcLiyuJQNmOrKtdHTyw1sXtJmOO5HrAchF1UX1rvO2n UEZsUIWGAvftiSIIGuA508tj7RU7gbFb/pDmRX5/gOeNByIzonQ7DLGljoa2R2scL6Tn hSjCXTdKmageX02ilzBVDQ1vf73fF3x7AXRJ7ZEQQUbrGa1eZFFsyQVEi8gxT5bxdX5d 6B+w== 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=B9Y2883Q0SJAGliQZPwNr4SM2CKI1nal1mzHGJEwVPE=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=VrZMyVAm4dwB4HIRn1MdAhXpalyS0MQ9Sg6q9TpICNZ76yUjk70U2hQRpkezveobaH tHryfjBxBxdW9SbKk0oBERuY+GTxSMCOdQvrlyDeW/WSOBsvyyQRfC3jB22mrArhEVQW jm8oVdGyGg8Ty5K+d1uzDLotGbZ4AHe1TAXoyDLpWd5k+TT3HlPs6c+C8B1v8P6R/w8X APy3h3En+hbNSkCD+vqlLpJSsC2Yxhj2VgRZIhtoCjJ2/APFhJOl51YpYgSOOI+8drGG jMza0eW7eXI8XleZZkkuB+lt/Jpo/nYy194ypAzGB1GCdAb4+gVIP6QP4kRGfXOZmW24 vvNQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=Oq38iRiK; 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 qc28-20020a170906d8bc00b0098e31cd141asi7860886ejb.747.2023.06.30.22.27.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:27:04 -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=Oq38iRiK; 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 4EEFC3895FEF for ; Sat, 1 Jul 2023 05:22:56 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com [IPv6:2a00:1450:4864:20::62e]) by sourceware.org (Postfix) with ESMTPS id 6AF9D3857352 for ; Sat, 1 Jul 2023 05:21:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6AF9D3857352 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-ej1-x62e.google.com with SMTP id a640c23a62f3a-977e0fbd742so299779266b.2 for ; Fri, 30 Jun 2023 22:21:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688188880; x=1690780880; 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=B9Y2883Q0SJAGliQZPwNr4SM2CKI1nal1mzHGJEwVPE=; b=Oq38iRiKLOoYLBgkmOls3Ev2UHdaJrF+WRQC7OBWQInTCYwN+dExzxmkxMSGAMCKPc L552qCBFwR9ukY/5AtdNoMuwTfLTkpUfnnm0YB1mzViRnHv6y+JDZSBDCS16vwxWt+zc Umd/FjUzsd7Qq3iA6X5zzHc3g08jl121Px/iPg0YCDPkMAgan0d0gj8M1/cCZmfqBL30 SrW5h1iC/IbXjQ4yu04K4qSsYPcXP9WHOOtutcMQCSzLX6T6RF+39EJxsBdP7pS/RL5v rvNP9giP4Ff8BXxpu7Kl3THSvVXHlnjMQ6CV0KUvlLB6VPneQOJW/7tmQIytWv7aaqmI QQhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688188880; x=1690780880; 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=B9Y2883Q0SJAGliQZPwNr4SM2CKI1nal1mzHGJEwVPE=; b=Wp4ltvk+oNSteT785eNek0meBEQdvLywRAcJir0R6t8DAHtLDDBgEBERC+FD+rF+ye hWawB33mdzZw7wRMRTTvCf5Wp6aLRtXFfRArx7r7EstCia891+6LBD26KOMM0vW4gt0g esGzxybSz+uxd8Wxaz0IiyBQ0fiLU8iiHIW6Rrl0nXM1qfNtuLoMB0lOYGayVot2Yj9+ gtuNYrKBX7Q36ED+vwDXdHN4fJxI/b3C19nwwxrLvajG+odVhHDt9lvzl33mNGe1EqEt Qv+b1nwX876eNq0+q6sBKtyn6/eQsE1C5Ot4H++0tMgjshP3QrZTGZB4MTZi8rlid2Of i67Q== X-Gm-Message-State: ABy/qLaskvsMUiZJA06apCdva1hXbZDHZQlaytlobkZN7ewgpQK4Oj7i 9O0FaMJESO0Xgi6BR1pnxuGPZ6iFxqzo7Uk5YPE= X-Received: by 2002:a17:906:779c:b0:991:b2a2:e424 with SMTP id s28-20020a170906779c00b00991b2a2e424mr3907076ejm.76.1688188880836; Fri, 30 Jun 2023 22:21:20 -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 t14-20020a1709063e4e00b0098d25cbb899sm8784221eji.41.2023.06.30.22.21.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:21:20 -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 v6 12/15] RISC-V: Add support for the Zvksg ISA extension Date: Sat, 1 Jul 2023 07:21:01 +0200 Message-ID: <20230701052104.4018352-13-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230701052104.4018352-1-christoph.muellner@vrull.eu> References: <20230701052104.4018352-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?1770194704401613102?= X-GMAIL-MSGID: =?utf-8?q?1770194704401613102?= 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 5d51ef6b262..e2a7d8cebcd 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 Sat Jul 1 05:21:02 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: 114963 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10843588vqr; Fri, 30 Jun 2023 22:31:24 -0700 (PDT) X-Google-Smtp-Source: APBJJlGXo3ip+0cjp5oz5XHajxYGYmx9cgqFElhjRtedipQNwgVH75V4DOlhe1+45jfcyLqSLNWV X-Received: by 2002:a17:906:1db:b0:977:ceab:3996 with SMTP id 27-20020a17090601db00b00977ceab3996mr3593295ejj.76.1688189484641; Fri, 30 Jun 2023 22:31:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688189484; cv=none; d=google.com; s=arc-20160816; b=XojU17mXyQBJCI22ZiXnsosWg8ulA72AknfeHR6rphhCq1wmr0xPtHYtt+Zz0TBHwY 4UIQhfVFM9JtpFtVho1zfYvOyhgiwoXKxS9cmX53O8GwqJ6x1ft8kLlEprJCKLbGQRcY XNUSyTbbFpeHqnkzHmH5z/2zaEsaG7bwGZhCpKCo5VhOdCmJcCN1uVwR+aoG4VlRS7SF wQ1Q6+qKs+v7EAse6neAsEcVjKSDkoaXsFJGhv+M8N2byAXDseXE0032kc0RL2lrzC8C AyZTSTjzTiyL9BCB0yh8Tz9AVRMw2pu7ZaHN07xUsiRa44IOG+3FOmVjO/MChH9mgl+F LZYQ== 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=SCu0PCZ8RVomj/bIpYATNFv1p2MHfEjjZ69RBdQipGw=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=rOkZAxDvTXW7Vd8n/dgRshQivRXuqflIEBAmwLbclkSxA5XsIV+g1kuEnuP3G7OsI2 zOxDzXP0bHIn+ybs2yOqbzzrhSvk+gmfrAdfLET0hv0OY+dwRDQr+shluKEIQjmT50Jm iOyVEY671WORVJ8TrTODwqZ+6y3PRsmDcekLyMDAWD5DfLunHsIFHs1pCily1mW0nzEA ixAd8l1FW8NTgAekRHCuJGzYVSWFo4F+jSNpgqtT7697M64GTY8AWzx6i9I9zbOPCAfr PSlTv0pDkRPIbZF9C19UfWGAQzbzyyS5G2hCAkKt5SzRXlyDxchJQl9oFcER6uGUOdyn Q5jw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=VKkPjEnw; 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 j27-20020a170906279b00b0098dfd35276esi1305523ejc.1055.2023.06.30.22.31.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:31:24 -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=VKkPjEnw; 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 7D3D63954C54 for ; Sat, 1 Jul 2023 05:24:08 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com [IPv6:2a00:1450:4864:20::62a]) by sourceware.org (Postfix) with ESMTPS id 5B1EC3858418 for ; Sat, 1 Jul 2023 05:21:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5B1EC3858418 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-ej1-x62a.google.com with SMTP id a640c23a62f3a-992b66e5affso276565266b.3 for ; Fri, 30 Jun 2023 22:21:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688188882; x=1690780882; 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=SCu0PCZ8RVomj/bIpYATNFv1p2MHfEjjZ69RBdQipGw=; b=VKkPjEnwdrl8ao/uaS3eEOm9BoxGMxPfOJ9iqn7uGsa0hFDlGg37Q4+bJTuM2ZpD7b oTVTnN/9CIbwScHhcAplKvecQbYCjjw385o8zzkQ4I9Edzh2XvnG61ele1dpdIdjjORs OD+u63fkrhCX2hfkPeSh7W+0/5hkl2BdXmS1R0/Mu7hcgj6cjAGaQccyxwgk51DlHLpc RSRPf92ICAivmcrYOJY90YT6fXle2XF081pFkGrZjUILuq2e2KJzeSVdoar4S1HHNHLK HKOOOYnjUMLCebk/WBYGnUhM4H0W6oKTzF1ylxabDYXoFjzRQY8RXkINP0n/3EWKwv8y YYxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688188882; x=1690780882; 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=SCu0PCZ8RVomj/bIpYATNFv1p2MHfEjjZ69RBdQipGw=; b=e4qMRokZQaMavhTUBQGx3pU8nIknUDEtEs4PCvO4XzHexZCGeTGpfgUgl5PSYZB1rd 6QbIYn6ZeCsoGXiK4dbyQ+MexZ1v/FfBSUEFbmjj2b1gdP/6yjYrfaW5Ve+AyRrwNYqV bzuSOaAm92LZw9MJUKwL0vqgfXQgSA3+cnP3JP4jRFlU5NPppVJx6Oxv8VsIareXwDpG jOBYRKzMJZh+Ksiat4auF4kDRI1GBwxEZG0wp9KkQhAOvc2z60T/dNwp+w8nysu3Aac2 8SeiHhxMgSiRzKmLQadn7gjb1CiBhC/hh6+X7rey/umXRW+H6rvJosJUubHOEHtd6laY xDiA== X-Gm-Message-State: ABy/qLb2h3t0bqvrgAhaWTi2U6+KPO15o5wi60mfL+YCJMyKnWQZulxh FUxBfL7w+ERcARpoh7vSz3ZBhwd6v6QaEaeHuO8= X-Received: by 2002:a17:906:138c:b0:992:a9c3:244f with SMTP id f12-20020a170906138c00b00992a9c3244fmr3031560ejc.4.1688188881844; Fri, 30 Jun 2023 22:21:21 -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 t14-20020a1709063e4e00b0098d25cbb899sm8784221eji.41.2023.06.30.22.21.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:21:21 -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 v6 13/15] RISC-V: Add support for the Zvknc ISA extension Date: Sat, 1 Jul 2023 07:21:02 +0200 Message-ID: <20230701052104.4018352-14-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230701052104.4018352-1-christoph.muellner@vrull.eu> References: <20230701052104.4018352-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?1770194977274683741?= X-GMAIL-MSGID: =?utf-8?q?1770194977274683741?= 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 e2a7d8cebcd..95b3ab3c2c7 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 Sat Jul 1 05:21:03 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: 114961 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10842853vqr; Fri, 30 Jun 2023 22:29:16 -0700 (PDT) X-Google-Smtp-Source: APBJJlHW1OHsdifTSxGDz6O8iEoJPaSLTr42JafMnWzPHs2x6QvSBpQP4jabWOMmSQrL/eNS30S9 X-Received: by 2002:a17:906:a88b:b0:992:9d41:874d with SMTP id ha11-20020a170906a88b00b009929d41874dmr3191235ejb.13.1688189356066; Fri, 30 Jun 2023 22:29:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688189356; cv=none; d=google.com; s=arc-20160816; b=HA/SCLay8CnD9x4moNZTQBOxoY5exeXPQHo4ZD8zBjHbOMqEjpeUY56FGaheVSADEX hn6UmrM+gRyJyxlYS9YIRpz7GJCHf+lLs0fEMje6zbaUphb7+3ZOkcIde4trBJgyNgcc nwvjTGk2WzqsybX9gHnIe6C6yzAeUeZagahTkWO37VNJlNmwXTmy5cMURNLHA4HGGDnm fySwPrrutA5ZbCbR9MOP9G2zwIW0Ec71Iyjez3Fbmd5W5R9gve4pzBcnasi+VuTY6d2f S1vjQk4v1/X4kcFVr8os2LUwhT0Gxc1iR6/TQ9wBl05jgG5ntgP72y6jSD6RmSqX8LlR cfqA== 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=RMBz4r9YOUM3fITvUSXHTiZ4vCBlrhbW6NtCMhFdSEU=; fh=Gh389lnGS7+dIjI2+V6ajEvUcK2Xxxss0RzCnvp16eo=; b=RhMIKt2+Ki2a/oxCIG0PNqw7kyiE672RbYRP2+dh7rMoku4Q0kT42/G6EXh0NXZLhe gYcwuQqdzci4iI5C1pDwUa4IIWBkRYSaSQrJWwvKii3HMj9LxDPc3sD+bKd97dMBksWE x2DXsB7zf8OTH62ohM4fuZVlWlT+zTgmy+6FsYzfoh1LmhlyeNA+GTR8php87mdlNV56 yRHGKxVQDIz+GGskQ9RvoqqxW1OQIOKM1AadHP4avrdc34FqZ85JvVnNrU7MzJAasjiD grQ/YB0v4D3IOtPD9nHxfyEP7xnpwTh37zXUBVz4OB1xhqvjsAfAUAJUKf20nQpQEdIi y1/w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=qaVsYJO4; 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 y11-20020a1709060a8b00b0098e23d381b5si346742ejf.187.2023.06.30.22.29.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:29:16 -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=qaVsYJO4; 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 B8D84394D881 for ; Sat, 1 Jul 2023 05:23:28 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com [IPv6:2a00:1450:4864:20::630]) by sourceware.org (Postfix) with ESMTPS id 6E7543857716 for ; Sat, 1 Jul 2023 05:21:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6E7543857716 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-ej1-x630.google.com with SMTP id a640c23a62f3a-9926623e367so300498366b.0 for ; Fri, 30 Jun 2023 22:21:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688188883; x=1690780883; 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=RMBz4r9YOUM3fITvUSXHTiZ4vCBlrhbW6NtCMhFdSEU=; b=qaVsYJO4tMxJuVeZhN0rDdKO+GW7wYy5YGUCrkRmxquxrDWviKJJmlMne3nxojfuKp SAIcj+I0+eRT6cqV8WpfKb8sCNne1EjmlfXatpzD8hPGKqWczxUx7A7eDHJF4gM9+9Ba kNu5PLo73IwmlAgVcbNA0v5q/5+StMGpzQz9BgOsN+RhHEeUeWWSBzUKtWdmKlvPfduQ 3XeCGDHSZi93LUm9Eux+xa1jbNnvxuU3igR7KMl1/nJdHzKVBhkA4on3JbGoxe4N3tBZ uGngkrSniA3O+qH/khZuWDAo30xGd1ilkpOYo+VSb3tFXJSWSsq5z/IIrm6vATYcJEjq kxKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688188883; x=1690780883; 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=RMBz4r9YOUM3fITvUSXHTiZ4vCBlrhbW6NtCMhFdSEU=; b=K+xlFRuYTJh95qnc3jLV/RHOqoy9LDAiQW+rLC2dOt75/FX6IunHO4pn76Wly9Us7b kxf3ypktF2FhiQ6CxYmd5ofIIo9rWuCc2NPG2dmxTBSR+9fwGXxa6gksD+2BKXW3XkkF 54i+U13NPPuAXXgErdjpenvkG9GVAOq/WDWvHNPZErASHeNpIDb0Hx7w7L8O59Fn6TjN FNyrPTtKBp1/atxICh+QBQNL+al9bI6aezH2qsRi79ChlIw93iroDH13nxSuMzk2vFwy s9ewh7N+1bpXAv2fXY2e7hVMU+DUnRgTDxTDZujWPXqoT8FEighPZJK6Adm4Sqxt+583 fOuQ== X-Gm-Message-State: AC+VfDx14c6R9/4LF37yPfCRkRcwry47Akaa0MoXYm5NY3ZVVsYgegFY reYN6vlVcYjMYmX+J1SlMZolGJfcfjU9Pmj2UeY= X-Received: by 2002:a17:907:100c:b0:973:ca9c:3e43 with SMTP id ox12-20020a170907100c00b00973ca9c3e43mr2831473ejb.45.1688188882858; Fri, 30 Jun 2023 22:21:22 -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 t14-20020a1709063e4e00b0098d25cbb899sm8784221eji.41.2023.06.30.22.21.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:21:22 -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 v6 14/15] RISC-V: Add support for the Zvksc ISA extension Date: Sat, 1 Jul 2023 07:21:03 +0200 Message-ID: <20230701052104.4018352-15-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230701052104.4018352-1-christoph.muellner@vrull.eu> References: <20230701052104.4018352-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?1770194842594040973?= X-GMAIL-MSGID: =?utf-8?q?1770194842594040973?= 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 95b3ab3c2c7..d6c8e046e3e 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 Sat Jul 1 05:21:04 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: 114964 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10843619vqr; Fri, 30 Jun 2023 22:31:29 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4TirS+T8sT0I3aKDJW0nber7FY+Y6lGgsaKh5wa9l5aup3LDhLHvr6tW/ncaazhQHIkaO0 X-Received: by 2002:a05:6402:3481:b0:51d:a5c6:37c1 with SMTP id v1-20020a056402348100b0051da5c637c1mr11514061edc.1.1688189489687; Fri, 30 Jun 2023 22:31:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688189489; cv=none; d=google.com; s=arc-20160816; b=s30s3QfIGE7UVf0MaiFqCv3t0IAf8o+f8FvsXD2I+RxXbBPFmFFMMw0kDMlG+dz/9U 4zg5rVwC+kq4C8WZ4e9PFP6mSoKtJGx3ZEnc1EOaOpqcAYyC7uEJ41BiTWorUHVl4020 XCwX4qz4wbHRoqKW5zI5xl4HnI5U9f6oft8VRV9j4gaJfUQ4ANKQqGKOXxaYPIJFi+jz Rymhy+hdC/XbyFWNw1RcqqcYL2Nxro6/dS0HxDNKLq7SWpY0QTXheXeqvma2hNiDTtQx RW9iqu6EQFUCcsxOfle9hZFh049XZTFo68NCisSKgH6IeqgVdr4vtNL8F1RzE3P4Mgox vOYw== 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=MqG4mygBZ2eLjwf86YyeIDtLjvFbmLT+oaO4/jyq/XO39OTJPlHHAsW9fL4Pv+NreM v4M7p/LdPbiqi6FX4yr6eGtJh+PEn86p/xBvtHtlcf6VJsMT8xffUIDiRKcexyOc0TtO fV2L8ITtd/cR42bIx58LldM8lW6dWA0fJBfdeItQJYvHCEOioX0zdKkPv6lFw1JdV9EP oz/OWSQ6IxTeKSvBYsmu/nbJvcgx9ZpXsfrs3LpyM9JJnAdG7E5wnmCWFx9MI3Q4jIej vjBfpVaKA0HXrjOHga79JzrIy8zrwQL1MyQZJahbwmLOxMAxDU6CnvLkjSiopZvAxzXs V41g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vrull.eu header.s=google header.b=PBP+d6I5; 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 c7-20020aa7d607000000b0051df215a297si1536441edr.641.2023.06.30.22.31.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:31:29 -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=PBP+d6I5; 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 BD30E3955630 for ; Sat, 1 Jul 2023 05:24:10 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [IPv6:2a00:1450:4864:20::636]) by sourceware.org (Postfix) with ESMTPS id 688E83858D33 for ; Sat, 1 Jul 2023 05:21:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 688E83858D33 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-ej1-x636.google.com with SMTP id a640c23a62f3a-98e39784a85so457259266b.1 for ; Fri, 30 Jun 2023 22:21:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1688188884; x=1690780884; 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=PBP+d6I59g5z1K0lfI4BYgsmqjl3/2Q3X44ZPlHS0Zu3KkLqVJ9UXQVjQSCT45YMQ2 k16fYb+bZhj9mEMmXECQNBdUC4x+ySAvQwMm5JUk/72D+ktYs3v6OcYTztrj6d3hI37F ATz04/GRbUaSft8tH65sO86d/Q2AKdZOdk9wckGUAQ7Py6HNR/k788FHMDuE3hooFlwn VnCvpyqP6Ed6Wdvy6LW0QqLyg0ujnKu6pJ0+B2ark/mmBVAGkf/1klDoRx/oVHGpj1id xIPXZrvsDFjvhKJGKjatGwNGbKVJ1cCmy7m9T1RSBbONKbO/tllayk4AlFEb168nyZsg pp7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688188884; x=1690780884; 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=gPBtYQWfANy7MGjSQG5YQxZhzD74e0G+o9u9jBpdJMYfPuey57YKmogb/3uVMKIPfC C+r+QybOu5r0cD86lH/SLu2/sW2WGK2z/KAGY9htfKyGKwOLPqGn/dTO9zKAlIhyZHmp jbg6eDQawkSCaVRmmN/E0AGb14LhclmNfB0/K8qtwjF9EkTkyR1czn5rXBmV9wDZcgBs WNxgIgBW8CgTRL1u4K0Vs/Zi9EmNRkIS3F6SzwZYKyzKTTTPyPkobZ63YW3Ezca7cLqG JeMr7nTJjVxXSvcvEjzItvMYgrLQX9Ks3cLpPJFXRj8qLUEfVYb7tw1E4iZEpgAWVjhb ln6Q== X-Gm-Message-State: ABy/qLYQv5Wp17K65RYz/IyFnyKe7obqt8C9aQ5s/b0OBA2flYSnIeDm 1qJ/nXHAuskA8pPaKrSJD1C8M67Itnh3PVlovKo= X-Received: by 2002:a17:906:1c91:b0:992:1005:928d with SMTP id g17-20020a1709061c9100b009921005928dmr4586631ejh.8.1688188883851; Fri, 30 Jun 2023 22:21:23 -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 t14-20020a1709063e4e00b0098d25cbb899sm8784221eji.41.2023.06.30.22.21.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 22:21:23 -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 v6 15/15] binutils: NEWS: Announce new RISC-V vector crypto extensions Date: Sat, 1 Jul 2023 07:21:04 +0200 Message-ID: <20230701052104.4018352-16-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230701052104.4018352-1-christoph.muellner@vrull.eu> References: <20230701052104.4018352-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?1770194982431323402?= X-GMAIL-MSGID: =?utf-8?q?1770194982431323402?= 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