summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-07-02 08:11:24 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-07-02 08:11:24 +0000
commit7215b7236362aef075fb7c7bc957cfc1f767cce3 (patch)
tree4d2f52d97b4623dbd90c25ecba4537bbfdd73e4d /eval.c
parent12bed479ec5777392077ac70c0996bbc44bd5a20 (diff)
* defines.h (FLUSH_REGISTER_WINDOWS): defined for IA64.
(flush_register_windows): declare flush_register_windows. * eval.c (flush_register_windows): new function. * ruby.h (NOINLINE): move up to be effective in defines.h. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index 4b946c0e6b..63fbec7239 100644
--- a/eval.c
+++ b/eval.c
@@ -13410,3 +13410,13 @@ rb_exec_recursive(func, obj, arg)
return result;
}
}
+
+/* flush_register_windows must not be inlined because flushrs doesn't flush
+ * current frame in register stack. */
+#ifdef __ia64__
+void flush_register_windows(void)
+{
+ __asm__ ("flushrs");
+}
+#endif
+