| Message ID | 20240730193703.965760-1-mary.bennett682@gmail.com |
|---|---|
| Headers |
Return-Path: <binutils-bounces~patchwork=sourceware.org@sourceware.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id BB7C3385B82F for <patchwork@sourceware.org>; Tue, 30 Jul 2024 19:38:01 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com [IPv6:2a00:1450:4864:20::32d]) by sourceware.org (Postfix) with ESMTPS id 8D1A63858C56 for <binutils@sourceware.org>; Tue, 30 Jul 2024 19:37:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8D1A63858C56 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8D1A63858C56 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::32d ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1722368242; cv=none; b=wJrrRDjEEcBCZ0MimjrnbWlNLAXNlays8TJ2x5A/F8hqD6u6ijjuMIdUmcBVIj1mnrZa3ZokvKiC9bIzzH0giqdXtXZgbzhSiiFno95f2JiudLATAuxr7esylEt5WQX6fBZD9QGOgsQDD+9VMQSmPtdXwCRban27fkjE46olxkc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1722368242; c=relaxed/simple; bh=LewaqBuAVCDJGl8PYoNL+SHl+q+vuLxgn8qTNT/5o7M=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=PoDTsltyyv5RTCNink0l1vfhv3lLPV39G0F5YN847um2mCEAT3+rirjtiV0AFSYWk3Nl8YaBSkZpnDVprj30XDJSHX6URnvIaf+edZKPiRvxCUwkpl6h8zYNyEf+9eiFfZF+Cr94qXlaiE6rEtbZLu6hijo5NQLWpReMJdu3Ve0= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-4281f00e70cso19203775e9.1 for <binutils@sourceware.org>; Tue, 30 Jul 2024 12:37:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1722368238; x=1722973038; darn=sourceware.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=V6rhTDh9Pkmus/1U2Q4WcxLnyhwn4NKFtAog26oF4cY=; b=b1+ESaYK45xe+0KSWjJH7t3SFnazNY0B+qvO8kT2JzBT5mp+Wr3zj2jdpLQJhdiVaK rfRnJiKfDXWfPrFHYUou3lT1leBic2BA8NgQJgd9C1j3ydpwGy9qw66yrcb18ORXE9Gv jDxgNlUnO4cP+Gw/ROwFWGEMrwBem65fGIfiV9sKKu7ZMJAWH7f6gVqhvhxPggl+Gk1G TBRh147W/2CEYnI0uEGLRYQhX2Tm+uTWnueuZznwI9A1w9hTcCbqIsxdOEs4di7ozL1r wy8RXT17AR0nRVboUXL7cTs1qoGDF9sZPFfUMuF8lDvBhdrtwJryUcgUk5uqIV4awL9M VeCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722368238; x=1722973038; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=V6rhTDh9Pkmus/1U2Q4WcxLnyhwn4NKFtAog26oF4cY=; b=W7T3IhB49+0P4F57FhWMbIpLZ1YqLRdOvb19D06lLdSCPC2AuMYQPvs3aGh9Cv+8do FV/jMXH+fxz5C0xCVKfZ6ybls7g6BuxqvHeQ/DDaeZCDdEiAnLR3Pjs9SHO2LxObsEMV GATt07Gz1HTh72ChSSirhmBhfzqaIPuTDeEVghd8TUr9DCZHG8Gf45gOjS2u1i5xYUX4 NlK90/scQV/hOgAWFlwRJVFvrhGWlid96VlnSSNvvr2JhS4t+roa4ntF++I/poQ4Zhy5 fstNcP4JKrnI7DivbulUpDlzPXApkWR7Ix1+3HyjDQCZ1tIEJzOP43eu5o8zquuZZrpV ficg== X-Gm-Message-State: AOJu0YzpO/RBnvMwbQRH7INg05wECnqStzn5G+Nq63hFjsQ4B5rzPa0W mbM5v7zxTqQbnOHGxFA3iITCSDHHSwlSiU71Cgnh85HulgcPenqa4lhbsQ== X-Google-Smtp-Source: AGHT+IE4dz22kwkwCtSkLbHwddpH4MorIfixcTwcYEd2UGSq9MIbSRy8CWKqbLHOKcXfPBWkbm+RCQ== X-Received: by 2002:a5d:42d0:0:b0:35f:1dce:8671 with SMTP id ffacd0b85a97d-36b5cefce2amr7367869f8f.25.1722368237479; Tue, 30 Jul 2024 12:37:17 -0700 (PDT) Received: from xenta.home ([2a00:23c8:8d94:b601:e5e3:1a02:ebcb:e25f]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-36b367c02casm15411705f8f.15.2024.07.30.12.37.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Jul 2024 12:37:17 -0700 (PDT) From: Mary Bennett <mary.bennett682@gmail.com> To: binutils@sourceware.org Cc: mary.bennett682@gmail.com Subject: [PATCH 0/1] RISC-V: Support CORE-V XCVBITMANIP extension Date: Tue, 30 Jul 2024 20:37:02 +0100 Message-ID: <20240730193703.965760-1-mary.bennett682@gmail.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list <binutils.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/binutils>, <mailto:binutils-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/binutils/> List-Post: <mailto:binutils@sourceware.org> List-Help: <mailto:binutils-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/binutils>, <mailto:binutils-request@sourceware.org?subject=subscribe> Errors-To: binutils-bounces~patchwork=sourceware.org@sourceware.org |
| Series |
RISC-V: Support CORE-V XCVBITMANIP extension
|
|
Message
Mary Bennett
July 30, 2024, 7:37 p.m. UTC
This patch series presents the comprehensive implementation of the BITMANIP extension for CORE-V. Tested with riscv-gnu-toolchain on binutils, ld, gas and gcc testsuites to ensure its correctness and compatibility with the existing codebase. However, your input, reviews, and suggestions are invaluable in making this extension even more robust. The CORE-V instructions are described in the specification [1] and work can be found in the OpenHW group's Github repository [2]. [1] docs.openhwgroup.org/projects/cv32e40p-user-manual/en/latest/instruction_set_extensions.html [2] github.com/openhwgroup/corev-binutils-gdb Contributors: Mary Bennett <mary.bennett682@gmail.com> Nandni Jamnadas <nandni.jamnadas@embecosm.com> Pietra Ferreira <pietra.ferreira@embecosm.com> Charlie Keaney Jessica Mills Craig Blackmore <craig.blackmore@embecosm.com> Simon Cook <simon.cook@embecosm.com> Jeremy Bennett <jeremy.bennett@embecosm.com> Helene Chelin <helene.chelin@embecosm.com> RISC-V: Add support for XCVbitmanip extension in CV32E40P bfd/elfxx-riscv.c | 25 ++++++++------ gas/config/tc-riscv.c | 26 +++++++++++++++ gas/doc/c-riscv.texi | 17 ++++++---- .../gas/riscv/cv-bitmanip-bclr-fail.d | 3 ++ .../gas/riscv/cv-bitmanip-bclr-fail.l | 7 ++++ .../gas/riscv/cv-bitmanip-bclr-fail.s | 9 +++++ .../gas/riscv/cv-bitmanip-bclr-pass.d | 19 +++++++++++ .../gas/riscv/cv-bitmanip-bclr-pass.s | 11 +++++++ .../gas/riscv/cv-bitmanip-bclrr-fail.d | 3 ++ .../gas/riscv/cv-bitmanip-bclrr-fail.l | 3 ++ .../gas/riscv/cv-bitmanip-bclrr-fail.s | 4 +++ .../gas/riscv/cv-bitmanip-bclrr-pass.d | 16 +++++++++ .../gas/riscv/cv-bitmanip-bclrr-pass.s | 8 +++++ .../gas/riscv/cv-bitmanip-bitrev-fail.d | 3 ++ .../gas/riscv/cv-bitmanip-bitrev-fail.l | 7 ++++ .../gas/riscv/cv-bitmanip-bitrev-fail.s | 9 +++++ .../gas/riscv/cv-bitmanip-bitrev-pass.d | 18 ++++++++++ .../gas/riscv/cv-bitmanip-bitrev-pass.s | 11 +++++++ .../gas/riscv/cv-bitmanip-bset-fail.d | 3 ++ .../gas/riscv/cv-bitmanip-bset-fail.l | 7 ++++ .../gas/riscv/cv-bitmanip-bset-fail.s | 9 +++++ .../gas/riscv/cv-bitmanip-bset-pass.d | 19 +++++++++++ .../gas/riscv/cv-bitmanip-bset-pass.s | 11 +++++++ .../gas/riscv/cv-bitmanip-bsetr-fail.d | 3 ++ .../gas/riscv/cv-bitmanip-bsetr-fail.l | 3 ++ .../gas/riscv/cv-bitmanip-bsetr-fail.s | 4 +++ .../gas/riscv/cv-bitmanip-bsetr-pass.d | 16 +++++++++ .../gas/riscv/cv-bitmanip-bsetr-pass.s | 8 +++++ .../gas/riscv/cv-bitmanip-clb-fail.d | 3 ++ .../gas/riscv/cv-bitmanip-clb-fail.l | 3 ++ .../gas/riscv/cv-bitmanip-clb-fail.s | 4 +++ .../gas/riscv/cv-bitmanip-clb-pass.d | 16 +++++++++ .../gas/riscv/cv-bitmanip-clb-pass.s | 8 +++++ .../gas/riscv/cv-bitmanip-cnt-fail.d | 3 ++ .../gas/riscv/cv-bitmanip-cnt-fail.l | 3 ++ .../gas/riscv/cv-bitmanip-cnt-fail.s | 4 +++ .../gas/riscv/cv-bitmanip-cnt-pass.d | 16 +++++++++ .../gas/riscv/cv-bitmanip-cnt-pass.s | 8 +++++ .../gas/riscv/cv-bitmanip-extract-fail.d | 3 ++ .../gas/riscv/cv-bitmanip-extract-fail.l | 7 ++++ .../gas/riscv/cv-bitmanip-extract-fail.s | 9 +++++ .../gas/riscv/cv-bitmanip-extract-pass.d | 19 +++++++++++ .../gas/riscv/cv-bitmanip-extract-pass.s | 11 +++++++ .../gas/riscv/cv-bitmanip-extractr-fail.d | 3 ++ .../gas/riscv/cv-bitmanip-extractr-fail.l | 3 ++ .../gas/riscv/cv-bitmanip-extractr-fail.s | 4 +++ .../gas/riscv/cv-bitmanip-extractr-pass.d | 16 +++++++++ .../gas/riscv/cv-bitmanip-extractr-pass.s | 8 +++++ .../gas/riscv/cv-bitmanip-extractu-fail.d | 3 ++ .../gas/riscv/cv-bitmanip-extractu-fail.l | 7 ++++ .../gas/riscv/cv-bitmanip-extractu-fail.s | 9 +++++ .../gas/riscv/cv-bitmanip-extractu-pass.d | 19 +++++++++++ .../gas/riscv/cv-bitmanip-extractu-pass.s | 11 +++++++ .../gas/riscv/cv-bitmanip-extractur-fail.d | 3 ++ .../gas/riscv/cv-bitmanip-extractur-fail.l | 3 ++ .../gas/riscv/cv-bitmanip-extractur-fail.s | 4 +++ .../gas/riscv/cv-bitmanip-extractur-pass.d | 16 +++++++++ .../gas/riscv/cv-bitmanip-extractur-pass.s | 8 +++++ .../gas/riscv/cv-bitmanip-ff1-fail.d | 3 ++ .../gas/riscv/cv-bitmanip-ff1-fail.l | 3 ++ .../gas/riscv/cv-bitmanip-ff1-fail.s | 4 +++ .../gas/riscv/cv-bitmanip-ff1-pass.d | 16 +++++++++ .../gas/riscv/cv-bitmanip-ff1-pass.s | 8 +++++ .../gas/riscv/cv-bitmanip-fl1-fail.d | 3 ++ .../gas/riscv/cv-bitmanip-fl1-fail.l | 3 ++ .../gas/riscv/cv-bitmanip-fl1-fail.s | 4 +++ .../gas/riscv/cv-bitmanip-fl1-pass.d | 16 +++++++++ .../gas/riscv/cv-bitmanip-fl1-pass.s | 8 +++++ .../gas/riscv/cv-bitmanip-insert-fail.d | 3 ++ .../gas/riscv/cv-bitmanip-insert-fail.l | 7 ++++ .../gas/riscv/cv-bitmanip-insert-fail.s | 9 +++++ .../gas/riscv/cv-bitmanip-insert-pass.d | 19 +++++++++++ .../gas/riscv/cv-bitmanip-insert-pass.s | 11 +++++++ .../gas/riscv/cv-bitmanip-insertr-fail.d | 3 ++ .../gas/riscv/cv-bitmanip-insertr-fail.l | 3 ++ .../gas/riscv/cv-bitmanip-insertr-fail.s | 4 +++ .../gas/riscv/cv-bitmanip-insertr-pass.d | 16 +++++++++ .../gas/riscv/cv-bitmanip-insertr-pass.s | 8 +++++ .../gas/riscv/cv-bitmanip-march-xcvbitmanip.d | 26 +++++++++++++++ .../gas/riscv/cv-bitmanip-march-xcvbitmanip.s | 17 ++++++++++ .../gas/riscv/cv-bitmanip-ror-fail.d | 3 ++ .../gas/riscv/cv-bitmanip-ror-fail.l | 3 ++ .../gas/riscv/cv-bitmanip-ror-fail.s | 4 +++ .../gas/riscv/cv-bitmanip-ror-pass.d | 16 +++++++++ .../gas/riscv/cv-bitmanip-ror-pass.s | 8 +++++ gas/testsuite/gas/riscv/march-help.l | 5 +-- include/opcode/riscv-opc.h | 33 +++++++++++++++++++ include/opcode/riscv.h | 13 ++++++-- opcodes/riscv-dis.c | 8 +++++ opcodes/riscv-opc.c | 19 +++++++++++ 90 files changed, 802 insertions(+), 20 deletions(-) create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bclr-fail.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bclr-fail.l create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bclr-fail.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bclr-pass.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bclr-pass.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bclrr-fail.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bclrr-fail.l create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bclrr-fail.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bclrr-pass.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bclrr-pass.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bitrev-fail.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bitrev-fail.l create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bitrev-fail.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bitrev-pass.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bitrev-pass.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bset-fail.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bset-fail.l create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bset-fail.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bset-pass.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bset-pass.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bsetr-fail.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bsetr-fail.l create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bsetr-fail.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bsetr-pass.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-bsetr-pass.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-clb-fail.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-clb-fail.l create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-clb-fail.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-clb-pass.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-clb-pass.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-cnt-fail.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-cnt-fail.l create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-cnt-fail.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-cnt-pass.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-cnt-pass.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extract-fail.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extract-fail.l create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extract-fail.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extract-pass.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extract-pass.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extractr-fail.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extractr-fail.l create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extractr-fail.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extractr-pass.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extractr-pass.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extractu-fail.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extractu-fail.l create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extractu-fail.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extractu-pass.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extractu-pass.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extractur-fail.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extractur-fail.l create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extractur-fail.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extractur-pass.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-extractur-pass.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-ff1-fail.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-ff1-fail.l create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-ff1-fail.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-ff1-pass.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-ff1-pass.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-fl1-fail.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-fl1-fail.l create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-fl1-fail.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-fl1-pass.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-fl1-pass.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-insert-fail.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-insert-fail.l create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-insert-fail.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-insert-pass.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-insert-pass.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-insertr-fail.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-insertr-fail.l create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-insertr-fail.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-insertr-pass.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-insertr-pass.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-march-xcvbitmanip.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-march-xcvbitmanip.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-ror-fail.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-ror-fail.l create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-ror-fail.s create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-ror-pass.d create mode 100644 gas/testsuite/gas/riscv/cv-bitmanip-ror-pass.s