Message ID | 20240208221534.637556-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 14B0E3858427 for <patchwork@sourceware.org>; Thu, 8 Feb 2024 22:17:20 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) by sourceware.org (Postfix) with ESMTPS id 80753385841D for <binutils@sourceware.org>; Thu, 8 Feb 2024 22:15:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 80753385841D 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 80753385841D Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::12a ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1707430546; cv=none; b=CwNIzPBeIUq2v2fGQ15sPENXLO5j9XRwKmDaAWu2Dapcfc22y6Pjt6vuXcV7zcl9yzomJozE5HKuR4nb0aA8kRq1EOfaDHy7/Ul7tWx68t/Xt66uP303SyRmuMT0lAToFs9AH6C8ZSdPPdPQkRHUEZJ/hSm466RogTWQ7CjuEq0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1707430546; c=relaxed/simple; bh=PMZWh9eXKvPdEFMoklGByrOud2j2zSsJx56F4x8xrmM=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=hrtAM+UemHhmZWaHSoZCAlFVxikoThsiB4JRJNbFq+R9oAetiGWRVYlhon5lZ4PnKqPv0hYDhB+3kExt0WkiI1wil5j1jw6LJQbj+LApnJu9JDXFkgL0qn8EE0Ft2vryjV6fOvd6QC2qMvY7te1fs5Lj+eP4DVWDtpXXAmDYuns= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-lf1-x12a.google.com with SMTP id 2adb3069b0e04-511531f03f6so333071e87.0 for <binutils@sourceware.org>; Thu, 08 Feb 2024 14:15:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707430538; x=1708035338; 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=K/5ACDP7gOzstG7RhOVV0tSbF2RrYi914gMcjM0f0JM=; b=dbVU0vvhaObK81xtyWTPOToJdprPVjPSmhsmIGMULcoR6pWDkitWgmmqaN4uwRyAng 5YJ2akHiFR6AyOm5AbTn+mrxVksbdpsVkTPL85IsOcrkYYoq9Z6ofBgeRmfF5ir8FBQO 0d1hKAKm8kejI/WpLjE519kmtYvYUSRO3l99gLVD9IHmAsinUDXDxaOMkN9/kTKqBy1M wPYEhVobFTNXi7mXruIt4rqy1dNIa/o3GUow84oQiHOfeypCT83vkcVsupjuzIne2JP2 eBLYiEDm93uVbFxX2KtYWqbISQj8T/mmJV55B7csVeXLCn7VfMp0nEIEAxfxmaaOsydt 8HHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707430538; x=1708035338; 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=K/5ACDP7gOzstG7RhOVV0tSbF2RrYi914gMcjM0f0JM=; b=ITl0f34PvL/2fK86C4sEDIs86OOH3gHo4E8a+9qqMkk9xHOQa1d7gR9H3ERv1C8EHy e7/UwxbFxZVKqVE+0JK8Tw4VZLoEQS2KjMYErJnUUIsph2L3ef7y6xKHvAVah2Q4zrq/ 0gA7ieSLbcqLO54QTRRHIzxyID/xkrLAgvb6arEzbNVa7xU+r2XU3INFz3fUI+nbkQIG OjteBAI7cJhWKPM+SszKGCz2fn1itaaGz1wgUpyh0kyeLzaCSgdrEB1tX2st6+r4mmjS f5fmUu9zjH+Pu6pFmMTPu+ihQdDfiy9YjB9O9FKrlexFhHxLf5I8fss8wirH1PdpTc2n jHXA== X-Gm-Message-State: AOJu0YxT3RkQlZahRLWOi4kbqNL2FDF6oNBUc6ZyxRo6ovHUHCJh+evb ul7FzJO+pOfgw+2YPswsTrznnp1VjvqiLo5v7U4obYpeSAGtzwpb9p6YQKk3 X-Google-Smtp-Source: AGHT+IEZVyL0JppUjNOtAX6GNQAP5XeALYbiVnHxrroeD43Hf+EL7j8pUTHnQ1DWsVCIZ/Ae+cGJlQ== X-Received: by 2002:a19:e001:0:b0:511:5756:f54d with SMTP id x1-20020a19e001000000b005115756f54dmr305354lfg.60.1707430537940; Thu, 08 Feb 2024 14:15:37 -0800 (PST) Received: from xenta.home ([2a00:23c8:8d8c:9a01:dc95:a472:9f39:f553]) by smtp.gmail.com with ESMTPSA id i19-20020a05600c355300b00410395dc7d1sm611349wmq.7.2024.02.08.14.15.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Feb 2024 14:15:37 -0800 (PST) From: 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: Thu, 8 Feb 2024 22:15:33 +0000 Message-Id: <20240208221534.637556-1-mary.bennett682@gmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.2 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, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.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
Feb. 8, 2024, 10:15 p.m. UTC
Thank you for reviewing this patch. I do not have merge permissions. If all looks good, please merge on my behalf. 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.bennett@embecosm.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 CV32E40Pv2 bfd/elfxx-riscv.c | 5 +++ gas/config/tc-riscv.c | 41 ++++++++++++++++++- gas/doc/c-riscv.texi | 5 +++ .../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 ++++ include/opcode/riscv-opc.h | 33 +++++++++++++++ include/opcode/riscv.h | 9 ++++ opcodes/riscv-dis.c | 15 +++++++ opcodes/riscv-opc.c | 19 +++++++++ 89 files changed, 802 insertions(+), 1 deletion(-) 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