summaryrefslogtreecommitdiff
path: root/defines.h
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-01-04 14:15:33 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-01-04 14:15:33 +0000
commit459031e5d94baf72c8e30a48922d57c6cff5a2ae (patch)
tree01f71e4415d55f655c744e1c2289219e46e038d6 /defines.h
parenta7685a6b877631dbb4ea9538311c124b5822677a (diff)
* process.c (rb_f_system): abandon vfork.
* io.c (pipe_open): ditto. * defines.h: sparc linux needs different FLUSH_REGISTER_WINDOWS * regex.c (re_search): abandon stclass optimization. * bignum.c (rb_cstr2inum): deny "0_". * bignum.c (rb_cstr2inum): allow "0\n" and so on. * error.c (rb_invalid_str): utility function to show inspect()'ed string. * bignum.c (rb_cstr2inum): prints invalid strings in inspect()'ed format. * object.c (rb_Float): ditto. * object.c (rb_convert_type): no longer use rb_rescue(). * re.c (rb_reg_search): initialize taint status of match object. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'defines.h')
-rw-r--r--defines.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/defines.h b/defines.h
index 3ca631ef12..bdf3e856bd 100644
--- a/defines.h
+++ b/defines.h
@@ -59,11 +59,15 @@
#define EXTERN extern
#endif
-#ifdef sparc
-#define FLUSH_REGISTER_WINDOWS asm("ta 3")
-#else
-#define FLUSH_REGISTER_WINDOWS /* empty */
-#endif
+#if defined(sparc) || defined(__sparc__)
+# if defined(linux) || defined(__linux__)
+#define FLUSH_REGISTER_WINDOWS asm("ta 0x83")
+# else /* Solaris, not sparc linux */
+#define FLUSH_REGISTER_WINDOWS asm("ta 0x03")
+# endif /* trap always to flush register windows if we are on a Sparc system */
+#else /* Not a sparc, so */
+#define FLUSH_REGISTER_WINDOWS /* empty -- nothing to do here */
+#endif
#if defined(MSDOS) || defined(_WIN32) || defined(__human68k__) || defined(__EMX__)
#define DOSISH 1