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 <[email protected]> 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
