From 23c88ad3de4ec62224c2d36becfdffab48ff2ed2 Mon Sep 17 00:00:00 2001 From: akr Date: Sat, 2 Jul 2005 08:11:24 +0000 Subject: * 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: http://svn.ruby-lang.org/repos/ruby/trunk@8696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- eval.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'eval.c') diff --git a/eval.c b/eval.c index 4b946c0e6..63fbec723 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 + -- cgit