summaryrefslogtreecommitdiffstats
path: root/defines.h
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-09-26 00:52:49 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-09-26 00:52:49 +0000
commit5e73dc9233f8a5ea926c90e2178555a932b111c2 (patch)
treee6dd3106e1b46b72edca324c69856238bd70f0fa /defines.h
parent6104291af4c25b493064971f9d81fc212513db0c (diff)
downloadruby-5e73dc9233f8a5ea926c90e2178555a932b111c2.tar.gz
ruby-5e73dc9233f8a5ea926c90e2178555a932b111c2.tar.xz
ruby-5e73dc9233f8a5ea926c90e2178555a932b111c2.zip
* defines.h (flush_register_windows): use volatile only for gcc on
Solaris. [ruby-dev:21403] * lib/mkmf.rb (xsystem): use system directly to honor shell meta charaters. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4600 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'defines.h')
-rw-r--r--defines.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/defines.h b/defines.h
index 6fd17808a..2744b1650 100644
--- a/defines.h
+++ b/defines.h
@@ -139,13 +139,18 @@ void xfree _((void*));
static inline void
flush_register_windows(void)
{
-# if defined(__sparc_v9__) || defined(__arch64__)
- asm volatile ("flushw" : :);
+ asm
+#ifdef __GNUC__
+ volatile
+#endif
+# if defined(__sparc_v9__) || defined(__sparcv9) || defined(__arch64__)
+ ("flushw" : :)
# elif defined(linux) || defined(__linux__)
- asm volatile ("ta 0x83");
+ ("ta 0x83")
# else /* Solaris, OpenBSD, NetBSD, etc. */
- asm volatile ("ta 0x03");
+ ("ta 0x03")
# endif /* trap always to flush register windows if we are on a Sparc system */
+ ;
}
# define FLUSH_REGISTER_WINDOWS flush_register_windows()
#else