ruby-cvs:16213
From: (akr) <akr ruby-lang.org>
Date: Tue, 27 Dec 2005 14:40:06 +0900
Subject: [ruby-cvs:16213] ruby: * configure.in: define IA64 for portability. (HP aC++/ANSI C doesn't
akr Tue, 27 Dec 2005 14:40:06 +0900
Modified files:
ruby:
ChangeLog common.mk configure.in defines.h eval.c gc.c main.c
numeric.c ruby.h
Added files:
ruby:
ia64.s
Log:
* configure.in: define IA64 for portability. (HP aC++/ANSI C doesn't
define __ia64__.)
don't check libunwind stuff.
check __libc_ia64_register_backing_store_base.
* defines.h: declare rb_ia64_bsp and rb_ia64_flushrs.
(flush_register_windows): call rb_ia64_flushrs on IA64.
* ia64.s: new file for IA64.
it is separated from C program files because
Intel C++ Compiler for IA64 doesn't support inline assembly.
* common.mk (ia64.$(OBJEXT)): new target.
* ruby.h (RUBY_INIT_STACK): defined.
(ruby_init_stack): declared for RUBY_INIT_STACK.
* main.c (main): precedes RUBY_INIT_STACK before ruby_init.
* gc.c (rb_gc_register_stack_start): new global variable on IA64.
(garbage_collect): simplify register stack marking code.
don't use libunwind.
(Init_stack): initialize rb_gc_register_stack_start.
(ruby_init_stack): new function for RUBY_INIT_STACK.
* eval.c (struct thread): add bstr_pos member for original position of
register stack.
(rb_thread_save_context): simplify register stack saving code.
don't use libunwind.
(rb_thread_restore_context_0): new function. moved from
rb_thread_restore_context except the stack position checking code.
don't use libunwind for IA64 register stack.
(register_stack_extend): new function.
(stack_extend): make it self-recursive with
the stack position checking code in old rb_thread_restore_context.
(rb_thread_restore_context): just call stack_extend.
(flush_register_windows): removed.
Revision Changes Path
1.4865 +40 -0 ruby/ChangeLog
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/ChangeLog?cvsroot=src&r1=1.4864&r2=1.4865
1.22 +1 -0 ruby/common.mk
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/common.mk?cvsroot=src&r1=1.21&r2=1.22
1.293 +11 -13 ruby/configure.in
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/configure.in?cvsroot=src&r1=1.292&r2=1.293
1.48 +4 -3 ruby/defines.h
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/defines.h?cvsroot=src&r1=1.47&r2=1.48
1.858 +87 -96 ruby/eval.c
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/eval.c?cvsroot=src&r1=1.857&r2=1.858
1.224 +64 -43 ruby/gc.c
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/gc.c?cvsroot=src&r1=1.223&r2=1.224
1.1 -ADDED- ruby/ia64.s
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/ia64.s?cvsroot=src&rev=1.1
1.17 +6 -3 ruby/main.c
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/main.c?cvsroot=src&r1=1.16&r2=1.17
1.133 +4 -0 ruby/numeric.c
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/numeric.c?cvsroot=src&r1=1.132&r2=1.133
1.128 +11 -0 ruby/ruby.h
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/ruby.h?cvsroot=src&r1=1.127&r2=1.128