From patchwork Wed Aug 9 06:11:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tsukasa OI X-Patchwork-Id: 133068 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c44e:0:b0:3f2:4152:657d with SMTP id w14csp2593581vqr; Tue, 8 Aug 2023 23:13:10 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHC7zNCskUmfCng2Z7Po2W6m0daAxS/oTGre2NyFCMOQAKO/Dnu+aHkuO+Gj4al0Fc4ICgq X-Received: by 2002:a19:675d:0:b0:4fe:ae7:d906 with SMTP id e29-20020a19675d000000b004fe0ae7d906mr1056818lfj.65.1691561590197; Tue, 08 Aug 2023 23:13:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691561590; cv=none; d=google.com; s=arc-20160816; b=XIR1aUewWMRRTnJ05q4FqUabATSxx9BmP8u06jWxbyd9l4DZHP1YPKe5mTk5GhKd/S CcgpN5UkJsbg2bcaPqjSIZcxt9UgYLLFW5OY7igACIUXzflKnMA2Hnr/lF8H9mSWG3gx E1KubYtcuQiTAQuJHk0UTwJmDaeqCMSXD5UO6ShV3h48/YWDWIiXGQU99eVBSb9qipyq xobFgFdgXTFhHHqQEe/X05VIccttlUwPDQj4gBgBkSlDBMszEieTcK8s53AxZQlf5Lii 9G/cpjiFvMFgGY1nUSs9FTlmN1pGnnaGwT4jByjgE76E1GG5YGVaXBLwXPHK90KtexL+ ADxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=3uNqqXec98q+n6puNITUB+krDobyRCu02eiAGJOzylU=; fh=+bCUc1tAQw+oZXhCfUcikXLQfLAv5S3yHdS80coPDYM=; b=Nh67ZimOl7NrRmFVeVCRuQcNQpjoBTMcipMEm/TgrG5uZyiHuHnB44dZcSuqQx/p6K hvBoMTl/c6BuIT6ps/j0w+g+IlkSj/TgO3SoCibUCAKZvZ6TAMtihJeZTsviXqWqH/MJ k2ZF5kIbnL5qQVVqHaTRWGyLSNVGDP34fzJZekOcYKgMV/0Gh/EC6pt+cS7TCrBoBjGq BneQ6OFr+dYi9z/QS5nZ6cj7PJ6fqUZxP04DQ51OZ1w9AQZU7va2+nAalIYPc08kp7kn /kMmTkIVTis6GXHVaefC9dCJVgGWEgpAHYh+263ECHdKHs+ynjfiTPmB3umC/PCGx83C 7w0Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=Xr5Ha5jm; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id e24-20020a056402089800b00523009c1a2bsi8418107edy.524.2023.08.08.23.13.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 23:13:10 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=Xr5Ha5jm; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 3CB3B3882101 for ; Wed, 9 Aug 2023 06:12:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3CB3B3882101 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1691561579; bh=3uNqqXec98q+n6puNITUB+krDobyRCu02eiAGJOzylU=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=Xr5Ha5jmDXbixy8XaGZe8bbAolY3ZV+zYFbEW1ggRa2E3QHk4t/0oXVq54fTuGfIE WZmTpArOW8ACGpi1QVchVVmn62OBW1upkljfrD5TWuKBH4xnRgxaX1YMimbCVUHHT/ cKVBHiaB632fz4NvvLQovkCPMW5xBPwsB6TQFSgA= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-sender-0.a4lg.com (mail-sender-0.a4lg.com [IPv6:2401:2500:203:30b:4000:6bfe:4757:0]) by sourceware.org (Postfix) with ESMTPS id 1596D3857C55 for ; Wed, 9 Aug 2023 06:12:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1596D3857C55 Received: from [127.0.0.1] (localhost [127.0.0.1]) by mail-sender-0.a4lg.com (Postfix) with ESMTPSA id 49B67300089; Wed, 9 Aug 2023 06:12:10 +0000 (UTC) To: Tsukasa OI , Kito Cheng , Palmer Dabbelt , Andrew Waterman , Jim Wilson Cc: gcc-patches@gcc.gnu.org Subject: [RFC PATCH 1/2] RISC-V: __builtin_riscv_pause for all environment Date: Wed, 9 Aug 2023 06:11:50 +0000 Message-ID: <83ae75c6dcbca1d37849305a79d9e2e712ceb5b0.1691561509.git.research_trasio@irq.a4lg.com> In-Reply-To: References: Mime-Version: 1.0 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, GIT_PATCH_0, KAM_SHORT, 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: 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-Patchwork-Original-From: Tsukasa OI via Gcc-patches From: Tsukasa OI Reply-To: Tsukasa OI Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773730880223008039 X-GMAIL-MSGID: 1773730885792741080 From: Tsukasa OI The "pause" RISC-V hint instruction requires the 'Zihintpause' extension (in the assembler). However, GCC emits "pause" unconditionally, making an assembler error while compiling code with __builtin_riscv_pause while the 'Zihintpause' extension disabled. However, the "pause" instruction code (0x0100000f) is a HINT and emitting its instruction code is safe in any environment. This commit implements handling for the 'Zihintpause' extension and emits ".insn 0x0100000f" instead of "pause" only if the extension is disabled (making the diagnostics better). gcc/ChangeLog: * common/config/riscv/riscv-common.cc (riscv_ext_version_table): Implement the 'Zihintpause' extension, version 2.0. (riscv_ext_flag_table) Add 'Zihintpause' handling. * config/riscv/riscv-builtins.cc: Remove availability predicate "always" and add "hint_pause" and "hint_pause_pseudo", corresponding the existence of the 'Zihintpause' extension. (riscv_builtins) Split builtin implementation depending on the existence of the 'Zihintpause' extension. * config/riscv/riscv-opts.h (MASK_ZIHINTPAUSE, TARGET_ZIHINTPAUSE): New. * config/riscv/riscv.md (riscv_pause): Make it only available when the 'Zihintpause' extension is enabled. (riscv_pause_insn) New "pause" implementation when the 'Zihintpause' extension is disabled. gcc/testsuite/ChangeLog: * gcc.target/riscv/builtin_pause.c: Removed. * gcc.target/riscv/zihintpause.c: New test when the 'Zihintpause' extension is enabled. * gcc.target/riscv/zihintpause-noarch.c: New test when the 'Zihintpause' extension is disabled. --- gcc/common/config/riscv/riscv-common.cc | 2 ++ gcc/config/riscv/riscv-builtins.cc | 6 ++++-- gcc/config/riscv/riscv-opts.h | 2 ++ gcc/config/riscv/riscv.md | 7 ++++++- gcc/testsuite/gcc.target/riscv/builtin_pause.c | 10 ---------- gcc/testsuite/gcc.target/riscv/zihintpause-noarch.c | 11 +++++++++++ gcc/testsuite/gcc.target/riscv/zihintpause.c | 11 +++++++++++ 7 files changed, 36 insertions(+), 13 deletions(-) delete mode 100644 gcc/testsuite/gcc.target/riscv/builtin_pause.c create mode 100644 gcc/testsuite/gcc.target/riscv/zihintpause-noarch.c create mode 100644 gcc/testsuite/gcc.target/riscv/zihintpause.c diff --git a/gcc/common/config/riscv/riscv-common.cc b/gcc/common/config/riscv/riscv-common.cc index 2eb8c7cadff0..02502ba07e82 100644 --- a/gcc/common/config/riscv/riscv-common.cc +++ b/gcc/common/config/riscv/riscv-common.cc @@ -209,6 +209,7 @@ static const struct riscv_ext_version riscv_ext_version_table[] = {"zkt", ISA_SPEC_CLASS_NONE, 1, 0}, {"zihintntl", ISA_SPEC_CLASS_NONE, 1, 0}, + {"zihintpause", ISA_SPEC_CLASS_NONE, 2, 0}, {"zicboz",ISA_SPEC_CLASS_NONE, 1, 0}, {"zicbom",ISA_SPEC_CLASS_NONE, 1, 0}, @@ -1344,6 +1345,7 @@ static const riscv_ext_flag_table_t riscv_ext_flag_table[] = {"zkt", &gcc_options::x_riscv_zk_subext, MASK_ZKT}, {"zihintntl", &gcc_options::x_riscv_zi_subext, MASK_ZIHINTNTL}, + {"zihintpause", &gcc_options::x_riscv_zi_subext, MASK_ZIHINTPAUSE}, {"zicboz", &gcc_options::x_riscv_zicmo_subext, MASK_ZICBOZ}, {"zicbom", &gcc_options::x_riscv_zicmo_subext, MASK_ZICBOM}, diff --git a/gcc/config/riscv/riscv-builtins.cc b/gcc/config/riscv/riscv-builtins.cc index 79681d759628..554fb7f69bb0 100644 --- a/gcc/config/riscv/riscv-builtins.cc +++ b/gcc/config/riscv/riscv-builtins.cc @@ -122,7 +122,8 @@ AVAIL (clmul_zbkc32_or_zbc32, (TARGET_ZBKC || TARGET_ZBC) && !TARGET_64BIT) AVAIL (clmul_zbkc64_or_zbc64, (TARGET_ZBKC || TARGET_ZBC) && TARGET_64BIT) AVAIL (clmulr_zbc32, TARGET_ZBC && !TARGET_64BIT) AVAIL (clmulr_zbc64, TARGET_ZBC && TARGET_64BIT) -AVAIL (always, (!0)) +AVAIL (hint_pause, TARGET_ZIHINTPAUSE) +AVAIL (hint_pause_pseudo, !TARGET_ZIHINTPAUSE) /* Construct a riscv_builtin_description from the given arguments. @@ -179,7 +180,8 @@ static const struct riscv_builtin_description riscv_builtins[] = { DIRECT_BUILTIN (frflags, RISCV_USI_FTYPE, hard_float), DIRECT_NO_TARGET_BUILTIN (fsflags, RISCV_VOID_FTYPE_USI, hard_float), - DIRECT_NO_TARGET_BUILTIN (pause, RISCV_VOID_FTYPE, always), + RISCV_BUILTIN (pause, "pause", RISCV_BUILTIN_DIRECT_NO_TARGET, RISCV_VOID_FTYPE, hint_pause), + RISCV_BUILTIN (pause_insn, "pause", RISCV_BUILTIN_DIRECT_NO_TARGET, RISCV_VOID_FTYPE, hint_pause_pseudo), }; /* Index I is the function declaration for riscv_builtins[I], or null if the diff --git a/gcc/config/riscv/riscv-opts.h b/gcc/config/riscv/riscv-opts.h index 28d9b81bd800..a6c3e0c9098f 100644 --- a/gcc/config/riscv/riscv-opts.h +++ b/gcc/config/riscv/riscv-opts.h @@ -102,10 +102,12 @@ enum riscv_entity #define MASK_ZICSR (1 << 0) #define MASK_ZIFENCEI (1 << 1) #define MASK_ZIHINTNTL (1 << 2) +#define MASK_ZIHINTPAUSE (1 << 3) #define TARGET_ZICSR ((riscv_zi_subext & MASK_ZICSR) != 0) #define TARGET_ZIFENCEI ((riscv_zi_subext & MASK_ZIFENCEI) != 0) #define TARGET_ZIHINTNTL ((riscv_zi_subext & MASK_ZIHINTNTL) != 0) +#define TARGET_ZIHINTPAUSE ((riscv_zi_subext & MASK_ZIHINTPAUSE) != 0) #define MASK_ZAWRS (1 << 0) #define TARGET_ZAWRS ((riscv_za_subext & MASK_ZAWRS) != 0) diff --git a/gcc/config/riscv/riscv.md b/gcc/config/riscv/riscv.md index 688fd697255b..f2fcbfa6163b 100644 --- a/gcc/config/riscv/riscv.md +++ b/gcc/config/riscv/riscv.md @@ -2192,9 +2192,14 @@ (define_insn "riscv_pause" [(unspec_volatile [(const_int 0)] UNSPECV_PAUSE)] - "" + "TARGET_ZIHINTPAUSE" "pause") +(define_insn "riscv_pause_insn" + [(unspec_volatile [(const_int 0)] UNSPECV_PAUSE)] + "" + ".insn 0x0100000f") + ;; ;; .................... ;; diff --git a/gcc/testsuite/gcc.target/riscv/builtin_pause.c b/gcc/testsuite/gcc.target/riscv/builtin_pause.c deleted file mode 100644 index 9250937cabb9..000000000000 --- a/gcc/testsuite/gcc.target/riscv/builtin_pause.c +++ /dev/null @@ -1,10 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-O2" } */ - -void test_pause() -{ - __builtin_riscv_pause (); -} - -/* { dg-final { scan-assembler "pause" } } */ - diff --git a/gcc/testsuite/gcc.target/riscv/zihintpause-noarch.c b/gcc/testsuite/gcc.target/riscv/zihintpause-noarch.c new file mode 100644 index 000000000000..99ab953bd1db --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/zihintpause-noarch.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64i -mabi=lp64" { target { rv64 } } } */ +/* { dg-options "-march=rv32i -mabi=ilp32" { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-g" "-flto"} } */ + +void test_pause() +{ + __builtin_riscv_pause (); +} + +/* { dg-final { scan-assembler-times "0x0100000f" 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/zihintpause.c b/gcc/testsuite/gcc.target/riscv/zihintpause.c new file mode 100644 index 000000000000..575b42277705 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/zihintpause.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64i_zihintpause -mabi=lp64" { target { rv64 } } } */ +/* { dg-options "-march=rv32i_zihintpause -mabi=ilp32" { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-g" "-flto"} } */ + +void test_pause() +{ + __builtin_riscv_pause (); +} + +/* { dg-final { scan-assembler-times "\tpause" 1 } } */ From patchwork Wed Aug 9 06:11:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tsukasa OI X-Patchwork-Id: 133069 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c44e:0:b0:3f2:4152:657d with SMTP id w14csp2593828vqr; Tue, 8 Aug 2023 23:14:01 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG6I+jMPL7IJWdrCXNcS5yAeh+LsFjZJ8QJYnaE7VV1rwenRLfo1riolh/36MSQ/UO8Xn0w X-Received: by 2002:aa7:cd1a:0:b0:523:40d0:34d1 with SMTP id b26-20020aa7cd1a000000b0052340d034d1mr1464077edw.4.1691561641471; Tue, 08 Aug 2023 23:14:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691561641; cv=none; d=google.com; s=arc-20160816; b=rPfVHeMK2OOHoht1AGp7bxZLzboAKpadCtNPdv4vHUN3HTWECbxro/67wnddK92NAn bNBQt5f3CUXZ/EyzB0qie/pMbA6orVNvzZqGxAjq/JA41ATL9CYa1Y29Ko8OgAzAZcKt IgTUfnRs3mAviLmSatFwMF4mdTSs22HsELhAqkLMekYKpFG/ynOWw7jVUUAiAKVrpimx CkCZvTKolhIKVrua6Bk62SFtQ+8gtj9uRQY9pqnf5qJ3gN1JUteKYRALcNQHsBQGNZwY rieQ80KiDmcxZNIR3QXGV5gzhQrosLjdasM6ZqQCjuuYIb+Gm8tXPJn0q/LrtjveyrnC 8WLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=gHrdmNJCoAiZHX2OcysJrxZHdUBSb+/Zac2GVNUYWaY=; fh=+bCUc1tAQw+oZXhCfUcikXLQfLAv5S3yHdS80coPDYM=; b=HChYEERS6vmfC8pm0CsLecnA/j+HdJALrav5EAmEXYtP+s1x4sn7kHj6tCWugufDpg ymgp8kFTso1kGSwzzNg/arSJvKZeuI4YQs/18ZOjuDLXbgG4Yh+8Q+TByUSffsV/nhsL bkgaoMKcSOSwKWZrothrVjtmqNuh9KWJIDeXHmAQDiknyRwpjFzYkZPwVfe8BV+XpXBb E7MiF76bnF7lFiy45PyvpBsYt5llEfyvQNfm/y9b2KvQLlsnb7urCPb4zpnx44StJuQz 2dfSHa3IiuL48KAIuxKM8QbISf13wQoM9kWtlNOi55fPuTro4DHt6fTN4sjvA9lJRw/S LbnA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=OflKZYUr; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id by4-20020a0564021b0400b005234abc7d8asi1766197edb.589.2023.08.08.23.14.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 23:14:01 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=OflKZYUr; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2285F3857342 for ; Wed, 9 Aug 2023 06:14:00 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2285F3857342 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1691561640; bh=gHrdmNJCoAiZHX2OcysJrxZHdUBSb+/Zac2GVNUYWaY=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=OflKZYUr7vunam5wmBKI8hVGvxEUVhzHArTWmFrALpzlzT+Ze3KJroqa7pu9TzXe1 qTOIrUHPOp7D24BiCO5tyRNv+O+SXpgJttUM5FzRXLYVrZhpWgWSpy+obOkYzAolHL XMPGHUUEgTPnBrt5I24fEXiq33g2bYO/nyD4JpGU= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-sender-0.a4lg.com (mail-sender.a4lg.com [153.120.152.154]) by sourceware.org (Postfix) with ESMTPS id AD91E3858289 for ; Wed, 9 Aug 2023 06:12:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AD91E3858289 Received: from [127.0.0.1] (localhost [127.0.0.1]) by mail-sender-0.a4lg.com (Postfix) with ESMTPSA id 08DA2300089; Wed, 9 Aug 2023 06:12:21 +0000 (UTC) To: Tsukasa OI , Kito Cheng , Palmer Dabbelt , Andrew Waterman , Jim Wilson Cc: gcc-patches@gcc.gnu.org Subject: [RFC PATCH 2/2] RISC-V: Fix documentation of __builtin_riscv_pause Date: Wed, 9 Aug 2023 06:11:51 +0000 Message-ID: <9bf2e7d86cbdb2d4b3956926b1db3061f701c80c.1691561509.git.research_trasio@irq.a4lg.com> In-Reply-To: References: Mime-Version: 1.0 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, GIT_PATCH_0, 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: 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-Patchwork-Original-From: Tsukasa OI via Gcc-patches From: Tsukasa OI Reply-To: Tsukasa OI Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773730939762771025 X-GMAIL-MSGID: 1773730939762771025 From: Tsukasa OI This built-in does not imply the 'Xgnuzihintpausestate' extension. It does not change architectural state (because all HINTs are prohibited from doing that). gcc/ChangeLog: * doc/extend.texi: Fix the description of __builtin_riscv_pause. --- gcc/doc/extend.texi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 89c5b4ea2b20..7ebbe70c78d6 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -21570,9 +21570,9 @@ Returns the value that is currently set in the @samp{tp} register. @enddefbuiltin @defbuiltin{void __builtin_riscv_pause (void)} -Generates the @code{pause} (hint) machine instruction. This implies the -Xgnuzihintpausestate extension, which redefines the @code{pause} instruction to -change architectural state. +Generates the @code{pause} (hint) machine instruction. If the target implements +the Zihintpause extension, it indicates that the current hart should be +temporarily paused or slowed down. @enddefbuiltin @node RISC-V Vector Intrinsics