JIT: add missing RUNSTACK register sync before #%variable-reference allocation
svn: r15449
This commit is contained in:
parent
ecdb1b6923
commit
ba64a8e5c6
|
@ -6201,6 +6201,7 @@ static int generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int m
|
||||||
jit_ldxi_p(JIT_R2, JIT_R2, WORDS_TO_BYTES(pos));
|
jit_ldxi_p(JIT_R2, JIT_R2, WORDS_TO_BYTES(pos));
|
||||||
CHECK_LIMIT();
|
CHECK_LIMIT();
|
||||||
|
|
||||||
|
JIT_UPDATE_THREAD_RSPTR_IF_NEEDED();
|
||||||
mz_prepare(1);
|
mz_prepare(1);
|
||||||
jit_pusharg_p(JIT_R2);
|
jit_pusharg_p(JIT_R2);
|
||||||
(void)mz_finish(make_global_ref);
|
(void)mz_finish(make_global_ref);
|
||||||
|
|
|
@ -737,6 +737,11 @@ static Scheme_Object *prop_pred(int argc, Scheme_Object **args, Scheme_Object *p
|
||||||
Scheme_Struct_Type *stype;
|
Scheme_Struct_Type *stype;
|
||||||
Scheme_Object *prop = SCHEME_PRIM_CLOSURE_ELS(prim)[0];
|
Scheme_Object *prop = SCHEME_PRIM_CLOSURE_ELS(prim)[0];
|
||||||
|
|
||||||
|
if (!args[0]) {
|
||||||
|
printf("%p\n", prim);
|
||||||
|
return scheme_false;
|
||||||
|
}
|
||||||
|
|
||||||
if (SCHEME_STRUCTP(args[0]))
|
if (SCHEME_STRUCTP(args[0]))
|
||||||
stype = ((Scheme_Structure *)args[0])->stype;
|
stype = ((Scheme_Structure *)args[0])->stype;
|
||||||
else if (SAME_TYPE(SCHEME_TYPE(args[0]), scheme_struct_type_type))
|
else if (SAME_TYPE(SCHEME_TYPE(args[0]), scheme_struct_type_type))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user