Jit places support

svn: r16401
This commit is contained in:
Kevin Tew 2009-10-21 17:33:43 +00:00
parent 38fe4782b7
commit 8a45f34acd
4 changed files with 9 additions and 2 deletions

View File

@ -20,10 +20,10 @@ extern MZ_DLLIMPORT int GC_is_marked(void *);
#define NODE_STARTS_OFFSET 1
#define NODE_GCABLE_OFFSET 2
static void **tree;
static THREAD_LOCAL void **tree;
static THREAD_LOCAL int during_set;
static int do_clear_symbols(void **t, unsigned long start, int offset, unsigned long addr, int clearing);
static int during_set;
static void *find_symbol(unsigned long v)
{

View File

@ -462,6 +462,9 @@ static Scheme_Env *place_instance_init_post_kernel() {
scheme_init_parameterization(env);
scheme_init_expand_observe(env);
scheme_init_place(env);
#if defined(MZ_USE_PLACES)
scheme_jit_fill_threadlocal_table();
#endif
#ifndef DONT_USE_FOREIGN
scheme_init_foreign(env);

View File

@ -268,6 +268,9 @@ void scheme_jit_fill_threadlocal_table();
On x86, the thread-local table pointer is loaded on entry to the
JIT world into a C stack slot. On x86_64, it is loaded into the
callee-saved R14 (and the old value is saved on the C stack). */
#ifdef MZ_USE_PLACES
#define JIT_THREAD_LOCAL
#endif
#ifdef JIT_THREAD_LOCAL
# define tl_MZ_RUNSTACK 0

View File

@ -2356,6 +2356,7 @@ void scheme_finish_application(Scheme_App_Rec *app);
Scheme_Object *scheme_jit_expr(Scheme_Object *);
Scheme_Object *scheme_jit_closure(Scheme_Object *, Scheme_Object *context);
void scheme_jit_fill_threadlocal_table();
struct Start_Module_Args;