From patchwork Thu Jun 29 17:18:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Nathan Huckleberry X-Patchwork-Id: 114368 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp9791619vqr; Thu, 29 Jun 2023 10:18:55 -0700 (PDT) X-Google-Smtp-Source: APBJJlGloKg4hrehamNSP4JRmd2pwObQKuveAO+Huw7jjvrmTEJ5mw0mrG3pBWVT089me+S1li/y X-Received: by 2002:a17:906:86ca:b0:989:3148:e9a with SMTP id j10-20020a17090686ca00b0098931480e9amr86240ejy.41.1688059135655; Thu, 29 Jun 2023 10:18:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688059135; cv=none; d=google.com; s=arc-20160816; b=jcZh36hLAJTexPZTsrZt16FAkOn7dPozi1D8ydkcnHsQ+xHHlcIhPqy6WM/3xJxLBT H/y23K/f7SDNaS0/05wvwwm3EwC/S+bHupKQRpmn8XFFC20WYz1Wkm7qDdVSOGCBycss olMiYs10J2HKNzuJd/5HOQpipXzH+QY0oqqjkTcT1CFwA4YlEkzQdOXACLOkwMAEZkBE WOnHgxt6HKMxQAhUQKa12xKcBZtKMlD9CdEIJvpN0BimGvptyG9x4yg1d0eSL2PrRDCx /Qzq78hofolOUDmPnov3Rxk1Pz2I+Fns7/JPQC00wOgNUpqcrdLbMaYuOagqhps5P42c olZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:cc:to:subject:message-id:references :mime-version:in-reply-to:date:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=yONXKhbsmXyOkRmuvd7Xh3Rg2q3YU7uo08E7kDbZ8cI=; fh=TVWdLkMIb3BOmDQeKNjqWmaivN0P6xlUv4j+lHvlz6E=; b=iRU5VMkVTE/gVFfr8uLkGgtknyzw7P0GA9Tf7O0KtRhg6qxliXr7UhlLYTIh9dzgjp DIjn71AkzuVhZhhR3PimTv6Es5Tb1pqvQz603RIE2mwpNVtTMXyDuVj0UuncoK/7/jOJ RgoQsqJh8t7kDNvPImPLRhl5I1TfYhgXpKxQ+b9I5I8nuZ6PA8RpECxP561TfV77meXH 8SEnm20TJyC2/8MeiRDeoV29xy71yPao/BVS/40Kch+UoT6JCDHKYGVPdnyTyJNfAn5+ 9eX6p+FOWc5urCb1rVbomxZmSU+HSEsNNMzoU78eRSyrGR5XWUK0ESv0f7y6lAz7pcNi 4Pdw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=oa7TTelv; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id s21-20020a170906a19500b0098d5b21121dsi7552454ejy.804.2023.06.29.10.18.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Jun 2023 10:18:55 -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=@sourceware.org header.s=default header.b=oa7TTelv; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 893703858D35 for ; Thu, 29 Jun 2023 17:18:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 893703858D35 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688059133; bh=yONXKhbsmXyOkRmuvd7Xh3Rg2q3YU7uo08E7kDbZ8cI=; h=Date:In-Reply-To:References:Subject:To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=oa7TTelvCpOiFBRUnqUSh23uHTGvK4FvShvjZr4xuTYCyR6zycZcr4aBCRA1iW390 x5FVYaHKRhpGt7yYmj7MIdWt3yGmEAcRTE/HK/QpVMvwA2J3xfJMSvtBG9FX+UD3Cb fHPF9yLuvDwUX+01m5cApk7F8lh5xNn9ODmXRLi8= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-oa1-x4a.google.com (mail-oa1-x4a.google.com [IPv6:2001:4860:4864:20::4a]) by sourceware.org (Postfix) with ESMTPS id D86D03858D37 for ; Thu, 29 Jun 2023 17:18:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D86D03858D37 Received: by mail-oa1-x4a.google.com with SMTP id 586e51a60fabf-1b044bc50b0so1411551fac.3 for ; Thu, 29 Jun 2023 10:18:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688059123; x=1690651123; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=yONXKhbsmXyOkRmuvd7Xh3Rg2q3YU7uo08E7kDbZ8cI=; b=PdPo5mqiaXXllaaMl7IcKQHebLZe0HxiDD+Q+ST05lKkiqyUxliW6+4J11oEgpHH+T qLklvspobVSaOOQtlg8rorf7C36O5aARZowlWb1XoMqohcYQv/YYL2XiLwUdSka2OOaN WrWLEOvXzraTj3fVnKhRpZ6lDZ9w2ZXnr6rE5sMadB9tMHdpmettDwS8HanGW5CLAg+4 6PKkampncZLCTys+Uis3DtK/L9zyHB/8rRsqC5zid9KPPq4VmtE0v3n/+vrLp1DPKLXb nob8sFwezwqmlvZaRKEiy0+jSGblAYVHenvo8kL7k/ripddojN6LNvS3/QrSnjzH+Fjd cdlQ== X-Gm-Message-State: ABy/qLZW1us7BQOlqJL4u0T/Azelpv7l8YDNnbbbfuHx7p8X2fNjvcXx gzEb/lXLltRXNqNXTY0fvrUDxdRTSUn7hMWm3aCO0A/tcchs5vTuiRXH9PMfBOGuLCcuoB3pQZ2 8znLSEc2lEwMVp3m1Pm5SSrAkh0SuGFmp+RSEMaX1D7sG5OBFKK5g7SjRTkpb X-Received: from nhuck.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:39cc]) (user=nhuck job=sendgmr) by 2002:a05:6871:458f:b0:1b0:1d65:8bf1 with SMTP id nl15-20020a056871458f00b001b01d658bf1mr535520oab.0.1688059123245; Thu, 29 Jun 2023 10:18:43 -0700 (PDT) Date: Thu, 29 Jun 2023 10:18:26 -0700 In-Reply-To: <20230629171839.573187-1-nhuck@google.com> Mime-Version: 1.0 References: <20230629171839.573187-1-nhuck@google.com> X-Mailer: git-send-email 2.41.0.255.g8b1d071c50-goog Message-ID: <20230629171839.573187-2-nhuck@google.com> Subject: [PATCH 01/14] Add support for the Zvbb ISA extension. To: binutils@sourceware.org Cc: nhuck@pmull.org, " =?utf-8?q?Christoph_M=C3=BCllner?= " , Nathan Huckleberry X-Spam-Status: No, score=-18.8 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SCC_5_SHORT_WORD_LINES, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL 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: , X-Patchwork-Original-From: Nathan Huckleberry via Binutils From: Nathan Huckleberry Reply-To: Nathan Huckleberry 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?1770058296289725317?= X-GMAIL-MSGID: =?utf-8?q?1770058296289725317?= 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] Signed-off-by: Christoph Müllner [Updated to newest version of RISC-V spec] Signed-off-by: Nathan Huckleberry --- 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 7f453246449..8342b4fb3cc 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1259,6 +1259,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 }, @@ -2411,6 +2412,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: @@ -2571,6 +2574,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 fceb53e54a6..3adf5966175 100644 --- a/gas/config/tc-riscv.c +++ b/gas/config/tc-riscv.c @@ -1326,6 +1326,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. */ @@ -3042,6 +3043,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 91e56c03191..cde8c341b6b 100644 --- a/include/opcode/riscv-opc.h +++ b/include/opcode/riscv-opc.h @@ -2055,6 +2055,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 @@ -3123,6 +3156,23 @@ DECLARE_INSN(cbo_zero, MATCH_CBO_ZERO, MASK_CBO_ZERO); /* 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 e86a1bd0824..296fbe2640c 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)) @@ -405,6 +409,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 108baeb32ef..92d3197c639 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 1c3d9b0903e..763d42db4d0 100644 --- a/opcodes/riscv-opc.c +++ b/opcodes/riscv-opc.c @@ -1815,6 +1815,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 Thu Jun 29 17:18:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nathan Huckleberry X-Patchwork-Id: 114371 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp9792976vqr; Thu, 29 Jun 2023 10:21:16 -0700 (PDT) X-Google-Smtp-Source: APBJJlHaHHqCjme47/PMfysMD02sRn/+VNvbW/zKAtQo/2jWl8YaR46yPgRieqzG7XjoMMYqBGcK X-Received: by 2002:a17:906:74d2:b0:991:eb77:74e with SMTP id z18-20020a17090674d200b00991eb77074emr74980ejl.76.1688059276303; Thu, 29 Jun 2023 10:21:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688059276; cv=none; d=google.com; s=arc-20160816; b=N082x0UeLAcqdAYTJvhX1xNh6rP2sEh/2S+5KPfPZ/77ju8j2SnyjXJYWNNgJ4N2lP KbT2hoV0uvC9p4CXtLVZdAmrxG6/Hd78btCaarXAA5N6E6CMJYAkZegNnw6HmCvXR+u9 QPzFQ5GTXUnJpjzTuVY9ec+oQQFwQBW9uFIokY7H9z+j3dtP+VaYqS1Ofns+I+Mk/4rk LrKxIz+LgKH11ui7dYvlWXj/b8gcGDGcq9ewgKm1PZULDYrAF98/rPROJByLxbF2nF49 R+1ijEwk86Z/QG8UZhlNwxPS3272mcJ8bGGghkjni2r29Bv98DXQkR+Iy2LKAodDnnL6 5K/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:cc:to:subject :message-id:references:mime-version:in-reply-to:date:dmarc-filter :delivered-to:dkim-signature:dkim-filter; bh=Y44I93U3uQhmFATPIx8QdCU3zWVa2GXdrDa4KirpBr8=; fh=UAQ7TJWJ6TlMgg8W5zyiu6mYFbaY4TYaXWSfeZlVf34=; b=07HsvK3is5F2Va8kY62mlTo9to/SESfvCMGI2ywdTH0IWZu5weFGfsVYrBd0J6Dka0 Az0E4bNRZ+G3pYoDpeqQRnJqnpMFx/bb2UF62MdwK6GSg+nIFhoSwI0xqfqflotdHF3e Qbb6Y0VMhclbDkpgo5+SYfjJ4wFRSy2PlmIP3joYeBPf34mAU2JE5mMnwOpx2EPlFkby 9cBfcAd7snqAcq5xaRsWrlD4DYVcVRVrrq3euTuMqSpM/hiS7Qli2HlnR+ybyA9bNuOW ibNwpKEc4UHrr40YwguCgsKZD0h2/aYdBFHuxXlxozNp/0lATDUvkAnK2uZBlAHSHmXl mw0w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=ylytM19M; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id u14-20020a170906780e00b00991f96678cesi4404830ejm.615.2023.06.29.10.21.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Jun 2023 10:21:16 -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=@sourceware.org header.s=default header.b=ylytM19M; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id F2FE63858408 for ; Thu, 29 Jun 2023 17:19:54 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org F2FE63858408 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688059195; bh=Y44I93U3uQhmFATPIx8QdCU3zWVa2GXdrDa4KirpBr8=; h=Date:In-Reply-To:References:Subject:To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=ylytM19MCZDIFLSvXWmVoMAeJDs3Rqc07hOjw0y1iip7IvE45Um7ALFMzLtGpU3r2 6dBOBeZMwn9ABBFUCm1GmqpAUHrzHm88PN7bUjDdfNzzfCJwV8XG5r3i5VWDGovNFE c7doTr7SrTjHy1gE9miQB09/qqvLHVMTVh0InLd8= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) by sourceware.org (Postfix) with ESMTPS id 728CA3858C2D for ; Thu, 29 Jun 2023 17:18:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 728CA3858C2D Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-56942667393so7121037b3.2 for ; Thu, 29 Jun 2023 10:18:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688059126; x=1690651126; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Y44I93U3uQhmFATPIx8QdCU3zWVa2GXdrDa4KirpBr8=; b=CHkYtqL0HWx5t/mC80VigSxOrBDdGrHp006Hz0uxtKXh7/OGWkP+3Y7uK/IbGQL0Kk vfrVVkCgncgjI8DKP9CJtlkwNMqIIx0RaL4EoKpZeZ2Fht57jEDX//tElcNdCS0jXBnN p5sYWo20q2/UXuyJGfI4pFujiUzcmfrBcNIEsUGbRF0oTvzGyMA6IXJIllWj+igRusae 1sp2zE/wgzCqM/yYmU7nXsA2zUEPErpLNw8vwRpkpS1278Bs+KMI6BKyARktEjSHX46c cVhGM3qnHI05BEtIvuM0cuqwBth0b+KGlHqodmRbHhiQYUZy+POPSfoWqEjUQlYWIDfh iKRA== X-Gm-Message-State: ABy/qLYEEm65N49sRRbFd0dJIJrDPshPRz9oU/vcP4+a/cH9+AUqOMIY /O7ed6XXXg/Q3YxW6ETJh+4VMwn3P3x+D1hpYLoXxEUa2muxnCNMQ48BmgxDpF/HOryyxKgwPVe p6I8X7A8uBM9hNuX1IVtJ8X8L8qP8ZG62wp10SPefp+IFW+ys2wN7MeV07QzK X-Received: from nhuck.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:39cc]) (user=nhuck job=sendgmr) by 2002:a81:c646:0:b0:576:f3ee:4e67 with SMTP id q6-20020a81c646000000b00576f3ee4e67mr28ywj.8.1688059125235; Thu, 29 Jun 2023 10:18:45 -0700 (PDT) Date: Thu, 29 Jun 2023 10:18:27 -0700 In-Reply-To: <20230629171839.573187-1-nhuck@google.com> Mime-Version: 1.0 References: <20230629171839.573187-1-nhuck@google.com> X-Mailer: git-send-email 2.41.0.255.g8b1d071c50-goog Message-ID: <20230629171839.573187-3-nhuck@google.com> Subject: [PATCH 02/14] Add support for the Zvbc ISA extension. To: binutils@sourceware.org Cc: nhuck@pmull.org, Nathan Huckleberry X-Spam-Status: No, score=-20.0 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL 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: , X-Patchwork-Original-From: Nathan Huckleberry via Binutils From: Nathan Huckleberry Reply-To: Nathan Huckleberry 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?1770058443461870427?= X-GMAIL-MSGID: =?utf-8?q?1770058443461870427?= Zvbc is part of the crypto vector extensions. This extension adds the following instructions: - vclmul.[vv,vx] - vclmulh.[vv,vx] Signed-off-by: Nathan Huckleberry --- 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 8342b4fb3cc..a56b2b840b6 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1260,6 +1260,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 }, @@ -2414,6 +2415,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: @@ -2576,6 +2579,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 cde8c341b6b..e1f2966499a 100644 --- a/include/opcode/riscv-opc.h +++ b/include/opcode/riscv-opc.h @@ -2088,6 +2088,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 @@ -3173,6 +3182,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 296fbe2640c..0f00bc2e6fb 100644 --- a/include/opcode/riscv.h +++ b/include/opcode/riscv.h @@ -410,6 +410,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 763d42db4d0..79a5e2c694a 100644 --- a/opcodes/riscv-opc.c +++ b/opcodes/riscv-opc.c @@ -1833,6 +1833,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 Thu Jun 29 17:18:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Nathan Huckleberry X-Patchwork-Id: 114374 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp9794261vqr; Thu, 29 Jun 2023 10:23:38 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7OJImtq2e1lSkRIdDJcasGInzOJxMkkrBL4IyFtJzwgmwG2rR/JBTbOKiqgJqHPYHSFMVd X-Received: by 2002:a17:906:25c3:b0:992:be80:ab04 with SMTP id n3-20020a17090625c300b00992be80ab04mr53946ejb.69.1688059417968; Thu, 29 Jun 2023 10:23:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688059417; cv=none; d=google.com; s=arc-20160816; b=O8UB9pbkyZiT1hdRw6FdgyCKHwAE3yY8CSJ34WSEPkmqEfRBLj7rMK9guTvav3qWFZ 33FF6fKkrxYIQTh1OLIM+wbebvXj8faU39evGD9i44cGMcE4f4TM+mOGzmNOlhvecSoS sE4xF5kmG2bRSJ/fdh91JeZrIsZZ6C0P/QV45YoK5fVCRrmmDxLQUyMDUqxlZ3KSJeic GWy24Bth+q7Xv8cZ7Ip9lgdojSlaYiMSD5ZTTnIzWjG7jI82Ocda4W6FHWLlnfBUl5/I qY6xoh0ljG5WQTAHIcv0plw++ciQIBRmM6aPtWT6Xdzw95tIrNIxR6tbsPS/4jUEvKZb 0Nnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:cc:to:subject:message-id:references :mime-version:in-reply-to:date:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=JoOJFbPgte8iTq6t62aORQfj4I7CkYnnmkIxA41lqKc=; fh=TVWdLkMIb3BOmDQeKNjqWmaivN0P6xlUv4j+lHvlz6E=; b=PFcQw6j22poDtzTctQT7CTjxui0ucA2O4MhFKxZU2IvYFMHgOxueJqceeydZ0kVRrS XpXf0IIJjSFZwLi19uEEbJRpV/I+AGflkdRrdkeretIb1b8mWTGuF54JY6jCKRzWLqIC llQnX4PBWSYybLZX9m8rtg8Cd1xAC0E/t7qyKhkhQM+XO41y/Uuzz4w2DJN+4wxEZYV8 kTeGImzxhjcII39WPQbGRRD1I6DLZjA8UL411hCbmx+GWNtxJQGGPeFG4lpEPPmpd2b/ u8uY/HV80MXzzgf2W6vQ9LLLvAmCWB5U1W01p8/LXarhDQpPy3L8qYphACelLExIHd6c uM4w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=btcw5bHT; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id bx14-20020a170906a1ce00b009889baa6a24si7070384ejb.1032.2023.06.29.10.23.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Jun 2023 10:23:37 -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=@sourceware.org header.s=default header.b=btcw5bHT; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 982BB3882665 for ; Thu, 29 Jun 2023 17:20:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 982BB3882665 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688059255; bh=JoOJFbPgte8iTq6t62aORQfj4I7CkYnnmkIxA41lqKc=; h=Date:In-Reply-To:References:Subject:To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=btcw5bHTAL9qaY3jPCxxi+JAKExY8prJ0LxVYvls/0S/VZaP0lTlC6ND0Mhv3NucS +dKq+meafCWFnYKh2MWO8S7mI1AVCV9MI7zKKflyc8aDRLyPTtlZbsPuEyMqPbk8pX wz6plIJ5AOsmr82TYPy8AkRkjSm6ktPDHPCLlOCk= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by sourceware.org (Postfix) with ESMTPS id 49C033858C33 for ; Thu, 29 Jun 2023 17:18:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 49C033858C33 Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-bd69ee0edacso679654276.3 for ; Thu, 29 Jun 2023 10:18:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688059127; x=1690651127; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=JoOJFbPgte8iTq6t62aORQfj4I7CkYnnmkIxA41lqKc=; b=EM5Hos8rVsLjAtFr/WeFdvjU4AfQdbcKev0xh4NmQ7VOrehQYybeQ0s9uAbObM7IDu W6/mSJ/9A6NMyrbScYlseguszfkcpzRrEenXcPf0kYMK2dZXO8qjXn2Klo/vmgjZ87rY Y0WHTnTbBbTy29mkLs7FbC3yVy7Y9lqOb4ugmszJJESqxKAX5RCNvZXAJfLO58tt0MFK rzsPbIhlbwMiaBFklXkb/pREdxoZjbZR7goxPXl+EuTJPRzDELAdqKid9ctmfo62Qew4 bjuuhrw1Or+NTWIyDBuxr/vScwMaQAYB3z20hJbPP06cyaEA8tfVGOmDjX3ez0NoRcNa zGZw== X-Gm-Message-State: ABy/qLZILq/ikK1rJMDMjNj+52wEEztf0L6Pcxv3M0csa1oUlnrwT0bS IUPuhkPgsoRGQMHpgsDcYD5VMcJqMAhJw+u5HrHCLKeD5pkVM/5/NM9Em4A2KaaZITmdZBBfR53 lBAQWv8BwcsJswjmDC+DRRxe8AMtBo6ohtX2t7oLfEg8U/UOu73NcHcGNV2bX X-Received: from nhuck.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:39cc]) (user=nhuck job=sendgmr) by 2002:a25:c944:0:b0:be4:7214:7aef with SMTP id z65-20020a25c944000000b00be472147aefmr3349ybf.10.1688059127670; Thu, 29 Jun 2023 10:18:47 -0700 (PDT) Date: Thu, 29 Jun 2023 10:18:28 -0700 In-Reply-To: <20230629171839.573187-1-nhuck@google.com> Mime-Version: 1.0 References: <20230629171839.573187-1-nhuck@google.com> X-Mailer: git-send-email 2.41.0.255.g8b1d071c50-goog Message-ID: <20230629171839.573187-4-nhuck@google.com> Subject: [PATCH 03/14] Add support for the Zvkg ISA extension. To: binutils@sourceware.org Cc: nhuck@pmull.org, " =?utf-8?q?Christoph_M=C3=BCllner?= " , Nathan Huckleberry X-Spam-Status: No, score=-20.5 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL 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: , X-Patchwork-Original-From: Nathan Huckleberry via Binutils From: Nathan Huckleberry Reply-To: Nathan Huckleberry 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?1770058592016387492?= X-GMAIL-MSGID: =?utf-8?q?1770058592016387492?= From: Christoph Müllner Zvkg is part of the vector crypto extensions. This extension adds the following instructions: - vghsh.vv - vgmul.vv Signed-off-by: Christoph Müllner [Updated to newest version of RISC-V spec] Signed-off-by: Nathan Huckleberry --- 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 a56b2b840b6..b51d4f4438f 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1261,6 +1261,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 }, @@ -2417,6 +2418,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: @@ -2581,6 +2584,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 e1f2966499a..9bc75fd0e59 100644 --- a/include/opcode/riscv-opc.h +++ b/include/opcode/riscv-opc.h @@ -2097,6 +2097,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 @@ -3187,6 +3192,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 0f00bc2e6fb..ae13dc17022 100644 --- a/include/opcode/riscv.h +++ b/include/opcode/riscv.h @@ -411,6 +411,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 79a5e2c694a..09c8444ee74 100644 --- a/opcodes/riscv-opc.c +++ b/opcodes/riscv-opc.c @@ -1839,6 +1839,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 Thu Jun 29 17:18:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Nathan Huckleberry X-Patchwork-Id: 114369 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp9791904vqr; Thu, 29 Jun 2023 10:19:28 -0700 (PDT) X-Google-Smtp-Source: APBJJlHKSrKKdtVacRbo58kmmROy3rQHxqRBoZIztk1CZenbXcTgmBdnq/2Q1AD0RFk2ePJhSeRO X-Received: by 2002:aa7:d3cc:0:b0:51d:d19c:298a with SMTP id o12-20020aa7d3cc000000b0051dd19c298amr765778edr.2.1688059167762; Thu, 29 Jun 2023 10:19:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688059167; cv=none; d=google.com; s=arc-20160816; b=vJjPMhxTyCeRNBxrVXolFmq8Kd/agBJoq3bcFP5FkrGL6zS77BFEHg8N96VTIQHLov /IBLoQX3BFcXmDvBlHWALfJlBNDlEdLhLxHLbupvA/yCQzHrCEupApGaHwlR1E0Wy7/J 0B4dk4N0Bhh67m8kYaIaqGixTMVIZh1KJ0keRoprwb81pVIgojkzaq57osGCNGlfKXdR bNafMkHK57BLDU4SVSYg6UjInHSavJV5HBBin2WXsV9PU1pufxDP+QA3mGQvbFJAzW8m clCZu3JovJ3PNHs1DgtSpk0cJ4fuikvbPEQXe/BO+04703WgY53QPXfaCq738rf+rFlc zvog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:cc:to:subject:message-id:references :mime-version:in-reply-to:date:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=OirzkJeHnH7C44+hF8yCgYhlLE30eQ+S3fRwVw/fOPQ=; fh=TVWdLkMIb3BOmDQeKNjqWmaivN0P6xlUv4j+lHvlz6E=; b=fTcUX/NaaPYCh3WginBJEljlyKs74pQHaP5AnxAbE+w4aWTIY8jVLmpvMhZpPgugyF cY11TnFt42W5tA0pRQBGvXIqtwjVGSbwbTbc82wTRnR9+SyrmvF2VKWyLSo4eQLRQieO Ct+knpIFyfXKTJ6P4HFmZMBxp+CnvV5ZICR9HzZgMTrxpwiQAQA3DYszUbtVDZh5JjCX E5vEXzczwOqAeg9vYmjNgV006UQp9t/yk+WLccrWXqvL3iVdK1ktMM6OqhNZAp1QIv8A OxfmWxQKXE+ZaR1UlFTrD9KmrxlKAsWEq1/NxMz2ENnghNhnjKG5iPRpqRDjNd3C0vCb 1ggQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=nuaRam68; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id u20-20020a056402065400b0051be56bd65csi6384718edx.584.2023.06.29.10.19.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Jun 2023 10:19:27 -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=@sourceware.org header.s=default header.b=nuaRam68; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id BA5E23857803 for ; Thu, 29 Jun 2023 17:19:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BA5E23857803 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688059154; bh=OirzkJeHnH7C44+hF8yCgYhlLE30eQ+S3fRwVw/fOPQ=; h=Date:In-Reply-To:References:Subject:To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=nuaRam68eqLUYJ7vtGYZrA+k9OerkwPXPo2y9hG8HvnBnANiioR39jnItICOT/lMD 0Xd4OdAe4sSQn4hYo3U/27Gx+MHDs87bVrfSRSwTb6AQEEF6zo6ygF6W6tlE0HquBU HO9Q2fs8b0bUbSd2SusHg7ZIRmk5tiCxM+WWiM0E= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) by sourceware.org (Postfix) with ESMTPS id 3DBC4385841A for ; Thu, 29 Jun 2023 17:18:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3DBC4385841A Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-565d1b86a64so7219457b3.3 for ; Thu, 29 Jun 2023 10:18:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688059129; x=1690651129; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=OirzkJeHnH7C44+hF8yCgYhlLE30eQ+S3fRwVw/fOPQ=; b=I2MWDP+v6Xqm2jBnrxYEM4mAN6atU5H+ADUUEeoBOcFJnkElaGPQDu+6A1Bw/juO65 2KI/gE6bRA0MctpwySpu5w83VvNgJKrdKGU4aKHxbQ4/UdV/g5jRX0OMQZWcq92LqhE9 gWbgG9r5iAseRRZWxINN+4ogvuk7Kop/pxsMoJ1Mo/UVUZ5WxDugO1/3isFsRcr2L7nd 6hdfRaHl+1ysI85+oEgSIv47gaIR0fyR61DP2lkF0swZs4HNmlhvGBiDb9XIzvQZiNTg uQ1zaSCk4pUW1rtaAIk4Jb1qB/aWr3mUhSdh5nS6wrWSDBVvldNLjP5MTUsac3bsYGrF eDmg== X-Gm-Message-State: ABy/qLbQkiI5d2TGr8GA94xlZfZ3jgK/aCcwN5kYjfOFt1wix8QpJ24u ZdBMaQEmaxzp3jwzMb8RvHnMKOI+7bytZKJaZVkxOI8qC/r6QA7pb0Wj4Wc+i6a+3yojIfQ3wyi VGQvjhp7l4JSuNx0zPbYs7CmuHLLhCz4M5p6yqIs1oNa4dhgyXVenDr5lHCnP X-Received: from nhuck.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:39cc]) (user=nhuck job=sendgmr) by 2002:a81:6d8e:0:b0:56d:3c2b:2471 with SMTP id i136-20020a816d8e000000b0056d3c2b2471mr171ywc.3.1688059129696; Thu, 29 Jun 2023 10:18:49 -0700 (PDT) Date: Thu, 29 Jun 2023 10:18:29 -0700 In-Reply-To: <20230629171839.573187-1-nhuck@google.com> Mime-Version: 1.0 References: <20230629171839.573187-1-nhuck@google.com> X-Mailer: git-send-email 2.41.0.255.g8b1d071c50-goog Message-ID: <20230629171839.573187-5-nhuck@google.com> Subject: [PATCH 04/14] Add support for the Zvkned ISA extension. To: binutils@sourceware.org Cc: nhuck@pmull.org, " =?utf-8?q?Christoph_M=C3=BCllner?= " , Nathan Huckleberry X-Spam-Status: No, score=-20.5 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL 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: , X-Patchwork-Original-From: Nathan Huckleberry via Binutils From: Nathan Huckleberry Reply-To: Nathan Huckleberry 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?1770058329483221569?= X-GMAIL-MSGID: =?utf-8?q?1770058329483221569?= 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 Signed-off-by: Christoph Müllner [Updated to newest version of RISC-V spec] Signed-off-by: Nathan Huckleberry --- 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 b51d4f4438f..cb3420540e9 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[] = {"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 }, @@ -2420,6 +2421,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: @@ -2586,6 +2589,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 9bc75fd0e59..48ba80cda63 100644 --- a/include/opcode/riscv-opc.h +++ b/include/opcode/riscv-opc.h @@ -2102,6 +2102,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 @@ -3195,6 +3218,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 ae13dc17022..e921e1b8a2a 100644 --- a/include/opcode/riscv.h +++ b/include/opcode/riscv.h @@ -412,6 +412,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 09c8444ee74..7e73c1a739d 100644 --- a/opcodes/riscv-opc.c +++ b/opcodes/riscv-opc.c @@ -1843,6 +1843,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 Thu Jun 29 17:18:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Nathan Huckleberry X-Patchwork-Id: 114373 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp9793502vqr; Thu, 29 Jun 2023 10:22:19 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5MYKkXNX/gHYZIMWUnz8DmhjyxbMEYluI8WUh5VZRV0ZcTEdoN+9eo+S+ZSM2LINArwAyO X-Received: by 2002:a05:6402:706:b0:51a:60b2:7fbe with SMTP id w6-20020a056402070600b0051a60b27fbemr21142455edx.32.1688059339341; Thu, 29 Jun 2023 10:22:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688059339; cv=none; d=google.com; s=arc-20160816; b=uOBSxEHgT2D0vNBIaIFCS7sRtGfbJsUFsDQejFGMI/mPfBI331QO1BB3n7lJZxvWT/ 8iYodsaHCuZioL9Namqxq+X5qCCqlKhgTlWaZv9JGNRUrdsMpCyxGNleQJ2ozkOvU2+e r8xBdUaLqSTmvtLiRLsvnL4pU4VNZUTg366qL7XceVDfii9wVoRk00W+tJnmr8BhOiqo m/6ViJfsJC3wwIQncJMUKwvtL+BDgVGwtcK3dIF13pQ230Ro36YbgzuwPowLYdrsES9T 947F4TV5mWpjTnUDTkhu9pIymBMc1LMKnCLC2UP/n265AHyzg26cLQuLE9xpQZiUGw4x cKDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:cc:to:subject:message-id:references :mime-version:in-reply-to:date:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=AIdKWwuTyS5aAcle4JdhFuT3sMrEn41H5UThiyrDHhc=; fh=TVWdLkMIb3BOmDQeKNjqWmaivN0P6xlUv4j+lHvlz6E=; b=NE+I7mcyNkuUqHzcq59u8r4k/BrqXKiTpMORHTaKLYff1urgEe1xMj2fPnUtsBCmwv Sy4wDVaGpF1W8pvaBaWv/5EjTbcZqDOZprxv6Yr0ynfiDLqxgMxo5UioU9zq/V7Mw+sZ j1G6kmLl3jp0NcoUhKLU0gQK0ne6EaWJ5kG3Qs2lVCtqzVIRJps0/EXpU5RsNi+hW6Gm 2gCxQBBk1ToGHu+WUI4KdaLq0cZrxcNCd/h3Yaz8+7xxNRs2EWI53JiQOMl+/Q+oXTT6 yXGowyKfNOOkcvwBhtal+aMvvwlEgGyfeaJtHcx4aOb6R8Wp3gBQUaTKLxDEHyLq8DhE FRQg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=eVsRncdZ; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id d22-20020aa7d696000000b0051dcf5ad3b2si2266688edr.548.2023.06.29.10.22.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Jun 2023 10:22:19 -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=@sourceware.org header.s=default header.b=eVsRncdZ; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A35D73856DD5 for ; Thu, 29 Jun 2023 17:20:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A35D73856DD5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688059217; bh=AIdKWwuTyS5aAcle4JdhFuT3sMrEn41H5UThiyrDHhc=; h=Date:In-Reply-To:References:Subject:To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=eVsRncdZ9y71V8L0faNDTRbW66SrmHLTt6ECk2m4vOTRfAFy33Vr75IlKZy1thjZ5 UnirgHiv2OglKah9byOHyDkyg0VFu5aDzOkoKpaJFlufmwS5RdIh+GzulaYyr1pwnM A3jtzDF2KKY1Q7HFzUJ12KzsdK7o/Xsm7ccd0o3k= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) by sourceware.org (Postfix) with ESMTPS id 296BE3858425 for ; Thu, 29 Jun 2023 17:18:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 296BE3858425 Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-573cacf4804so7608437b3.1 for ; Thu, 29 Jun 2023 10:18:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688059131; x=1690651131; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=AIdKWwuTyS5aAcle4JdhFuT3sMrEn41H5UThiyrDHhc=; b=GiviWMoD6eBcBBhPG4vHbWcwJ46+v8yDLSNcVB6x3hVDkWKPlpb3kOOvznfH8utEfA 8orlPRkS+Jd4lb0AeCCj58lKd1kNn/RMOksZW1n+b3v6mIxoOlGre01/oLh1xp++frX4 ckG0Wc0z6vxIukbeGFura5fAbQnkbrETktAwPhvhQ2+bMeBF4nCvNFyPtgkckaWUES9r sidYHZzmWm6DexhsyT4GB5X9ixgDItLxHZjSRr2F3SgvdXkLj9wA9SoZBbms0BsX/VH2 KY+V1c9+JP3C876N1lN0njngyFvjNDtROwkW+NfnUMaSCdHsa+trRpRGhylX61QoxQkW KRDA== X-Gm-Message-State: ABy/qLZLYvH1h0U2E8YQmipCmUZR4nstluhTuYGtsdpmorwnUjMV+Gsf jJvlzTi1m7ti3L/+pNN84mZLkK9Q+RvOBtWXKb3SZk3nnBBzkf9m1V1FmyuNQ4A5ok0hyIHw9xH DMP4xflqgPeHFqlaRC1JD02tkZEq2owZlzFoR9veiSvFovkGmUdJi3sWWmPu2 X-Received: from nhuck.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:39cc]) (user=nhuck job=sendgmr) by 2002:a81:8d52:0:b0:577:2d24:4217 with SMTP id w18-20020a818d52000000b005772d244217mr158ywj.7.1688059131517; Thu, 29 Jun 2023 10:18:51 -0700 (PDT) Date: Thu, 29 Jun 2023 10:18:30 -0700 In-Reply-To: <20230629171839.573187-1-nhuck@google.com> Mime-Version: 1.0 References: <20230629171839.573187-1-nhuck@google.com> X-Mailer: git-send-email 2.41.0.255.g8b1d071c50-goog Message-ID: <20230629171839.573187-6-nhuck@google.com> Subject: [PATCH 05/14] Add support for the Zvknh[a,b] ISA extensions. To: binutils@sourceware.org Cc: nhuck@pmull.org, " =?utf-8?q?Christoph_M=C3=BCllner?= " , Nathan Huckleberry X-Spam-Status: No, score=-20.6 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL 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: , X-Patchwork-Original-From: Nathan Huckleberry via Binutils From: Nathan Huckleberry Reply-To: Nathan Huckleberry 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?1770058509959682867?= X-GMAIL-MSGID: =?utf-8?q?1770058509959682867?= 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 Signed-off-by: Christoph Müllner [Updated to newest version of RISC-V spec] Signed-off-by: Nathan Huckleberry --- 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 cb3420540e9..adcc606fe7e 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1263,6 +1263,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 }, @@ -2423,6 +2425,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: @@ -2591,6 +2600,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 48ba80cda63..5590dc3b014 100644 --- a/include/opcode/riscv-opc.h +++ b/include/opcode/riscv-opc.h @@ -2125,6 +2125,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 @@ -3230,6 +3237,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 e921e1b8a2a..4ceb191ab07 100644 --- a/include/opcode/riscv.h +++ b/include/opcode/riscv.h @@ -413,6 +413,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 7e73c1a739d..d7d3f1c1cd2 100644 --- a/opcodes/riscv-opc.c +++ b/opcodes/riscv-opc.c @@ -1856,6 +1856,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 Thu Jun 29 17:18:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Nathan Huckleberry X-Patchwork-Id: 114376 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp9794645vqr; Thu, 29 Jun 2023 10:24:25 -0700 (PDT) X-Google-Smtp-Source: APBJJlHOJwU4vK/POfMPhDFXpAKMfDl7jYpUDftVE0j46NWdVVCZ40uQNrMwJI4i8KQRu01Q0EtD X-Received: by 2002:a17:907:20ad:b0:974:6de:8a5e with SMTP id pw13-20020a17090720ad00b0097406de8a5emr92532ejb.40.1688059464743; Thu, 29 Jun 2023 10:24:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688059464; cv=none; d=google.com; s=arc-20160816; b=e7tb709zJb4F8LT88Ijxd8hP68GeM0FLOVC0awpic+/uDpttTW3xfIMa2jut0ADwCe PLKZMFYs5tny6YSoOKwHnhpFyZdCnXewWx507x/SnOF32x9j7laz6A58oBrTkAf/1rCd b9sLgto++NSTmckzLuwBaYg9YP/U5tOfrPo8Jy8xaEydER6PyXW9DPr6RGk6RtyNC1wd AUyw2bXsmzHmQSgjuDRc5/U39vBMR8DvZND6r1YBWDP+h0YDWHgpLAJTPuTYlpwxtO4S Qr7oDdjSgKV4dT0EDJncWPn05MmoEuWIPYf5u59wWyZQTlNPpVugd/7hsOQmf2SzUFXP jL8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:cc:to:subject:message-id:references :mime-version:in-reply-to:date:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=ovJfR2S/IFSjQRn8meJtK0YC11WZ7vnNjFpy98gt2gw=; fh=TVWdLkMIb3BOmDQeKNjqWmaivN0P6xlUv4j+lHvlz6E=; b=BNMoE2Rtizsmth75fEC9ZWe7XSf44rsVK8MEOR7qOYoPFwvhEJ6ZshfT8go9P31FcP vf/MzqoaoR5ZS23bVDnVv16y+giCEY4cUYEfCoT71XLI7VXnpXDP2Z8yWwkzSD71patG oT6A+UGQI+2s6PZNMYTl6XA6qu/kW6jpOMtzPyGWv1JviTnK0s7lvHIr3UQEbnkTfSoE 62dZnndMLYBqTLRtytpvrO9X2rAiDGm9ehne9SqUbWZ7ilJ/6pplsrQufF9pwxRy6X4r UaYT/WeeoRAXsChX8IfBr0lmgqJGpBXfx41G1vWLqm67buXWGoZRvtEvk8g+YjZif/Ur Eyfg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=PgXpV3uR; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id a2-20020a1709065f8200b009746375dc3esi7629672eju.485.2023.06.29.10.24.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Jun 2023 10:24: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=@sourceware.org header.s=default header.b=PgXpV3uR; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 02FFB3884598 for ; Thu, 29 Jun 2023 17:21:19 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 02FFB3884598 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688059279; bh=ovJfR2S/IFSjQRn8meJtK0YC11WZ7vnNjFpy98gt2gw=; h=Date:In-Reply-To:References:Subject:To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=PgXpV3uRU48K0SHdGF9u3JGVdX5jzLxsjXa9+IM4qlgRuPD4l/yq9dY5ERA3pUwB2 lwaZFDOflKWYvta/mP4UD61JubUi2Tnb425IjmEHo0lupgetpvGM1UcTDDCc5xEZKo eoM/oFX9FM+qt7y4mt9lEGBs46lIEUd937KydjwY= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by sourceware.org (Postfix) with ESMTPS id 9F2533858426 for ; Thu, 29 Jun 2023 17:18:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9F2533858426 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-5704991ea05so7594537b3.1 for ; Thu, 29 Jun 2023 10:18:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688059134; x=1690651134; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=ovJfR2S/IFSjQRn8meJtK0YC11WZ7vnNjFpy98gt2gw=; b=Vp6vY4C8c6F/SFltWBuVZ2TNO0MqU9OrazKFkivpoCmRSqtQHrYPR6je7lNhBRLwDb LcnS8WfJz6dSFpHmonw2TBEBc9SGDgfV3/YC2xP4+rxMCqVBlrHohGLuWVdJY3lu3HvG xdJe0x8BsJGxoz69CwU2MY5TU1HxPTPf+XacMaUxi5hWJsx6KeYT5MrntVFy+uIz6RZ6 J5PbcC10hOBbLpRI3P0MkjGLfOHzGqNVc0GUonIPWVffTwEfWohL6KKR1IowbEMJ9sfx dgloDEGyvrc8llIvHx7tum3P9hbqx8TGC4dk9vBjwSv2eaAmiKI6OZ/CQBwWiT2A/UEc qcsw== X-Gm-Message-State: ABy/qLY6An2Ql6pFlXzK1FZEV6Ae0k4OJMiH1KXEb3dhexYO7ivtU2+j VyaG/WCA/OgbnKkEZn+gRyTd6Cwy3Ap3CAlUyFxWbawL3WlgLvWXTMaX3FDzC0ASJlWHchucDWg gQ8ty5vh5fgBgASKcV5nJ/2obDDoLR8EWphTJ35lXpbWe1LW3MJy2os6rkp4M X-Received: from nhuck.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:39cc]) (user=nhuck job=sendgmr) by 2002:a05:690c:703:b0:573:8316:8d04 with SMTP id bs3-20020a05690c070300b0057383168d04mr162ywb.4.1688059134099; Thu, 29 Jun 2023 10:18:54 -0700 (PDT) Date: Thu, 29 Jun 2023 10:18:31 -0700 In-Reply-To: <20230629171839.573187-1-nhuck@google.com> Mime-Version: 1.0 References: <20230629171839.573187-1-nhuck@google.com> X-Mailer: git-send-email 2.41.0.255.g8b1d071c50-goog Message-ID: <20230629171839.573187-7-nhuck@google.com> Subject: [PATCH 06/14] Add support for the Zvksed ISA extension. To: binutils@sourceware.org Cc: nhuck@pmull.org, " =?utf-8?q?Christoph_M=C3=BCllner?= " , Nathan Huckleberry X-Spam-Status: No, score=-20.8 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL 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: , X-Patchwork-Original-From: Nathan Huckleberry via Binutils From: Nathan Huckleberry Reply-To: Nathan Huckleberry 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?1770058641675359808?= X-GMAIL-MSGID: =?utf-8?q?1770058641675359808?= From: Christoph Müllner Zvksed is part of the vector crypto extensions. This extension adds the following instructions: - vsm4k.vi - vsm4r.[vv,vs] Signed-off-by: Christoph Müllner [Updated to newest version of RISC-V spec] Signed-off-by: Nathan Huckleberry --- 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 adcc606fe7e..0ec2552bfb9 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[] = {"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 }, @@ -2432,6 +2433,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: @@ -2604,6 +2607,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 5590dc3b014..415930d0e3e 100644 --- a/include/opcode/riscv-opc.h +++ b/include/opcode/riscv-opc.h @@ -2132,6 +2132,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 @@ -3241,6 +3248,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 4ceb191ab07..df807fe8f79 100644 --- a/include/opcode/riscv.h +++ b/include/opcode/riscv.h @@ -416,6 +416,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 d7d3f1c1cd2..cb164169f92 100644 --- a/opcodes/riscv-opc.c +++ b/opcodes/riscv-opc.c @@ -1861,6 +1861,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 Thu Jun 29 17:18:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Nathan Huckleberry X-Patchwork-Id: 114370 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp9792252vqr; Thu, 29 Jun 2023 10:20:05 -0700 (PDT) X-Google-Smtp-Source: APBJJlGtWPEKMlTHcJRzT4iQRQKLoQ0Ag+DRybL09gjTFmWQwPomC37ZbMi/cEwcRk4azDc8rCJ7 X-Received: by 2002:a05:6512:2344:b0:4fb:96f3:2f4 with SMTP id p4-20020a056512234400b004fb96f302f4mr474051lfu.51.1688059204837; Thu, 29 Jun 2023 10:20:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688059204; cv=none; d=google.com; s=arc-20160816; b=wzAGuZmo0Sv9mQYXIQJAIqfuIV+3BXg5wzk9WkEsRy5BV4ELCZ7GFOPrp06i3QmZLz fVERpG2s38Wc8euM/Xs5BehSRR6+c5TK3hEkqPLB+qhGLu6GeZpusIfG5bAXE8CG6rLo v116KS6vY2Jus/iZiSzzgXmR59dpWtbuuZcbb6GJW/QpZOHPpF8/ylMN6J3d6tc2st7V 7KvUBptJam6l8Xa8RlSV26p+MuBEA4xr5gOfUhLDDY27MnASvDkDmk1iozcA7ElkN5SN gl2EDKesthwitBbvFBAS77GpXeweH6YH8C8JyYdzEJBpQahvLBx4DIYAE85OY8kWWur1 6jcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:cc:to:subject:message-id:references :mime-version:in-reply-to:date:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=KXIjdKjfkQ/yjiNPX40ud1AqNH67L9jA1Bty9nig7jc=; fh=TVWdLkMIb3BOmDQeKNjqWmaivN0P6xlUv4j+lHvlz6E=; b=Whb+9GQwFS0HU9Fo1M2hti21jgvTVR3nCCpYGyOfzEimIf38y7bbFJE6K2HwFZLwGB AqJXvAELUA1s5ESD+VEZY1qTpDl4EExGifKKPdsjrDAe9r0TubXst62auurL8tv9hriw eVZRFilpal946Rk5NIyt37B+A5S2lkBeiPnN616bSTMxQ8b2YlAPaTfh3N0OZLhSjv7w Ddc8phm9ARSIZVRElwJ7D9D+lTp+T+WloadCb3R2/KoVrlp1Eisc5tmGCcfYXll18pqN QAFtAD85sLoH/x1lFhiPhgquJLI4aXiUJV8phgtvk8ayDXLd17ZlCcS1+eqNGQjwgvch 8FBw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=F5oF9NBP; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id k13-20020a05640212cd00b0051ddf60067csi1028638edx.654.2023.06.29.10.20.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Jun 2023 10:20:04 -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=@sourceware.org header.s=default header.b=F5oF9NBP; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7F48E385B532 for ; Thu, 29 Jun 2023 17:19:31 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7F48E385B532 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688059171; bh=KXIjdKjfkQ/yjiNPX40ud1AqNH67L9jA1Bty9nig7jc=; h=Date:In-Reply-To:References:Subject:To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=F5oF9NBPbUreTP12zTarzPeukkK1VMe08Dvf17H4CQgXVCeGg/ppRNzQUThosBPXT mBAwO4yZuAM798quHawaIrJOnglxb0xu5B6zdXZvjglXgUsxlbosT3hvKRYOkXdSmH J0z+1k4EsXz3rszFpm7vDZX4CuKHRnZVGHhFioKA= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by sourceware.org (Postfix) with ESMTPS id 7977A3858017 for ; Thu, 29 Jun 2023 17:18:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7977A3858017 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-577323ba3d5so7729057b3.0 for ; Thu, 29 Jun 2023 10:18:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688059136; x=1690651136; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=KXIjdKjfkQ/yjiNPX40ud1AqNH67L9jA1Bty9nig7jc=; b=QnklYvVUlcIAeP3e8xKNCS/Y0npgAqLpBRPlfwstM2fTK9dZCKfhIVEWYbrZuzLNU8 +4YoF9fF0R9A6MyPiUvsxzBkFmJExlr7jvH72Uv9KC7XTQQGxE1eJtIF3HyRNP1WjWfU 6GIeIqEnsiTH+Ri3Nup6qBlepaqNYBwPW2ZntASem4HVmlJQKpti0Rt0ofzuBqx9CsNY Yx8Lq93scxXi0+32LBIkocDiPVxBSZTF4QEokA0S5qaVQ2njRxLBwLTZukbwBIXqeO4F 6FUtdevoSCDE0GhSPcAykWb63/8bSM2w30HoDJyIjSqCD942nluDqa0OiyW6es+pSx0j 1kfg== X-Gm-Message-State: ABy/qLaAYf9RBV78MPuy0cq/Z5F1wl21tNCS3S5wG8Auv/mP7wBCNyQB QNZ9UnOLqAWTDZtXquFm14U2yK+te2BpfFrm2cUyX5gNtz/888w6ab5qHEuTaCq2a6MGkcWqbYg 5k0KgOgeM8vHJ47k7jerVGDf9zH0ozThYCQIjulrIBUted3QgwUhiQGu9n8/2 X-Received: from nhuck.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:39cc]) (user=nhuck job=sendgmr) by 2002:a0d:d5ca:0:b0:573:54d8:e5be with SMTP id x193-20020a0dd5ca000000b0057354d8e5bemr7726ywd.3.1688059135940; Thu, 29 Jun 2023 10:18:55 -0700 (PDT) Date: Thu, 29 Jun 2023 10:18:32 -0700 In-Reply-To: <20230629171839.573187-1-nhuck@google.com> Mime-Version: 1.0 References: <20230629171839.573187-1-nhuck@google.com> X-Mailer: git-send-email 2.41.0.255.g8b1d071c50-goog Message-ID: <20230629171839.573187-8-nhuck@google.com> Subject: [PATCH 07/14] Adds support for the Zvksh ISA extension. To: binutils@sourceware.org Cc: nhuck@pmull.org, " =?utf-8?q?Christoph_M=C3=BCllner?= " , Nathan Huckleberry X-Spam-Status: No, score=-20.8 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL 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: , X-Patchwork-Original-From: Nathan Huckleberry via Binutils From: Nathan Huckleberry Reply-To: Nathan Huckleberry 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?1770058368829440082?= X-GMAIL-MSGID: =?utf-8?q?1770058368829440082?= From: Christoph Müllner Zvksh is part of the vector crypto extensions. This extension adds the following instructions: - vsm3me.vv - vsm3c.vi Signed-off-by: Christoph Müllner [Updated to newest version of RISC-V spec] Signed-off-by: Nathan Huckleberry --- 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 0ec2552bfb9..77ef99d02cf 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1266,6 +1266,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 }, @@ -2435,6 +2436,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: @@ -2609,6 +2612,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 415930d0e3e..142fa0f2660 100644 --- a/include/opcode/riscv-opc.h +++ b/include/opcode/riscv-opc.h @@ -2139,6 +2139,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 @@ -3252,6 +3257,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 df807fe8f79..338f58b4fae 100644 --- a/include/opcode/riscv.h +++ b/include/opcode/riscv.h @@ -417,6 +417,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 cb164169f92..e3235393e98 100644 --- a/opcodes/riscv-opc.c +++ b/opcodes/riscv-opc.c @@ -1866,6 +1866,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 Thu Jun 29 17:18:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Nathan Huckleberry X-Patchwork-Id: 114377 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp9795250vqr; Thu, 29 Jun 2023 10:25:38 -0700 (PDT) X-Google-Smtp-Source: APBJJlGiGXD11sBoWfrM/0pX7rONinMbA/HxRziKBQQ7o74jtttm4RgLMVhTOv68u2gq5aupFCtx X-Received: by 2002:a17:907:9844:b0:98c:2b5c:429b with SMTP id jj4-20020a170907984400b0098c2b5c429bmr94489ejc.57.1688059538296; Thu, 29 Jun 2023 10:25:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688059538; cv=none; d=google.com; s=arc-20160816; b=y1WnDPNT7he/t2kIrmyQJq9g4SXN28DiCknSs5yE2qQdEK7EaRly+E4MNpcAoSVwU/ poxcEdxFxIvDh8606glsgV+tsLxnci+ZT8VKGm5/OVteq3nZZUtn9jIWo3gtr2DpjCxC WbuHLldQSqpf8Zlbjj1gQKz+JNdDidqKF8yHCfmGp5ikKE4LhQoSqoesj4U+zl8tM1l9 c92SpoZQgdB6xcPPJCTFr91nYwksf7WY2asKWgdFTTCLJEeMLwv5BvVgR37d2eMkEcfg MV0UZf/iaK+1bFVZB4Ps35oIFZQD92hpJ4UuiQYgDpqQE1V5EpKX8jV+G0N++RCMMUOj pVyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:cc:to:subject:message-id:references :mime-version:in-reply-to:date:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=0c2LUfZBHmU7KXqghLD2DzL5hkGzjrASMsFduZMLWcE=; fh=TVWdLkMIb3BOmDQeKNjqWmaivN0P6xlUv4j+lHvlz6E=; b=j0pkkjAl7KFQwDfhIKiX6if+UnetARqi/QUPk722xkyL5NblnPLD0t9pfNlh4zEwis XiB+YopcrGnwU1s5890fGRRmAhhz5G2/imegjFmCkE26KiVlYA7XiIFrt8gFPk88wH+e KeWm8UX1LWLDSNiS1oNCMWgPke6R4DjGbb+iU/M/b7XImkCBpZzY2clx2YKYRH9RGgUj u7xTNBcFRWZwybCeI5SAOJWm1FALOxdjsDAiaZfUq3FVWU8VZzgXDfsnPRCtzNIuLi9m F3Sp5O8/j4QNE7LEaVtIhf+6MGv+jLUSWtUceLoGjdEwcavr48ONt3GSGMERCsKzwo0K zIJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=wlnwKxWl; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id z6-20020a1709060ac600b00992b65ea87csi838105ejf.216.2023.06.29.10.25.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Jun 2023 10:25:38 -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=@sourceware.org header.s=default header.b=wlnwKxWl; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 660B93857705 for ; Thu, 29 Jun 2023 17:21:57 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 660B93857705 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688059317; bh=0c2LUfZBHmU7KXqghLD2DzL5hkGzjrASMsFduZMLWcE=; h=Date:In-Reply-To:References:Subject:To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=wlnwKxWl3T1h3KqFj1I6xxOTfke/e8iI0TGNUnzNXG9aZaz6m/dykot+pcaMd/jvW rR5Yo9xwZZKd8nFa1MIp6G9CqaOVYCuITyc5bCJ4XXAhX/RbD+VeAyD3m6CC6oXJV/ bHQomW6sLkGD3NQKBBIY0COBvxUZ6NhQHD9xxT34= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by sourceware.org (Postfix) with ESMTPS id EB86E3858D35 for ; Thu, 29 Jun 2023 17:18:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EB86E3858D35 Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-c361777c7f7so1446637276.0 for ; Thu, 29 Jun 2023 10:18:58 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688059138; x=1690651138; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=0c2LUfZBHmU7KXqghLD2DzL5hkGzjrASMsFduZMLWcE=; b=CSnCwphcHNNKTmERIhJntbzOZSdfwI3KsOBFrp3PKq4m9AWL8q9Jcr3N1H69Xr1yQe hWx5CDyJmwbQS+MEo2PhLsvS2QPeHyBJ7/pi9fo7foiAkvMELoC1kqzVQdFA6Ps7T4Ns rwzbqWYrR5zsaRennbshrHenhz2Fcjem+k8scl8X/Ql+JjzpQPhkY9fylabXsmxafJiw MGxOIkpB2rTXMlV7mky9MMH1ICy7izKsNhblcpFGuLPPBfloA2NH3i1iI+Kkr3wGpmwc o1TqGEr1Eu+dKYw+m9lWmk7qYcCY2VY8mDwa9MCSkqIgHE+8P+Ik4vNjhtyBkZlRqF+n CZIg== X-Gm-Message-State: ABy/qLa6BZAsFUoT6JwhhdrOeVf213a4DpZ60d7ak0J2B1i10Be7+NnU RmyoNBBKtOyAQ4j65mzZq8CV7gDXVLXafJzfcu+y+Z0hTZYwsqUh/MQy8eA/OBO/s/LnpYSeuGA JbJb6LpcsZXmOtSrUEMaTzbEGGqqiH8tzIBWyubEPBHcud1cndgQYWBf9Aozi X-Received: from nhuck.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:39cc]) (user=nhuck job=sendgmr) by 2002:a25:e795:0:b0:c38:993b:3be5 with SMTP id e143-20020a25e795000000b00c38993b3be5mr8213ybh.0.1688059138291; Thu, 29 Jun 2023 10:18:58 -0700 (PDT) Date: Thu, 29 Jun 2023 10:18:33 -0700 In-Reply-To: <20230629171839.573187-1-nhuck@google.com> Mime-Version: 1.0 References: <20230629171839.573187-1-nhuck@google.com> X-Mailer: git-send-email 2.41.0.255.g8b1d071c50-goog Message-ID: <20230629171839.573187-9-nhuck@google.com> Subject: [PATCH 08/14] Add support for the Zvkn ISA extension. To: binutils@sourceware.org Cc: nhuck@pmull.org, " =?utf-8?q?Christoph_M=C3=BCllner?= " , Nathan Huckleberry X-Spam-Status: No, score=-21.0 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL 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: , X-Patchwork-Original-From: Nathan Huckleberry via Binutils From: Nathan Huckleberry Reply-To: Nathan Huckleberry 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?1770058718314839534?= X-GMAIL-MSGID: =?utf-8?q?1770058718314839534?= 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 Signed-off-by: Christoph Müllner [Updated to newest version of RISC-V spec] Signed-off-by: Nathan Huckleberry --- 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 77ef99d02cf..890e10d1812 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1155,6 +1155,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}, @@ -1262,6 +1266,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 Thu Jun 29 17:18:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nathan Huckleberry X-Patchwork-Id: 114381 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp9796060vqr; Thu, 29 Jun 2023 10:27:09 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5pC9CUgOvzaf/arZEakJp81X6IkiLBLpNwGaEZKFs/ZSdBPEPtxiPnOTpwkJHCtQIyavJZ X-Received: by 2002:aa7:c64d:0:b0:51d:ac8f:74f with SMTP id z13-20020aa7c64d000000b0051dac8f074fmr5981938edr.38.1688059629390; Thu, 29 Jun 2023 10:27:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688059629; cv=none; d=google.com; s=arc-20160816; b=Pk4Bzgw9m7PiPh+LgrnNv9n/zq3UdmBwQxGSf35E2y22T0ZkwtUabkzAFnjyvI9qG7 uSgmQwZOgNN4/hFv4hpq2oWZ94+gr/VnC/bf89zZEdo9MpKSFWLrpvNYDAEH7CrxyzgM uOy6I72zgeYlpV4s2867z2qoeGlS665UM6czcv6NBfdi/QW1GzNyMy8ZWMi12LzSzBRO 0WEtfuUOlc8+7lqnoOmeAbsQCEWLAFzE3fu+KlGfpWMko4wFRMeHdTruXo4+dIbiUHO+ RiSDveLcrLuUQ2XpH8MDAmyA8AP8qE1MGMlPNT446C8uIaJcFabBiplOV26zM7wyjuvq dARA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:cc:to:subject :message-id:references:mime-version:in-reply-to:date:dmarc-filter :delivered-to:dkim-signature:dkim-filter; bh=+NIaKS9rbSsUS865OARCjoyXse7CkbWRYuOrnrUEUPE=; fh=UAQ7TJWJ6TlMgg8W5zyiu6mYFbaY4TYaXWSfeZlVf34=; b=hJTon2Lfrau4ShCscni91KBcjMPVnxtRz0CVDu/nP4z/Q9GF8LRjRs4ENqewqW3Eep sWTehkv4edArj2stIXo7Ga3HpOJe2ENfgUJId9is6hnfeVsDLBCptRBL6TzOk+H6TOrF D6HCMAyj+bgC4M39StLVM1Tlo9qmXzUy3KAVrbH+NEiR+cCJm0VH2Mm+pO7QkSUmjBE3 sG3H+oOVfWMfKZiWZINOasYwIUQwlxawHmH4FqgSI9z0sIcX/PFzjisK91UA0Dwi8luF I82pgiUihq3lojQ0oz0YD0GxTyacRObomosXJnLEHYhPmJhxSnFXq7sQWsIpMAqdViS4 vnQg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=SAHxBZyk; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id s21-20020aa7c555000000b0051de2ee33f7si820148edr.514.2023.06.29.10.27.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Jun 2023 10:27: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=@sourceware.org header.s=default header.b=SAHxBZyk; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0B4B93854801 for ; Thu, 29 Jun 2023 17:22:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0B4B93854801 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688059379; bh=+NIaKS9rbSsUS865OARCjoyXse7CkbWRYuOrnrUEUPE=; h=Date:In-Reply-To:References:Subject:To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=SAHxBZykNkmt2s7Jyu5OsmjG3qu0kblw5Tj1nWoOXCRQrBFhBaD49Lbew0q/qvmBk rs2W2gfzwo6YMCyNLjMQ3tGix+4htt+zQkcbmgjM07MOWoOIrKb4bRkrd1EQ8aMXk/ HkZwM+d0ztlXzzzw+SQq00t8gGl3lBe3C6favSi4= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by sourceware.org (Postfix) with ESMTPS id 05A8D38582BD for ; Thu, 29 Jun 2023 17:19:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 05A8D38582BD Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-bb2a7308f21so731872276.2 for ; Thu, 29 Jun 2023 10:19:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688059140; x=1690651140; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=+NIaKS9rbSsUS865OARCjoyXse7CkbWRYuOrnrUEUPE=; b=iXdyGgsGnWNwAX7B7Ut4J1rUfj0CG1pauXuo4EojX+uviBbrvzo3sTRs8eahkpVRB9 hARJplPtWPCtMEcr9oFVDns++joHDPO7PvMvnOJ+rhiuJdr3P/X5xaF4E4VMoN9KdDue gtXrsK3bV0nCbPw0QGkNh+1bGLeeL/cZTlzMdcbdcDziLvfIkQ8J9cImiRbx+2JV/tqZ ZuzWERC/7f24pjI0Frr4PUcD2GVg7Pbu+IdKWyAPJk51TAScbKMnc5KA8JQuYsYClpAH vBe0EmEDruYTnbtAdLtY3whIIXawwWhPAoihnOkO7E2EEgq3DzYeRlSaxg94UIcC4ONy /50w== X-Gm-Message-State: ABy/qLZSkdb/7zs7eiUuFZ/tfn3fj/Df2EZYGgCaTV7lACVX5smItjsf kinjDTVbC1wscOBv40BgXpnuLiuiVgJw7XcNNOcYIOCPlubLIzV/gv36QqTjeZfhLwsAnpYQR0v /7alD54H4D4iPUSO9kyknvVNiWSPMbT8Ho/lxcth9AlWOv0V2m+o698POZPbs X-Received: from nhuck.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:39cc]) (user=nhuck job=sendgmr) by 2002:a5b:f07:0:b0:c12:8abd:7b1c with SMTP id x7-20020a5b0f07000000b00c128abd7b1cmr3309ybr.11.1688059140420; Thu, 29 Jun 2023 10:19:00 -0700 (PDT) Date: Thu, 29 Jun 2023 10:18:34 -0700 In-Reply-To: <20230629171839.573187-1-nhuck@google.com> Mime-Version: 1.0 References: <20230629171839.573187-1-nhuck@google.com> X-Mailer: git-send-email 2.41.0.255.g8b1d071c50-goog Message-ID: <20230629171839.573187-10-nhuck@google.com> Subject: [PATCH 09/14] Allow nested implications for extensions. To: binutils@sourceware.org Cc: nhuck@pmull.org, Nathan Huckleberry X-Spam-Status: No, score=-21.0 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL 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: , X-Patchwork-Original-From: Nathan Huckleberry via Binutils From: Nathan Huckleberry Reply-To: Nathan Huckleberry 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?1770058814075500390?= X-GMAIL-MSGID: =?utf-8?q?1770058814075500390?= 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. Signed-off-by: Nathan Huckleberry --- bfd/elfxx-riscv.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index 890e10d1812..8bb77db5528 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1870,15 +1870,27 @@ static void riscv_parse_add_implicit_subsets (riscv_parse_subset_t *rps) { struct riscv_implicit_subset *t = riscv_implicit_subsets; - for (; t->subset_name; t++) + bool finished = false; + while (!finished) { + finished = true; + for (; t->subset_name; t++) { riscv_subset_t *subset = NULL; + riscv_subset_t *implicit_subset = NULL; if (riscv_lookup_subset (rps->subset_list, t->subset_name, &subset) - && t->check_func (t->implicit_name, subset)) + && !riscv_lookup_subset (rps->subset_list, t->implicit_name, &implicit_subset) + && t->check_func (t->implicit_name, subset)) { riscv_parse_add_subset (rps, t->implicit_name, RISCV_UNKNOWN_VERSION, RISCV_UNKNOWN_VERSION, true); + + // Restart the loop and pick up any new implications. + finished = false; + t = riscv_implicit_subsets; + break; + } } + } } /* Check extensions conflicts. */ From patchwork Thu Jun 29 17:18:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nathan Huckleberry X-Patchwork-Id: 114382 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp9796569vqr; Thu, 29 Jun 2023 10:28:08 -0700 (PDT) X-Google-Smtp-Source: APBJJlFk4BBNPORn1mZ7p0YROEO7PqTsIspwIZ2XltkNHs/+mujXiH+xFoUhjTmZa0YUt/14R+HH X-Received: by 2002:a17:907:76b3:b0:96a:2acf:61e1 with SMTP id jw19-20020a17090776b300b0096a2acf61e1mr99098ejc.64.1688059688062; Thu, 29 Jun 2023 10:28:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688059688; cv=none; d=google.com; s=arc-20160816; b=0p0r7NdKvo/JHT3SeJZMtFrOIskxInlqRspTAOFNDrk/ziJJSzX19YWEzLuh0l3la2 y0N0MbWPPIeKNZIumj/23oQ17AwFmJnwVtipqIDasrcskeKcNMUUK6SdJvc7UG2dMzpx IhJX9i4biD+hmyZJ72pcIDoKjNYwBG3L3DIX5J+TzausJ35fvr8KBraNj7ZtDVQA27XG mVq0kQ+W8mOGqvidE3REMEb92ijm6IyCjJp2NuvEaesO7TMmFKAJrpJ1gHpEU0Xohw1E HKbg5QBGQ1capaj584T1SQVYmkXA0Cqf4NiUPzulEQzQyL8ScPie204wPvBsAqmD9z2U YrDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:cc:to:subject :message-id:references:mime-version:in-reply-to:date:dmarc-filter :delivered-to:dkim-signature:dkim-filter; bh=Hu2QXldaLvIaImqdkyWj7Z0sWl0BhErPR+EOgYrLCZ8=; fh=UAQ7TJWJ6TlMgg8W5zyiu6mYFbaY4TYaXWSfeZlVf34=; b=tc3O5kNL0RNLYC3e3nlwCeQhVv6TWGtiR7kR2HE+7dMqryVHOR0ImTcO6p2HjU/oOq OdJggTgEGwYg/ymUmG3OrATfEVTLMRhGRWNbuTe2xXenEQ/FODSufrRaQuZhNNswewqW 8JOXYyqy1ZHqynKJurwiAUmpSdYwbxYBbayFx2uPDa1Yg6f+WuXHCJ1YoAsAaOezk1vz 7gHYIpT75XogU9WdAOo6IUj5Ef5aJ8GZS5y7yI7bi0hEfdDIIoBIe7Dlg272xLrxCFKb 0bfgb7mchc511V6qh3GBZpSb5+GCYxFjgdOkGtYbGIa225YNJMrie7hJ+9xkFbsXpme4 F8xw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b="VJw/qGe+"; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id s13-20020a170906354d00b0098e38b3b7e3si6166565eja.793.2023.06.29.10.28.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Jun 2023 10:28: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=@sourceware.org header.s=default header.b="VJw/qGe+"; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 87F173882666 for ; Thu, 29 Jun 2023 17:24:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 87F173882666 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688059446; bh=Hu2QXldaLvIaImqdkyWj7Z0sWl0BhErPR+EOgYrLCZ8=; h=Date:In-Reply-To:References:Subject:To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=VJw/qGe+oFpX0gw+F7sqAdRJSnzxlpvZCVgX5vXpBcigX1yZiy0WRQ2Z+IiB2exoh vHcVsyz0lsCXWIW2tGd1KpetFVvlxy0fX7GKw55QzGzQO8FqoR3QAcqRxA0mbDslVR aEcmy0khTmwcWptTjs9EbtXIUxXaf37jD7CuZLCs= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ot1-x349.google.com (mail-ot1-x349.google.com [IPv6:2607:f8b0:4864:20::349]) by sourceware.org (Postfix) with ESMTPS id 1C7D53858CD1 for ; Thu, 29 Jun 2023 17:19:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1C7D53858CD1 Received: by mail-ot1-x349.google.com with SMTP id 46e09a7af769-6b884781929so1081223a34.1 for ; Thu, 29 Jun 2023 10:19:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688059142; x=1690651142; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Hu2QXldaLvIaImqdkyWj7Z0sWl0BhErPR+EOgYrLCZ8=; b=YYt/2uhHPjz3dks+osJ7AT7+RrdRijOu0KIkQlivbcJyU3jZ5ZqWoFlYyo0QaTnlHy 2bi8xY9rfRxqNGX6SEwdco9WmCpTtIS5B/U+IDXPrkPMMtK5ONT/WkQ+L8rh2g4mSUzV hPACfbusOUfxZjK8vzf8in8txA9fxRk0AEJVYUZUPdqUZBXjRGQfeT0guChtntYFWznC igoe8YUbd8/UutC70ek+fZXTX+64ZykNFBh6F0a2S7I/ICYz6mty2YDb/i5hYterx7oo W6jKsYrukKeDhpXfyLHLD4qB+JCSf0DZogUcayabawVsFxWkF8R1xJvO8nzl27u+eTr4 Q5XA== X-Gm-Message-State: AC+VfDxR5y/bxsfWvbElGuj3bwTb0mCkih2g0L5IH9/WMHlVZMhz0HTu NeqFnakelKaH8aRvzAMQoOrBzbqRGMgIterNm0oRtZpjRY1x4cCLJyjKY4pxh2hKOmsxrP5d5zj wATb1MC4T+/TqyQYcb863HaZBYZx+ExtsPFGrwQnyZRnDNSuaSSWiURF7QRmh X-Received: from nhuck.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:39cc]) (user=nhuck job=sendgmr) by 2002:a9d:6018:0:b0:6b7:528c:d8bf with SMTP id h24-20020a9d6018000000b006b7528cd8bfmr3575924otj.0.1688059142437; Thu, 29 Jun 2023 10:19:02 -0700 (PDT) Date: Thu, 29 Jun 2023 10:18:35 -0700 In-Reply-To: <20230629171839.573187-1-nhuck@google.com> Mime-Version: 1.0 References: <20230629171839.573187-1-nhuck@google.com> X-Mailer: git-send-email 2.41.0.255.g8b1d071c50-goog Message-ID: <20230629171839.573187-11-nhuck@google.com> Subject: [PATCH 10/14] Add support for the Zvkng ISA extension. To: binutils@sourceware.org Cc: nhuck@pmull.org, Nathan Huckleberry X-Spam-Status: No, score=-20.7 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL 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: , X-Patchwork-Original-From: Nathan Huckleberry via Binutils From: Nathan Huckleberry Reply-To: Nathan Huckleberry 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?1770058875458561071?= X-GMAIL-MSGID: =?utf-8?q?1770058875458561071?= Zvkng is part of the vector crypto extensions. Zvkng is shorthand for the following set of extensions: - Zvkn - Zvkg Signed-off-by: Nathan Huckleberry --- 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 8bb77db5528..1540f2748ac 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1159,6 +1159,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}, @@ -1267,6 +1269,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 Thu Jun 29 17:18:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Nathan Huckleberry X-Patchwork-Id: 114372 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp9793469vqr; Thu, 29 Jun 2023 10:22:13 -0700 (PDT) X-Google-Smtp-Source: APBJJlG5sMMyUA09NPXDFR8g7oa3JiuzyMw0rpI/JsZOSArds/+c7kDTOcZLYviV5dMcMhz0dVzn X-Received: by 2002:a17:906:d117:b0:992:b928:adb3 with SMTP id b23-20020a170906d11700b00992b928adb3mr86634ejz.54.1688059333413; Thu, 29 Jun 2023 10:22:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688059333; cv=none; d=google.com; s=arc-20160816; b=lSlLAjgPmefSHv0919NmOpY6y+WxyUyuEH8bkzy3piM/pqRd/rSfAS7V3o1IZILtPO +8OHVKiUwu3/VPyby6cTyMRUr6n9rg3JBrwaOcNEMYdNblBSkmJOA4EM0PmkhssU7oB5 1h13bBpOUF6dbB63osjpoXTU8r7MznGcVW5eaQTN7XwWG1rGffewV+hptVnDfk1BUeyY 81rbhN5b4qMrKQDdOrU8JJMzsbHKtuXq+0lgWA7xtIASrDvdcDnl/sJPYKK7FnQhky// WJOFkgwswUddUhYETd3OPastx/mw8xNDh4/8gdho+xY5W+MIpQWs0oE5SX4tRsfJHcvP Fq1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:cc:to:subject:message-id:references :mime-version:in-reply-to:date:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=OYrlryyd7v7NUsl7uwyDX+3l/N1efAbNzMS8sttmbUo=; fh=TVWdLkMIb3BOmDQeKNjqWmaivN0P6xlUv4j+lHvlz6E=; b=RqhrdBzZihFJFadonIljjvz5rzgAQRh2eslbT6ZcLpm9NVp7ok85M+hHm1nW6Qq/WM 2QODqaDaX3X0nQNu96lUhmhzXpsF1qDKSlzJov+qaJgXWeZIpBGWPRMGpuTR8Uy4sXcH 8iZiF+J1OwH3zj05gcW/Y7Ut3pj6ZyD3uagsCQ9ycnL6eypMTIO83FrxNmCxB/JpyZUs V/m+DHlnQ3IlJXy4+JkcTMly6u5LzIP8N/hDCNn0eeh6s62g4SNwjm7x650pkXmodZNb 2cT6Cm+wpKni68vUSZ7OLjhKc49VzXQNAalz2qi0BgLW3bKJQDeNUFZQbR8TcdhItSJL b48A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=dnSHeIOW; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id x19-20020a170906299300b00988546306cdsi7330226eje.839.2023.06.29.10.22.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Jun 2023 10:22:13 -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=@sourceware.org header.s=default header.b=dnSHeIOW; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 88E3B387688A for ; Thu, 29 Jun 2023 17:20:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 88E3B387688A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688059215; bh=OYrlryyd7v7NUsl7uwyDX+3l/N1efAbNzMS8sttmbUo=; h=Date:In-Reply-To:References:Subject:To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=dnSHeIOWoHXePMMple01FLIZg7vIp/quuvsSmoVPwYY9iKo0ztTGwYNleKRV2Yg46 RqlqG7ToCA2ijHs0xcrponYgui+zglCXYleHEKILw1qVJpThQdu/XXIuJehab3UvCY 9K5XPpoJ/6ivP3VuD7IEsF9Qw10LAk6QB7mYpPcc= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by sourceware.org (Postfix) with ESMTPS id DE0D23858028 for ; Thu, 29 Jun 2023 17:19:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DE0D23858028 Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-be47a3b3a01so720899276.2 for ; Thu, 29 Jun 2023 10:19:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688059144; x=1690651144; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=OYrlryyd7v7NUsl7uwyDX+3l/N1efAbNzMS8sttmbUo=; b=glbMDPFYldo3NZ8Rr/BKNAJFpPklceBjgx2tOSZ5jyVy6avJdsaUXJ5pRqX8TXTd/L uXZ5XViRD8mTj4kWfDs7vuE32EraZJWSJMqeu946ZTgh37lgbO/KMU5eQFWbXYIJMF0D 0bHWzosgeu2cAXRJYVR/UFawjrjJ9zIvJ5vZvufF5j2x0+imXGnHwlHhpzJ1Kn29FsBC x8QEXd4Et7YzdHUtOFKz078Ki3LfpyFZNI6Ct0W7VfMmeZNm54NXYnJ5MDBrOYWWe9hu cgOpu+ZhKbTbTs62zK0kXKg+E9Tz4yHCsKf5d2Uidbrc+zg18GvCk/3fe5E6Xau1+/XY Z6og== X-Gm-Message-State: ABy/qLaEXAF//EUwgvXwC28Yu9vCMk2dmgSJsdsuuyPyySg2SfhjIAcM GvxDdjQxn/1S9iEA+0qU5rJYPB7qVRcM2pUm8luTH02kBkAtHD0lW42Gaf/YKufy58wAbkN9kD8 oqI2jJcVjw8LD3dduTXNW+Bsw8q7exulY7dLXOULVXBz2ymOgn8cQUXCsQbbF X-Received: from nhuck.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:39cc]) (user=nhuck job=sendgmr) by 2002:a05:6902:1742:b0:bb0:f056:cf43 with SMTP id bz2-20020a056902174200b00bb0f056cf43mr3936ybb.1.1688059144404; Thu, 29 Jun 2023 10:19:04 -0700 (PDT) Date: Thu, 29 Jun 2023 10:18:36 -0700 In-Reply-To: <20230629171839.573187-1-nhuck@google.com> Mime-Version: 1.0 References: <20230629171839.573187-1-nhuck@google.com> X-Mailer: git-send-email 2.41.0.255.g8b1d071c50-goog Message-ID: <20230629171839.573187-12-nhuck@google.com> Subject: [PATCH 11/14] Add support for the Zvks ISA extension. To: binutils@sourceware.org Cc: nhuck@pmull.org, " =?utf-8?q?Christoph_M=C3=BCllner?= " , Nathan Huckleberry X-Spam-Status: No, score=-20.7 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SCC_5_SHORT_WORD_LINES, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL 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: , X-Patchwork-Original-From: Nathan Huckleberry via Binutils From: Nathan Huckleberry Reply-To: Nathan Huckleberry 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?1770058503793106229?= X-GMAIL-MSGID: =?utf-8?q?1770058503793106229?= 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 Signed-off-by: Christoph Müllner [Updated to newest version of RISC-V spec] Signed-off-by: Nathan Huckleberry --- 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 1540f2748ac..eba3ef654e9 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1161,6 +1161,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}, @@ -1275,6 +1278,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 Thu Jun 29 17:18:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nathan Huckleberry X-Patchwork-Id: 114375 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp9794610vqr; Thu, 29 Jun 2023 10:24:21 -0700 (PDT) X-Google-Smtp-Source: APBJJlE4k8IEUefVx4FAhhAhHkd0s7F7OIsn9ZsaJ4KTMEzKpHTGxYuzyZF7v+E5+NJOjtVuXcaB X-Received: by 2002:a17:907:11c6:b0:991:bf04:2047 with SMTP id va6-20020a17090711c600b00991bf042047mr128107ejb.14.1688059461101; Thu, 29 Jun 2023 10:24:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688059461; cv=none; d=google.com; s=arc-20160816; b=SZKfkNXRNEdfM39YYMCoZnRWBwii8DO1sLAbD5dFvIBEFPXNLSkSmfqfqptDp0VdwY cIZG4HTHTG+aXMipS2WKyYcylJgkV/3BG6ZGkmTGCJMoerppEguJsTgkllVb1aAHcxoN sPO6lebZ/KuT64C8U1T1tfO5vjXhbW/U+m2Dxu5ICkzimlXaumCIjrcQ7XomwnHN8y0s WTdiDeodjREcn/j8ERSbpyIWjxbsUvitKMqX9q8DLQNRZ4UBDTqfV6tP90BFAOIZKrVI af7xRjIZ/LvJSiiRD+Y7LYJA5BXMWUVCVNOLZV2JUDOIJWjfkt+JytrJwOfHc6Jo1wkj WY6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:cc:to:subject :message-id:references:mime-version:in-reply-to:date:dmarc-filter :delivered-to:dkim-signature:dkim-filter; bh=b0K3jvt7xwMkI9peWsxv5Hx+UzxbdrGbTorSuwQ+lfg=; fh=UAQ7TJWJ6TlMgg8W5zyiu6mYFbaY4TYaXWSfeZlVf34=; b=f4BsYzM1ht1vyjhbQjP1ugvT2Kyls10ya/KCqYcAHdiG9djvn7Ia0glhvnOk4WBcCm 61zhoHVX7MHQmoFB0shfbfwUM7Yi5YZ0sT4eUGKfHvaEDfrGb7ZAZZhmxWC6EwHvo3mo SnSNZvKcmQpX/ZFvFdP8Uj2yvSzz7rvoL3jTwZJWzuHgB41GZJZ1uWBzVbyvThvdADnW LpBw3JWxCfWfGkI561u2sTsvsNk9cneb3F/8SnrWG392Iu6NyfglZTMfIkJO0GbvvUQ/ DKIhL/xWeXTud3z3v0NouDqsIGQl8/0l1bymT0z/DLoZNN8TcrJHRMf4e27cee8v8139 9HJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=OqrhyLqP; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id jz20-20020a170906bb1400b0097394940619si7297330ejb.984.2023.06.29.10.24.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Jun 2023 10:24:21 -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=@sourceware.org header.s=default header.b=OqrhyLqP; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D291A385735D for ; Thu, 29 Jun 2023 17:21:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D291A385735D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688059276; bh=b0K3jvt7xwMkI9peWsxv5Hx+UzxbdrGbTorSuwQ+lfg=; h=Date:In-Reply-To:References:Subject:To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=OqrhyLqPe5jhOx13kcIjbh1N4rU0QjCJa5XwRoTktpIJQJ8dqloWP/3qDR8FxuVbw tQSj9PINCobp4srGhGQ0iJqRwVLCN5i/1aDcZJseQ6R5w+WVHoJNsdhccpgabvQ2Ql /X/qDRBn0dR2w/GwR7TLxl2870nurjHCrk6Q4TqU= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-oi1-x249.google.com (mail-oi1-x249.google.com [IPv6:2607:f8b0:4864:20::249]) by sourceware.org (Postfix) with ESMTPS id 095A0385782B for ; Thu, 29 Jun 2023 17:19:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 095A0385782B Received: by mail-oi1-x249.google.com with SMTP id 5614622812f47-39e9c7227d9so1189248b6e.1 for ; Thu, 29 Jun 2023 10:19:07 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688059146; x=1690651146; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=b0K3jvt7xwMkI9peWsxv5Hx+UzxbdrGbTorSuwQ+lfg=; b=UcbuXwawM59CH2UtafZXcZx7FGyHHbzKWbaqNLdkFtgj3BFtYuitzpT2M4WSbOQyVO 2KtoZB+wtJSC7y4D26T8AAUj6rutXzWe+x2AzcKpVHzYtlFyRHO+mTVD/fX8tU9CguLk pY3oZhBqgGk0kE31EqvRwA1gptdC8cMi14y7Op9L6lckskfIrAWlfa5YW4zUk0YMssaW IG2jqk2DP5Z2r9MfR8K3AQUQ9iqi+Lj4zQbM2iv76SV5YFWnRViE+a6t16XkfM0T421T csd2fxAv9NGqeIuKWTHGVVQFm388pl03D3ZTzZMqTg4e+RwRISObWaXSLNdwRveDxNjj 8Y1w== X-Gm-Message-State: AC+VfDwDLVEIlJiPNnVYBc04414F5Y9RpqxvqB87q0alcmzGpxkmQdCH Z+t3WMkhLpQZSsrRuUi7Vw7N3qjITpg3q+4lG8uRSEkatg4heWy7LPQRXf6pHyqjN3yXpknHnxS Cn03gxNUItoY3IaDwIuInXwSDBuRXEIKeK7BZUrqqNx55ra5HaYJKney+3803 X-Received: from nhuck.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:39cc]) (user=nhuck job=sendgmr) by 2002:aca:bb46:0:b0:39c:cd8e:998f with SMTP id l67-20020acabb46000000b0039ccd8e998fmr68938oif.0.1688059146294; Thu, 29 Jun 2023 10:19:06 -0700 (PDT) Date: Thu, 29 Jun 2023 10:18:37 -0700 In-Reply-To: <20230629171839.573187-1-nhuck@google.com> Mime-Version: 1.0 References: <20230629171839.573187-1-nhuck@google.com> X-Mailer: git-send-email 2.41.0.255.g8b1d071c50-goog Message-ID: <20230629171839.573187-13-nhuck@google.com> Subject: [PATCH 12/14] Add support for the Zvksg ISA extension. To: binutils@sourceware.org Cc: nhuck@pmull.org, Nathan Huckleberry X-Spam-Status: No, score=-20.9 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL 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: , X-Patchwork-Original-From: Nathan Huckleberry via Binutils From: Nathan Huckleberry Reply-To: Nathan Huckleberry 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?1770058637465034638?= X-GMAIL-MSGID: =?utf-8?q?1770058637465034638?= Zvksg is part of the vector crypto extensions. Zvksg is shorthand for the following set of extensions: - Zvks - Zvkg Signed-off-by: Nathan Huckleberry --- 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 eba3ef654e9..a1a60d5d4b4 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1164,6 +1164,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}, @@ -1279,6 +1281,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 Thu Jun 29 17:18:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nathan Huckleberry X-Patchwork-Id: 114378 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp9795588vqr; Thu, 29 Jun 2023 10:26:18 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7bvvrigeqzazGCsNbCnUFF+qEkeSi6q6x7sXDrQoAAkiP/VSMzbRlR4SOG7ls5KDWwKQAA X-Received: by 2002:a17:906:73cc:b0:992:a9ba:b8da with SMTP id n12-20020a17090673cc00b00992a9bab8damr82848ejl.70.1688059578288; Thu, 29 Jun 2023 10:26:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688059578; cv=none; d=google.com; s=arc-20160816; b=bi48so2axxSejh3ukoB/Fe7jSIzqKWTt4+rnk3AtxYRPVbs4cK9U5OyTTld9P1n4pA KvvRkdxSLmlBxo66oUZLzPOIjOuqeREcojaA3u7ZtqzEqXmmC6LuCFPpFaOWYvCYBfxn sI6lF89S0fvo9BMZtNyk6I4i6WsONw2MkWQbUrxXdT6KNE1HqOfDQVuJ/OKmIPzcXp1l QKHX3kBMRXRqmxOu8Ax4P694DtR6hpBZSjvG1mddhbUNFSMkiOswxaFb61fm2dXIqEuw TE/W4FXYkgSPOtYnqAcnqG3nDp2ld4/JUthmxz6WeFAZwCrXnn0sd9KOtMKOa/8EF3ll wE7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:cc:to:subject :message-id:references:mime-version:in-reply-to:date:dmarc-filter :delivered-to:dkim-signature:dkim-filter; bh=cUzPmussk3vgbGZU7RuAGzvkiHB18XfIB6cWWc02994=; fh=UAQ7TJWJ6TlMgg8W5zyiu6mYFbaY4TYaXWSfeZlVf34=; b=XHPRzXulV7pyUCe2K0F6WVV2a7Xohvbpr6Ok7vfFTGKawZIu5Q8YnPYEyBwWUeTG8j GvmgRocV9PObUY4KG3nO0fUPv5KnJqRgLWoqn6VSYeZxGdgC1kxh0Vn16neqWgvqcfyf VyuyDM9m5+AMFPvE6wZdhRdOUpUA71q9qX1gvkF3RBDqNlQd6cSS/VvTskZ4TA213olg xEVXnoqnM9bot8n0NocGXtYRYZdeWrJyoAGdwqUwqwHCWREJ9XfcFvZ1ZJuK9+33sJU/ z+2VcHc/tCzz+47vf6LzrHwS6bdrOzc9gw0pIrxbLewUv/Ma+lQdg3XqDB5fTzpvFEhe z5bQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=i7paEAYB; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id mj21-20020a170906af9500b00992559d2dd0si2967400ejb.874.2023.06.29.10.26.18 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Jun 2023 10:26:18 -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=@sourceware.org header.s=default header.b=i7paEAYB; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C7C593870C3B for ; Thu, 29 Jun 2023 17:22:19 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C7C593870C3B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688059339; bh=cUzPmussk3vgbGZU7RuAGzvkiHB18XfIB6cWWc02994=; h=Date:In-Reply-To:References:Subject:To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=i7paEAYBvff9FIbBBrNWeiuNZr2dvpd87DBxtv6hUA3CjdjLzFGvgQ/JeXd12Thdg QHiNchJzRmFg6gqsUi2miWZtWfPcCEAK76Nklbld8/cGwklBr7rcIqM+sp0G/2rWHY QjC9/VM0Lo7Fqo7jCS+rQpXc8cs4XYTOsmOEGYrc= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by sourceware.org (Postfix) with ESMTPS id D114E3858428 for ; Thu, 29 Jun 2023 17:19:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D114E3858428 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-565ba5667d5so7254457b3.0 for ; Thu, 29 Jun 2023 10:19:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688059148; x=1690651148; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=cUzPmussk3vgbGZU7RuAGzvkiHB18XfIB6cWWc02994=; b=fE2OSF2UiGGEuGRzmBUWbzOc2dFJ7Iy5MeI/JNZEnd9KqLThsEFbczxer1qsHBdAqM njhzadO51HVtkPRBkznfqYw6a4J0MIMW/hqAPQzu2QegSoTw1G9HM77yU0PsR+JEKZGZ Nm+Cz3T+K9/IfLZEKlO3hLVWErmPyVOWCFIr1ogboMQjFE0GCFzrSXNMtNaUbBDZtQE+ VxjJ0T1Dp2wXxy4xdyuGXPsFjHixHmziJtaDwQPpuK4noOMmasOKu9b0t0V9wv3V4u6h ylnOZK4OVeuLlqLjONOJblvh3AtjxMifzBgYOd5cqfYwNVVwA2QT07QDt7IvoT2xbgUe 56OQ== X-Gm-Message-State: ABy/qLbmXJWQ1hdzNUmNQ3MzATXVgc63evUZdX8vJbKdDke4jubWQR++ 3RoYWSnWjq9ctrDNH8lD0CHvsIPy4wXf4qjg4y9W3Vvzd/BXQYtGLc6zgE1DMulElXmjwPtBRCO S6yQMKU0H3+7cwo1IIRxmyoduoERDtm/A410jPK22PTzMw0Cu3Z9KEbYaOfJi X-Received: from nhuck.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:39cc]) (user=nhuck job=sendgmr) by 2002:a25:e80d:0:b0:c3f:14f3:42da with SMTP id k13-20020a25e80d000000b00c3f14f342damr3270ybd.1.1688059148243; Thu, 29 Jun 2023 10:19:08 -0700 (PDT) Date: Thu, 29 Jun 2023 10:18:38 -0700 In-Reply-To: <20230629171839.573187-1-nhuck@google.com> Mime-Version: 1.0 References: <20230629171839.573187-1-nhuck@google.com> X-Mailer: git-send-email 2.41.0.255.g8b1d071c50-goog Message-ID: <20230629171839.573187-14-nhuck@google.com> Subject: [PATCH 13/14] Add support for the Zvknc ISA extension. To: binutils@sourceware.org Cc: nhuck@pmull.org, Nathan Huckleberry X-Spam-Status: No, score=-21.0 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL 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: , X-Patchwork-Original-From: Nathan Huckleberry via Binutils From: Nathan Huckleberry Reply-To: Nathan Huckleberry 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?1770058760150712557?= X-GMAIL-MSGID: =?utf-8?q?1770058760150712557?= Zvknc is part of the vector crypto extensions. Zvknc is shorthand for the following set of extensxions: - Zvkn - Zvbc Signed-off-by: Nathan Huckleberry --- 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 a1a60d5d4b4..e62508af014 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1161,6 +1161,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}, @@ -1275,6 +1277,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 Thu Jun 29 17:18:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nathan Huckleberry X-Patchwork-Id: 114383 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp9796876vqr; Thu, 29 Jun 2023 10:28:48 -0700 (PDT) X-Google-Smtp-Source: APBJJlE6A6XN5c3gkG/iboQ0U4MPbHrt4K/MyCnlTZT6ZAwvUYocmzf9YI9dxMCijbQcUfGo66C7 X-Received: by 2002:a05:6402:3da:b0:51d:dc36:4648 with SMTP id t26-20020a05640203da00b0051ddc364648mr1831062edw.40.1688059727854; Thu, 29 Jun 2023 10:28:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688059727; cv=none; d=google.com; s=arc-20160816; b=vryuzFrMI4dQAFuCmO6JbdAcGcIy5Cxi2TjxWiVMO0SLcPIoTI2lectCYd9d54Z5h5 t0WRT/nwCLkYU8/Oy+ydpYDA59BDe5bdmCAD4QteV+x8E2BBtA0DFj26hhhlJPM5Ws/q FpvRCkDhItsslSttmJxFcUpawKtw0FkWtiRcmQKW6y/+WOvM4y11wzY2XAPckB8/jsdX qNq7NkWK9HpwrsLkJy7kfMNSG4gzaGcEzK/8MdukckUaf5CBimYmnA8Iqyrjebbe00pF pAwiKsMbwIgZ+9zW2m/5e+5hnSPQGISgHIVxJmlzf+am9uWTU2JoT8+IHyHBU2KIz0hn 4Yng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:cc:to:subject :message-id:references:mime-version:in-reply-to:date:dmarc-filter :delivered-to:dkim-signature:dkim-filter; bh=GWLBDo/cRFFDJZnbd2/pobrCgeqLNWZoZknV6ZVrgiM=; fh=UAQ7TJWJ6TlMgg8W5zyiu6mYFbaY4TYaXWSfeZlVf34=; b=MkdHRxcvhaIgYvkLjGRCxf7DMr4JW4kbB31SQ7b+XDw26U/xTgYFT3zKtaOeG+5c8/ pXdid/G1Eo2dKK4BVLLXyQlsoCwsVdkxM2mcn5Q+Ptv1/UuRtETLIo+Z0ibwF0RCbWRB oALpyR3Pl4bJ3JrcnH+wqR9t+A/necR/qAjOqXL9NT2cYcyFDwZvRFTahScGzeP7zuA8 cDu2NPEerwf4qZtgfm4Cqa2FGixbGPRapfhEBtPPSUKfMj/l5U9abQdkxyidQgJyVHRd 5KDXhgDgoZY8BqJlvIxlB5UHMCVXm21R94Z/09/QrAYyfuMBiBWTQw7fvX5CzcT6u5ih MNuA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b="wydJI/s/"; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id k3-20020aa7c383000000b0051de2f5f8d9si731408edq.108.2023.06.29.10.28.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Jun 2023 10:28:47 -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=@sourceware.org header.s=default header.b="wydJI/s/"; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 19FB6386C5B5 for ; Thu, 29 Jun 2023 17:25:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 19FB6386C5B5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688059510; bh=GWLBDo/cRFFDJZnbd2/pobrCgeqLNWZoZknV6ZVrgiM=; h=Date:In-Reply-To:References:Subject:To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=wydJI/s/h4/N6cztju7a6bSbU1xQQtielhQPFb6SPFsDyMlUCfO4ctueBpC6Temwt FnrfOI+T3cnQAM7zpDf75NlOGR7hnlpVMrLV3KIFr7OwysMUBsnuLbtV8n5pK3dKEq FIs+9S1M5ZFe3qkMjMbLphCNHB4kvsC1KKKYollE= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) by sourceware.org (Postfix) with ESMTPS id 9282A3857704 for ; Thu, 29 Jun 2023 17:19:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9282A3857704 Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-5618857518dso7246787b3.2 for ; Thu, 29 Jun 2023 10:19:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688059151; x=1690651151; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=GWLBDo/cRFFDJZnbd2/pobrCgeqLNWZoZknV6ZVrgiM=; b=R/+AucF/cl7mmZv0YJHZ8Lxt3vtXzWX0MTtZjjoLi0mw5ioiI+H8cyONkZKk2yvgUp GiVaL3Y7VjM6kkS8RnIdEO4D/lr+gnpwdU+x4pBS2l0htle3xeKXVy0a38xcxVfoZQbR XrtrXAzOksCgQ98lxFIBWNy0MKkzQRZ2MGMj6JlY5+le1nJUbgwfvh89PDyiHSAO4KJn 7KNW6oVK+KQ/auUkmWVdLAv0+7tF11ruBP30FnO3WtNaBN8z+5nRqyrfgJ4mpnKfqo8p GW08O9KICm4767lXwrJOiAR5Vkztyu5rElomBsJUcFlYrKM4/I1QsQlF9f0pyYRvdGYa ZIvA== X-Gm-Message-State: ABy/qLYsRu3uXkUlPItaln9KBMV+hW/oOahk+i7sNKkR8eaM0cxzHPeV l6EiRjiUaRmwaQVtssJUWt34idRECGU3ar8LoQrKit55rnZynLu39FcZxEbDNxPRtY0ducR+5vF L8IBZ7jLCly6cLxtjrrNGLKvzbyXBEKjbEn3hr7mukvbVHnjzyDvYIlgz18+B X-Received: from nhuck.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:39cc]) (user=nhuck job=sendgmr) by 2002:a81:84c1:0:b0:56c:e0c5:de88 with SMTP id u184-20020a8184c1000000b0056ce0c5de88mr310ywf.1.1688059151059; Thu, 29 Jun 2023 10:19:11 -0700 (PDT) Date: Thu, 29 Jun 2023 10:18:39 -0700 In-Reply-To: <20230629171839.573187-1-nhuck@google.com> Mime-Version: 1.0 References: <20230629171839.573187-1-nhuck@google.com> X-Mailer: git-send-email 2.41.0.255.g8b1d071c50-goog Message-ID: <20230629171839.573187-15-nhuck@google.com> Subject: [PATCH 14/14] Add support for the Zvksc ISA extension. To: binutils@sourceware.org Cc: nhuck@pmull.org, Nathan Huckleberry X-Spam-Status: No, score=-21.0 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL 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: , X-Patchwork-Original-From: Nathan Huckleberry via Binutils From: Nathan Huckleberry Reply-To: Nathan Huckleberry 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?1770058917152415781?= X-GMAIL-MSGID: =?utf-8?q?1770058917152415781?= Zvksc is part of the vector crypto extensions. Zvksc is shorthand for the following set of extensions: - Zvks - Zvbc Signed-off-by: Nathan Huckleberry --- 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 e62508af014..95e079eeceb 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1168,6 +1168,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}, @@ -1285,6 +1287,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