From fa00b6516c96ffc888c194caf9bf964255c6ec54 Mon Sep 17 00:00:00 2001 From: ngoto Date: Tue, 15 Nov 2011 04:42:31 +0000 Subject: * 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/trunk@33757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- include/ruby/defines.h | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) (limited to 'include/ruby/defines.h') diff --git a/include/ruby/defines.h b/include/ruby/defines.h index 58336c1ebd..2ef26d0da8 100644 --- a/include/ruby/defines.h +++ b/include/ruby/defines.h @@ -198,21 +198,8 @@ void xfree(void*); #endif #if defined(__sparc) -static inline void -flush_register_windows(void) -{ - asm -#ifdef __GNUC__ - volatile -#endif -# if SIZEOF_VOIDP > 4 /* workaround for Debian Sparc quirk */ - ("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(); +# define FLUSH_REGISTER_WINDOWS rb_sparc_flush_register_windows() #elif defined(__ia64) void *rb_ia64_bsp(void); void rb_ia64_flushrs(void); -- cgit v1.2.3