On Thu, 17 Nov 2022 22:59:08 PST (-0800), Kito Cheng wrote:
Wait, what's Xgnuzihintpausestate???

I just made it up, it's defined right next to the name like those profile extensions are. I figured that's the most RISC-V way to define something like this, but we could just drop it and run with the definition -- IIRC we just stuck a comment in for Linux and QEMU, I doubt anyone is actually going to implement the "doesn't touch PC" version of pause.

On Fri, Nov 18, 2022 at 12:30 PM Palmer Dabbelt <pal...@rivosinc.com> wrote:

gcc/ChangeLog:

        * doc/extend.texi (__builtin_riscv_pause): Imply
        Xgnuzihintpausestate.
---
 gcc/doc/extend.texi | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index b1dd39e64b8..26f14e61bc8 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -21103,7 +21103,9 @@ Returns the value that is currently set in the 
@samp{tp} register.
 @end deftypefn

 @deftypefn {Built-in Function}  void __builtin_riscv_pause (void)
-Generates the @code{pause} (hint) machine instruction.
+Generates the @code{pause} (hint) machine instruction.  This implies the
+Xgnuzihintpausestate extension, which redefines the @code{pause} instruction to
+change architectural state.
 @end deftypefn

 @node RX Built-in Functions
--
2.38.1

Reply via email to