From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-sender-0.a4lg.com (mail-sender.a4lg.com [153.120.152.154]) by sourceware.org (Postfix) with ESMTPS id 35DF73856967 for ; Mon, 21 Aug 2023 07:27:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 35DF73856967 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=irq.a4lg.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=irq.a4lg.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by mail-sender-0.a4lg.com (Postfix) with ESMTPSA id B753D300089; Mon, 21 Aug 2023 07:27:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irq.a4lg.com; s=2017s01; t=1692602843; bh=DI1TOb7/pKotTpu4FhJQGYogsJsFgJ4Y/4w2Q7dnL0A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Mime-Version:Content-Transfer-Encoding; b=U9w7DZIae/yOF1ZGx0Tza9kLeg2JoCG+dQgLfilHr/hhAdBtNjwe10Nonw4rgYNHE 79Ji1rhbhzoi5VFDSZcAC7YN1il1Agrbqfz7MxcRUyKo0h6e7ax+gSGTpBTaHHvy8e cfs9xNYy1/5KiPbmyHUpTcf/EPEtXuADsQ0qMnfc= From: Tsukasa OI To: Tsukasa OI , Palmer Dabbelt , Andrew Waterman , Jim Wilson , Nelson Chu , Kito Cheng Cc: binutils@sourceware.org Subject: [PATCH 0/2] RISC-V: Add support for indirect CSR access extensions Date: Mon, 21 Aug 2023 07:27:04 +0000 Message-ID: In-Reply-To: References: Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-6.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,KAM_MANYTO,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hello, REVIEW ONLY v1: Because the specification got stable and is approved, I once again submit this patch set (pretty much *unchanged* from the previous one except the commit message and the version number per the latest specification status). This patch set implements two extensions ('Smcsrind' and 'Sscsrind') in the Indirect CSR Access Architecture Extension specification: Note that RISC-V AIA and this Indirect CSR Access specifications don't have any strict superset or subset relations. Instead, Indirect CSR Access is based on a subset of RISC-V AIA but with some extensions and intentionally designed *not* to have dependencies to AIA. To implement those extensions (PATCH 2), new CSR handling mechanism will be required because those CSRs are shared with RISC-V AIA ('Smaia' / 'Ssaia'). 1. miselect 2. mireg 3. siselect 4. sireg 5. vsiselect 6. vsireg Complex CSR handling preparation as in PATCH 1 enables separating the "extension" variable (shared for error message) and actual checking. It enables checking like (A && B) and (A || B). In the PATCH 2, the author used this mechanism to check (Smaia || Smcsrind) and (Ssaia || Sscsrind). This approach should work until a kind of combinatorial explosion happens. Thanks, Tsukasa Tsukasa OI (2): RISC-V: Add complex CSR error handling RISC-V: Add indirect CSR Access Extensions and its CSRs bfd/elfxx-riscv.c | 4 + gas/config/tc-riscv.c | 38 ++++++- gas/testsuite/gas/riscv/csr-dw-regnums.d | 15 +++ gas/testsuite/gas/riscv/csr-dw-regnums.s | 17 ++++ gas/testsuite/gas/riscv/csr-version-1p10.d | 30 ++++++ gas/testsuite/gas/riscv/csr-version-1p10.l | 104 +++++++++++++++++--- gas/testsuite/gas/riscv/csr-version-1p11.d | 30 ++++++ gas/testsuite/gas/riscv/csr-version-1p11.l | 104 +++++++++++++++++--- gas/testsuite/gas/riscv/csr-version-1p12.d | 30 ++++++ gas/testsuite/gas/riscv/csr-version-1p12.l | 104 +++++++++++++++++--- gas/testsuite/gas/riscv/csr-version-1p9p1.d | 30 ++++++ gas/testsuite/gas/riscv/csr-version-1p9p1.l | 104 +++++++++++++++++--- gas/testsuite/gas/riscv/csr.s | 19 ++++ include/opcode/riscv-opc.h | 46 +++++++-- 14 files changed, 619 insertions(+), 56 deletions(-) base-commit: 29c0e7512493aa6cdd713024909c352964fe1b1a -- 2.41.0