From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com [IPv6:2a00:1450:4864:20::129]) by sourceware.org (Postfix) with ESMTPS id A26A33858C55 for ; Tue, 22 Mar 2022 02:39:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A26A33858C55 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=sifive.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=sifive.com Received: by mail-lf1-x129.google.com with SMTP id w27so27558559lfa.5 for ; Mon, 21 Mar 2022 19:39:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=uXHv7QSyGk5U+tjoNR8R/OxiPv+s8EP8u2eSwUZGOjk=; b=lqe11UCbByk3FtG/X89YRwMhgaa7pyDcyJyy700CTL1sTlhcU8jpfzoUIozW/jUpxr sMKEEvfqJQMSqHQknCo1oRZHUeduOdAqqOuO5YP9RdKRkbtcoaqNje0xoCA2rEYG4s6V 6jHDn6TUVrNQr+mXckvV7I8rDgT9xAWJYDBLqh7aa+foXRJj/qm6MjdhPQjPDJA/Mopu QNCufNpd9yTnLHT3UsjG+aGRqo9aRDsNLPMhWsVe6tsbIDShcZFYG5MqnTDiH8MwsYaV 4nPdKq+JGRgNVSnr8m0DUl0eTC3s3tzQdM55UJipNc+Mm9Y4Js/npCKKZ4L7Srx2veeE ggzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=uXHv7QSyGk5U+tjoNR8R/OxiPv+s8EP8u2eSwUZGOjk=; b=6nyl5GZAstpdzilDYp9mPsvXfilRAk5OAU+SPZO7oZ7XAxJk4aAgBuLGg/yF3renvR yG9oHp7xaeqAYVtKvQaIV3nrm9OGSfA3MzkS/x+3++bafE/3qquvetzSEOjNmoxmd/UM PYUOPxXHGggKeaEQfvRQaYbO0dXZhkV4ypjhW+IWLdMn3dzcsop6Gez2hfQCrroNMeI5 Z7ou6quKUDJql+/yIPE8sLYcuw8XM5Bs2c7cgaoSf82fo1CXGKA+FvxrOfz92eUrNZ0t JxsAX1Wu5rQ7qeolcmEqw9S5IKUj64Fo4ybWDlYsdX9pubtlSy8gK66/svLNBGEhZkcv bWdw== X-Gm-Message-State: AOAM533X44kBjwbI4I6IOx8+EUTFKa9ZvCpIkUtCUgJ/C52IPSffeMQS h91z6iT887BaOnA5MuDSnkZhjbP+yNNL7J8lgTJDBw== X-Google-Smtp-Source: ABdhPJydRDFoYtFR4IxX5VZFMn/7o2c9jNAiNsqUKxPsulZc69VuQd/GH/i9Q9577vssqEi+rMDc984PrxNv8Ouha6w= X-Received: by 2002:a05:6512:2309:b0:448:8c3c:83bc with SMTP id o9-20020a056512230900b004488c3c83bcmr16863479lfu.285.1647916774967; Mon, 21 Mar 2022 19:39:34 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Kito Cheng Date: Tue, 22 Mar 2022 10:39:24 +0800 Message-ID: Subject: Re: [PATCH] RISC-V: Implement ZTSO extension. To: Palmer Dabbelt Cc: GCC Patches , Shi-Hua Liao , Christoph Muellner , Andrew Waterman X-Spam-Status: No, score=-9.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Mar 2022 02:39:38 -0000 Hi Palmer: I guess the problem is binutils isn't included and it's too close to the GCC release, and binutils will report errors if it has any unsupported extensions. Most distro will use GCC 12 + binutils 2.38 or GCC 11 + binutils 2.38, so either combination doesn't work for march string with ztso. So that's why I am not intending to include that at this moment, but maybe we could include that first and it'll work once binutils 2.39 released, then we can have GCC 12 + binutils 2.39 in the next few months. Anyway, I think I am fine with that, and I'll ping Nelson for the binutils part. On Tue, Mar 22, 2022 at 9:13 AM Palmer Dabbelt wrote: > On Thu, 17 Mar 2022 23:52:04 PDT (-0700), gcc-patches@gcc.gnu.org wrote: > > Hi Shi-Hua: > > > > Thanks, this patch is LGTM, but I would defer that until stage 1, > > because the binutils part isn't merget yet. > > IMO we should at least have a __riscv_ztso define, and ideally have the > relevent builtins ported (atomics, fences, etc) as well. Otherwise this > is really just setting a bit that makes binaries incompatible without > providing any real benefit. That'll also let us work through how these > mappings should be implemented, so we don't end up with issues like we > did with WMO. > > > > > On Tue, Mar 15, 2022 at 5:10 PM wrote: > >> > >> From: LiaoShihua > >> > >> ZTSO is the extension of tatol store order model. > >> This extension adds no new instructions to the ISA, and you can > use it with arch "ztso". > >> If you use it, TSO flag will be generate in the ELF header. > >> > >> gcc/ChangeLog: > >> > >> * common/config/riscv/riscv-common.cc: define new arch. > >> * config/riscv/riscv-opts.h (MASK_ZTSO): Ditto. > >> (TARGET_ZTSO):Ditto. > >> * config/riscv/riscv.opt:Ditto. > >> > >> --- > >> gcc/common/config/riscv/riscv-common.cc | 4 +++- > >> gcc/config/riscv/riscv-opts.h | 3 +++ > >> gcc/config/riscv/riscv.opt | 3 +++ > >> 3 files changed, 9 insertions(+), 1 deletion(-) > >> > >> diff --git a/gcc/common/config/riscv/riscv-common.cc > b/gcc/common/config/riscv/riscv-common.cc > >> index a904893b9ed..f4730b991d7 100644 > >> --- a/gcc/common/config/riscv/riscv-common.cc > >> +++ b/gcc/common/config/riscv/riscv-common.cc > >> @@ -185,6 +185,8 @@ static const struct riscv_ext_version > riscv_ext_version_table[] = > >> {"zvl32768b", ISA_SPEC_CLASS_NONE, 1, 0}, > >> {"zvl65536b", ISA_SPEC_CLASS_NONE, 1, 0}, > >> > >> + {"ztso", ISA_SPEC_CLASS_NONE, 0, 1}, > >> + > >> /* Terminate the list. */ > >> {NULL, ISA_SPEC_CLASS_NONE, 0, 0} > >> }; > >> @@ -1080,7 +1082,7 @@ static const riscv_ext_flag_table_t > riscv_ext_flag_table[] = > >> {"zvl32768b", &gcc_options::x_riscv_zvl_flags, MASK_ZVL32768B}, > >> {"zvl65536b", &gcc_options::x_riscv_zvl_flags, MASK_ZVL65536B}, > >> > >> - > >> + {"ztso", &gcc_options::x_riscv_ztso_subext, MASK_ZTSO}, > >> {NULL, NULL, 0} > >> }; > >> > >> diff --git a/gcc/config/riscv/riscv-opts.h > b/gcc/config/riscv/riscv-opts.h > >> index 929e4e3a7c5..9cb5f2a550a 100644 > >> --- a/gcc/config/riscv/riscv-opts.h > >> +++ b/gcc/config/riscv/riscv-opts.h > >> @@ -136,4 +136,7 @@ enum stack_protector_guard { > >> #define TARGET_ZVL32768B ((riscv_zvl_flags & MASK_ZVL32768B) != 0) > >> #define TARGET_ZVL65536B ((riscv_zvl_flags & MASK_ZVL65536B) != 0) > >> > >> +#define MASK_ZTSO (1 << 0) > >> +#define TARGET_ZTSO ((riscv_ztso_subext & MASK_ZTSO) != 0) > >> + > >> #endif /* ! GCC_RISCV_OPTS_H */ > >> diff --git a/gcc/config/riscv/riscv.opt b/gcc/config/riscv/riscv.opt > >> index 9fffc08220d..6128bfa31dc 100644 > >> --- a/gcc/config/riscv/riscv.opt > >> +++ b/gcc/config/riscv/riscv.opt > >> @@ -209,6 +209,9 @@ int riscv_vector_eew_flags > >> TargetVariable > >> int riscv_zvl_flags > >> > >> +TargetVariable > >> +int riscv_ztso_subext > >> + > >> Enum > >> Name(isa_spec_class) Type(enum riscv_isa_spec_class) > >> Supported ISA specs (for use with the -misa-spec= option): > >> -- > >> 2.31.1.windows.1 > >> >