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