ruby-changes:22160
From: ngoto <ko1@a...>
Date: Wed, 4 Jan 2012 16:04:36 +0900 (JST)
Subject: [ruby-changes:22160] ngoto:r34209 (ruby_1_9_3): sparc.c was missing in r34199
ngoto 2012-01-04 16:04:22 +0900 (Wed, 04 Jan 2012) New Revision: 34209 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=34209 Log: sparc.c was missing in r34199 Added files: branches/ruby_1_9_3/sparc.c Index: ruby_1_9_3/sparc.c =================================================================== --- ruby_1_9_3/sparc.c (revision 0) +++ ruby_1_9_3/sparc.c (revision 34209) @@ -0,0 +1,30 @@ +/******************************************************************** + Flush register windows on sparc. + + This function is in a separate file to prevent inlining. The "flushw" + assembler instruction used on sparcv9 flushes all register windows + except the current one, so if it is inlined, the current register + window of the process executing the instruction will not be flushed + correctly. + + See http://bugs.ruby-lang.org/issues/5244 for discussion. +*********************************************************************/ +void rb_sparc_flush_register_windows(void) +{ + asm +#ifdef __GNUC__ + __volatile__ +#endif + +/* This condition should be in sync with one in configure.in */ +#if defined(__sparcv9) || defined(__sparc_v9__) || defined(__arch64__) +# ifdef __GNUC__ + ("flushw" : : : "%o7") +# else + ("flushw") +# endif /* __GNUC__ */ +#else + ("ta 0x03") +#endif + ; +} Property changes on: ruby_1_9_3/sparc.c ___________________________________________________________________ Added: snv:eol-style + LF -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/