1 /********************************************************************
2 Flush register windows on sparc.
4 This function is in a separate file to prevent inlining. The "flushw"
5 assembler instruction used on sparcv9 flushes all register windows
6 except the current one, so if it is inlined, the current register
7 window of the process executing the instruction will not be flushed
10 See https://bugs.ruby-lang.org/issues/5244 for discussion.
11 *********************************************************************/
13 rb_sparc_flush_register_windows(void)
16 * gcc doesn't provide "asm" keyword if -ansi and the various -std options
18 * https://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html
29 /* This condition should be in sync with one in configure.ac */
30 #if defined(__sparcv9) || defined(__sparc_v9__) || defined(__arch64__)
32 ("flushw" : : : "%o7")
35 # endif /* __GNUC__ */