From d329ced71d40ec3e4303904f4dbd59495b70c496 Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 2 Nov 2004 03:55:04 +0000 Subject: * gc.c: cancel IA64 changes unnecessary for 1.8. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7177 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- gc.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) (limited to 'gc.c') diff --git a/gc.c b/gc.c index 9b3eee3960..f5078721c5 100644 --- a/gc.c +++ b/gc.c @@ -39,14 +39,10 @@ */ #define __libc_ia64_register_backing_store_base (4ULL<<61) #else -#ifdef HAVE_UNWIND_H -#include -#else #pragma weak __libc_ia64_register_backing_store_base extern unsigned long __libc_ia64_register_backing_store_base; #endif #endif -#endif #if defined _WIN32 || defined __CYGWIN__ #include @@ -1362,21 +1358,14 @@ garbage_collect() { ucontext_t ctx; VALUE *top, *bot; -#ifdef HAVE_UNWIND_H - _Unwind_Context *unwctx = _UNW_createContextForSelf(); -#endif - getcontext(&ctx); mark_locations_array((VALUE*)&ctx.uc_mcontext, ((size_t)(sizeof(VALUE)-1 + sizeof ctx.uc_mcontext)/sizeof(VALUE))); -#ifdef HAVE_UNWIND_H - _UNW_currentContext(unwctx); - bot = (VALUE*)(long)_UNW_getAR(unwctx, _UNW_AR_BSP); - top = (VALUE*)(long)_UNW_getAR(unwctx, _UNW_AR_BSPSTORE); - _UNW_destroyContext(unwctx); -#else bot = (VALUE*)__libc_ia64_register_backing_store_base; - top = (VALUE*)ctx.uc_mcontext.IA64_BSPSTORE; +#if defined(__FreeBSD__) + top = (VALUE*)ctx.uc_mcontext.mc_special.bspstore; +#else + top = (VALUE*)ctx.uc_mcontext.sc_ar_bsp; #endif rb_gc_mark_locations(bot, top); } -- cgit v1.2.3