fix registration of some shared JIT code

svn: r17354
This commit is contained in:
Matthew Flatt 2009-12-19 04:32:13 +00:00
parent 0a1e4e6e83
commit 52c8e09f25
2 changed files with 9 additions and 27 deletions

View File

@ -9315,7 +9315,7 @@ scheme_do_eval(Scheme_Object *obj, int num_rands, Scheme_Object **rands,
PUSH_RUNSTACK(p, RUNSTACK, 1);
RUNSTACK_CHANGED();
switch (SCHEME_LET_EVAL_TYPE(lo)) {
switch (SCHEME_LET_EVAL_TYPE(lo) & 0x7) {
case SCHEME_EVAL_CONSTANT:
RUNSTACK[0] = lo->value;
break;

View File

@ -10316,10 +10316,7 @@ static int do_generate_common(mz_jit_state *jitter, void *_data)
__END_SHORT_JUMPS__(1);
if (jitter->retain_start) {
code_end = jit_get_ip().ptr;
add_symbol((unsigned long)code, (unsigned long)code_end - 1, scheme_false, 0);
}
register_sub_func(jitter, code, scheme_false);
}
}
@ -10404,10 +10401,7 @@ static int do_generate_common(mz_jit_state *jitter, void *_data)
/* *** fl1_code *** */
/* R0 has argument, V1 has primitive proc */
{
void *code, *code_end;
code = jit_get_ip().ptr;
fl1_fail_code = code;
fl1_fail_code = jit_get_ip().ptr;
mz_prolog(JIT_R2);
@ -10426,8 +10420,7 @@ static int do_generate_common(mz_jit_state *jitter, void *_data)
CHECK_LIMIT();
}
code_end = jit_get_ip().ptr;
add_symbol((unsigned long)code, (unsigned long)code_end - 1, scheme_false, 0);
register_sub_func(jitter, fl1_fail_code, scheme_false);
}
/* *** fl2{rf}{rf}_code *** */
@ -10435,7 +10428,7 @@ static int do_generate_common(mz_jit_state *jitter, void *_data)
non-register argument is in FPR0 */
for (ii = 0; ii < 2; ii++) {
for (i = 0; i < 3; i++) {
void *code, *code_end;
void *code;
int a0, a1;
code = jit_get_ip().ptr;
@ -10493,8 +10486,7 @@ static int do_generate_common(mz_jit_state *jitter, void *_data)
CHECK_LIMIT();
}
code_end = jit_get_ip().ptr;
add_symbol((unsigned long)code, (unsigned long)code_end - 1, scheme_false, 0);
register_sub_func(jitter, code, scheme_false);
}
}
@ -10506,7 +10498,6 @@ static int do_generate_more_common(mz_jit_state *jitter, void *_data)
/* *** check_proc_extract_code *** */
/* arguments are on the Scheme stack */
{
void *code_end;
GC_CAN_IGNORE jit_insn *ref, *ref2, *ref3, *refslow;
struct_proc_extract_code = jit_get_ip().ptr;
@ -10609,10 +10600,7 @@ static int do_generate_more_common(mz_jit_state *jitter, void *_data)
__END_SHORT_JUMPS__(1);
if (jitter->retain_start) {
code_end = jit_get_ip().ptr;
add_symbol((unsigned long)struct_proc_extract_code, (unsigned long)code_end - 1, scheme_false, 0);
}
register_sub_func(jitter, struct_proc_extract_code, scheme_false);
}
/* *** module_run_start_code *** */
@ -10644,10 +10632,7 @@ static int do_generate_more_common(mz_jit_state *jitter, void *_data)
jit_ret();
CHECK_LIMIT();
if (jitter->retain_start) {
code_end = jit_get_ip().ptr;
add_symbol((unsigned long)module_run_start_code, (unsigned long)code_end - 1, scheme_eof, 0);
}
register_sub_func(jitter, module_run_start_code, scheme_eof);
}
/* *** module_start_start_code *** */
@ -10676,10 +10661,7 @@ static int do_generate_more_common(mz_jit_state *jitter, void *_data)
jit_ret();
CHECK_LIMIT();
if (jitter->retain_start) {
code_end = jit_get_ip().ptr;
add_symbol((unsigned long)module_start_start_code, (unsigned long)code_end - 1, scheme_eof, 0);
}
register_sub_func(jitter, module_start_start_code, scheme_eof);
}
return 1;