summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-01-03 10:12:07 +0000
committerkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-01-03 10:12:07 +0000
commit31cf6801e8e5f4dc699142b96b6638239bf92796 (patch)
tree450e22a52f09fdb9ff736f6174410ca312ea6637 /include
parent0239882c8147e89ce5b6c6d39786804fb12343ea (diff)
merge revision(s) %s: 33757:33758
* include/ruby/defines.h (FLUSH_REGISTER_WINDOWS): move sparc asm code to a separete file sparc.c for preventing inlining optimization. Patched by Jurij Smakov. [Bug #5244] [ruby-core:40685] * sparc.c (rb_sparc_flush_register_windows): ditto. * configure.in: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'include')
-rw-r--r--include/ruby/defines.h17
1 files changed, 2 insertions, 15 deletions
diff --git a/include/ruby/defines.h b/include/ruby/defines.h
index ea38dc3689..8fd09716f1 100644
--- a/include/ruby/defines.h
+++ b/include/ruby/defines.h
@@ -268,21 +268,8 @@ void xfree(void*);
#endif
#if defined(sparc) || defined(__sparc__)
-static inline void
-flush_register_windows(void)
-{
- asm
-#ifdef __GNUC__
- volatile
-#endif
-# if defined(__sparc_v9__) || defined(__sparcv9) || defined(__arch64__)
- ("flushw")
-# else
- ("ta 0x03")
-# endif /* trap always to flush register windows if we are on a Sparc system */
- ;
-}
-# define FLUSH_REGISTER_WINDOWS flush_register_windows()
+void rb_sparc_flush_register_windows(void);
+# define FLUSH_REGISTER_WINDOWS rb_sparc_flush_register_windows()
#elif defined(__ia64)
void *rb_ia64_bsp(void);
void rb_ia64_flushrs(void);