From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi1-x22b.google.com (mail-oi1-x22b.google.com [IPv6:2607:f8b0:4864:20::22b]) by sourceware.org (Postfix) with ESMTPS id 2C6073858422 for ; Thu, 22 Sep 2022 13:55:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2C6073858422 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivosinc.com Received: by mail-oi1-x22b.google.com with SMTP id o184so12403512oif.13 for ; Thu, 22 Sep 2022 06:55:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date; bh=WozOkcAYJU4gyMgssWPUbEMzdy+KbauKs1qoUIlwEbc=; b=tCFC4lDSrsvuzCIcubwGOgRziJkLNBvdMVlveUVDrw0jzewT2ullpNOua2xgA2hcZe NhUPu4fT2Q4NB28wYHsiHJn3C0+5oeGcwtThfo1NYDge3x7wmwDex1wPmuDbuihZwSfV bGQoeXv5eh5YenyfZb+ZG0TdNi5wyEhmTbubA23H1x0GHelZm6mmNmdyDobMUzaeQVNa PPUgsxqqqq1pc4J5V1t6MOj2yDV6ny/FGrADpi80rZg+D91R8Kfwzla53gYyDejrUbd0 ShebmYX8AR5NodZhRGpJpkvpzqhiUxDYnKV6pNRqA+b9NxKEVGQ0r5CnA640vjlavJPX DTJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date; bh=WozOkcAYJU4gyMgssWPUbEMzdy+KbauKs1qoUIlwEbc=; b=HMlqrhRt4FFC2R3CEoKeunxn1ztKpzT2qcJa7R7tkV/OLTLgg8CBhI+c72P4SJtknQ PJSlBU93oGC0dev7FO/WE8xyJ3HBMtuhHrIpK3YoLfFlP//JNQQDnd+ZK+IA5YwqgkhE YkwSnbzHX1VYA0qyPe7rjuPR22tcgFlyxiPBYIFDdyhxs/bfiYLg2bb2vPigBXR8agVk DdWq+AZY0PZI7SLEa1WrQzTjIO5ZqZi0navuqbiO9/Mqmdkq3gPGTyoQD0PJoGFcHga3 KjQeDezyOKrueAoRWON462AWjrtfb1LPXxibK+eFoVYMA5aeOFI2ZaeuozjMmdtlPrAN jq1g== X-Gm-Message-State: ACrzQf0xe9X+AN13aLXF+c4VqWLwuJ6MeCtvk5pBdfVAmtn6UjPoNefm Zb+5IzrYdoGRl2C6kiQX1E+Wan7QSK784ONk3WakTg== X-Google-Smtp-Source: AMsMyM6ThjVpiQp5AQ65EnHO5lEGAI/Mf/RgQFxfWVfkvkPFObkBFFEb9PlgoYnBaH8BA/kYcD3qQMrQbZ5JejPoH0U= X-Received: by 2002:a05:6808:188b:b0:350:b024:73c4 with SMTP id bi11-20020a056808188b00b00350b02473c4mr1665312oib.107.1663854946050; Thu, 22 Sep 2022 06:55:46 -0700 (PDT) MIME-Version: 1.0 References: <20220918072356.2496130-1-christoph.muellner@vrull.eu> In-Reply-To: <20220918072356.2496130-1-christoph.muellner@vrull.eu> From: Nelson Chu Date: Thu, 22 Sep 2022 21:55:35 +0800 Message-ID: Subject: Re: [PATCH v2 00/11] Add support for the T-Head vendor extensions To: Christoph Muellner Cc: binutils@sourceware.org, Kito Cheng , Jim Wilson , Philipp Tomsich , Palmer Dabbelt , Cooper Qu , Lifang Xia , Yunhai Shang , Zhiwei Liu Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,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 List-Id: On Sun, Sep 18, 2022 at 3:24 PM Christoph Muellner wrote: > > From: Christoph M=C3=BCllner > > This series introduces support for the T-Head vendor extensions, > which are implemented e.g. in the XuanTie C906 and XuanTie C910 > processors: > * XTheadBa > * XTheadBb > * XTheadBs > * XTheadCmo > * XTheadCondMov > * XTheadFMemIdx > * XTheadMac > * XTheadMemIdx > * XTheadMemPair > * XTheadSync > > The xthead* extensions are documented here: > https://github.com/T-head-Semi/thead-extension-spec/releases/download/2.0= .0/xthead-2022-09-05-2.0.0.pdf > > The "th." instruction prefix prevents future conflicts with standard > extensions and has been documentented in the RISC-V toolchain conventions= : > https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/19 > > The goal of this patchset is to provide access to these instructions > so that compilers/users can optimize SW accordingly. > > Note, that the T-Head vendor extensions do not contain all > vendor-specific functionality of the T-Head SoCs (e.g. no vendor-specific > CSRs are included). Instead the extensions cover coherent functionality, > that is exposed to S and U mode. > > The patchset attempts to minimize code changes in generic/infrastructure = code. > All patches in this series come with tests to avoid future regressions. > > v2: > * Drop -mcpu=3D support patches > * Add extensions to riscv_multi_subset_supports_ext > * Rename operand 'L' to 'Xl' Thanks for updating these. > Christoph M=C3=BCllner (11): > RISC-V: Add generic support for vendor extensions > RISC-V: Add T-Head CMO vendor extension > RISC-V: Add T-Head SYNC vendor extension > RISC-V: Add support for arbitrary immediate encoding formats > RISC-V: Add T-Head Bitmanip vendor extension > RISC-V: Add T-Head CondMov vendor extension > RISC-V: Add T-Head MAC vendor extension > RISC-V: Add T-Head FMemIdx vendor extension > RISC-V: Add T-Head MemIdx vendor extension > RISC-V: Add support for literal instruction arguments > RISC-V: Add T-Head MemPair vendor extension Looks good to me, I had heard from many people that we need the support of t-head vendor extensions for al long time, so please commit them if you think it's time. Thanks for all your contribution Nelson > bfd/elfxx-riscv.c | 59 +++- > gas/config/tc-riscv.c | 84 +++++ > gas/doc/c-riscv.texi | 63 ++++ > gas/testsuite/gas/riscv/x-thead-ba-fail.d | 3 + > gas/testsuite/gas/riscv/x-thead-ba-fail.l | 3 + > gas/testsuite/gas/riscv/x-thead-ba-fail.s | 3 + > gas/testsuite/gas/riscv/x-thead-ba.d | 13 + > gas/testsuite/gas/riscv/x-thead-ba.s | 6 + > gas/testsuite/gas/riscv/x-thead-bb-fail.d | 3 + > gas/testsuite/gas/riscv/x-thead-bb-fail.l | 7 + > gas/testsuite/gas/riscv/x-thead-bb-fail.s | 7 + > gas/testsuite/gas/riscv/x-thead-bb.d | 30 ++ > gas/testsuite/gas/riscv/x-thead-bb.s | 22 ++ > gas/testsuite/gas/riscv/x-thead-bs-fail.d | 3 + > gas/testsuite/gas/riscv/x-thead-bs-fail.l | 3 + > gas/testsuite/gas/riscv/x-thead-bs-fail.s | 3 + > gas/testsuite/gas/riscv/x-thead-bs.d | 14 + > gas/testsuite/gas/riscv/x-thead-bs.s | 6 + > gas/testsuite/gas/riscv/x-thead-cmo-fail.d | 3 + > gas/testsuite/gas/riscv/x-thead-cmo-fail.l | 22 ++ > gas/testsuite/gas/riscv/x-thead-cmo-fail.s | 22 ++ > gas/testsuite/gas/riscv/x-thead-cmo.d | 30 ++ > gas/testsuite/gas/riscv/x-thead-cmo.s | 22 ++ > gas/testsuite/gas/riscv/x-thead-condmov.d | 11 + > gas/testsuite/gas/riscv/x-thead-condmov.s | 3 + > .../gas/riscv/x-thead-fmemidx-fail.d | 3 + > .../gas/riscv/x-thead-fmemidx-fail.l | 18 + > .../gas/riscv/x-thead-fmemidx-fail.s | 17 + > gas/testsuite/gas/riscv/x-thead-fmemidx.d | 25 ++ > gas/testsuite/gas/riscv/x-thead-fmemidx.s | 17 + > gas/testsuite/gas/riscv/x-thead-mac.d | 15 + > gas/testsuite/gas/riscv/x-thead-mac.s | 7 + > gas/testsuite/gas/riscv/x-thead-memidx-fail.d | 3 + > gas/testsuite/gas/riscv/x-thead-memidx-fail.l | 14 + > gas/testsuite/gas/riscv/x-thead-memidx-fail.s | 14 + > gas/testsuite/gas/riscv/x-thead-memidx.d | 53 +++ > gas/testsuite/gas/riscv/x-thead-memidx.s | 48 +++ > .../gas/riscv/x-thead-mempair-fail.d | 3 + > .../gas/riscv/x-thead-mempair-fail.l | 30 ++ > .../gas/riscv/x-thead-mempair-fail.s | 30 ++ > gas/testsuite/gas/riscv/x-thead-mempair.d | 14 + > gas/testsuite/gas/riscv/x-thead-mempair.s | 6 + > gas/testsuite/gas/riscv/x-thead-sync-fail.d | 3 + > gas/testsuite/gas/riscv/x-thead-sync-fail.l | 6 + > gas/testsuite/gas/riscv/x-thead-sync-fail.s | 6 + > gas/testsuite/gas/riscv/x-thead-sync.d | 14 + > gas/testsuite/gas/riscv/x-thead-sync.s | 6 + > include/opcode/riscv-opc.h | 326 ++++++++++++++++++ > include/opcode/riscv.h | 27 ++ > opcodes/riscv-dis.c | 43 +++ > opcodes/riscv-opc.c | 155 +++++++++ > 51 files changed, 1346 insertions(+), 2 deletions(-) > create mode 100644 gas/testsuite/gas/riscv/x-thead-ba-fail.d > create mode 100644 gas/testsuite/gas/riscv/x-thead-ba-fail.l > create mode 100644 gas/testsuite/gas/riscv/x-thead-ba-fail.s > create mode 100644 gas/testsuite/gas/riscv/x-thead-ba.d > create mode 100644 gas/testsuite/gas/riscv/x-thead-ba.s > create mode 100644 gas/testsuite/gas/riscv/x-thead-bb-fail.d > create mode 100644 gas/testsuite/gas/riscv/x-thead-bb-fail.l > create mode 100644 gas/testsuite/gas/riscv/x-thead-bb-fail.s > create mode 100644 gas/testsuite/gas/riscv/x-thead-bb.d > create mode 100644 gas/testsuite/gas/riscv/x-thead-bb.s > create mode 100644 gas/testsuite/gas/riscv/x-thead-bs-fail.d > create mode 100644 gas/testsuite/gas/riscv/x-thead-bs-fail.l > create mode 100644 gas/testsuite/gas/riscv/x-thead-bs-fail.s > create mode 100644 gas/testsuite/gas/riscv/x-thead-bs.d > create mode 100644 gas/testsuite/gas/riscv/x-thead-bs.s > create mode 100644 gas/testsuite/gas/riscv/x-thead-cmo-fail.d > create mode 100644 gas/testsuite/gas/riscv/x-thead-cmo-fail.l > create mode 100644 gas/testsuite/gas/riscv/x-thead-cmo-fail.s > create mode 100644 gas/testsuite/gas/riscv/x-thead-cmo.d > create mode 100644 gas/testsuite/gas/riscv/x-thead-cmo.s > create mode 100644 gas/testsuite/gas/riscv/x-thead-condmov.d > create mode 100644 gas/testsuite/gas/riscv/x-thead-condmov.s > create mode 100644 gas/testsuite/gas/riscv/x-thead-fmemidx-fail.d > create mode 100644 gas/testsuite/gas/riscv/x-thead-fmemidx-fail.l > create mode 100644 gas/testsuite/gas/riscv/x-thead-fmemidx-fail.s > create mode 100644 gas/testsuite/gas/riscv/x-thead-fmemidx.d > create mode 100644 gas/testsuite/gas/riscv/x-thead-fmemidx.s > create mode 100644 gas/testsuite/gas/riscv/x-thead-mac.d > create mode 100644 gas/testsuite/gas/riscv/x-thead-mac.s > create mode 100644 gas/testsuite/gas/riscv/x-thead-memidx-fail.d > create mode 100644 gas/testsuite/gas/riscv/x-thead-memidx-fail.l > create mode 100644 gas/testsuite/gas/riscv/x-thead-memidx-fail.s > create mode 100644 gas/testsuite/gas/riscv/x-thead-memidx.d > create mode 100644 gas/testsuite/gas/riscv/x-thead-memidx.s > create mode 100644 gas/testsuite/gas/riscv/x-thead-mempair-fail.d > create mode 100644 gas/testsuite/gas/riscv/x-thead-mempair-fail.l > create mode 100644 gas/testsuite/gas/riscv/x-thead-mempair-fail.s > create mode 100644 gas/testsuite/gas/riscv/x-thead-mempair.d > create mode 100644 gas/testsuite/gas/riscv/x-thead-mempair.s > create mode 100644 gas/testsuite/gas/riscv/x-thead-sync-fail.d > create mode 100644 gas/testsuite/gas/riscv/x-thead-sync-fail.l > create mode 100644 gas/testsuite/gas/riscv/x-thead-sync-fail.s > create mode 100644 gas/testsuite/gas/riscv/x-thead-sync.d > create mode 100644 gas/testsuite/gas/riscv/x-thead-sync.s > > -- > 2.37.2 >