bugfix in the gate evaluate_value_lambda

This commit is contained in:
kr.angelov
2014-09-30 08:42:06 +00:00
parent eece5aa9be
commit 9fd8d5d019
3 changed files with 31 additions and 22 deletions

View File

@@ -569,23 +569,14 @@ pgf_jit_gates(PgfReader* rdr)
gates->evaluate_value_lambda = jit_get_ip().ptr;
jit_subr_p(JIT_R0, JIT_FP, JIT_SP);
jit_blti_i(gates->update_pap, JIT_R0, 2*sizeof(PgfClosure*));
jit_prepare(2);
jit_movi_i(JIT_R0, sizeof(PgfEnv));
jit_pusharg_ui(JIT_R0);
jit_ldxi_p(JIT_R0, JIT_VSTATE, offsetof(PgfEvalState,pool));
jit_pusharg_p(JIT_R0);
jit_finish(gu_malloc);
jit_popr_p(JIT_R2);
jit_ldxi_p(JIT_R1, JIT_VCLOS, offsetof(PgfExprThunk,env));
jit_stxi_p(offsetof(PgfEnv,next), JIT_RET, JIT_R1);
jit_popr_p(JIT_R1);
jit_stxi_p(offsetof(PgfEnv,closure), JIT_RET, JIT_R1);
jit_stxi_p(offsetof(PgfExprThunk,env), JIT_VCLOS, JIT_RET);
jit_pushr_p(JIT_R2);
jit_prepare(2);
jit_prepare(3);
jit_pusharg_p(JIT_R1);
jit_pusharg_p(JIT_VCLOS);
jit_pusharg_p(JIT_VSTATE);
jit_finish(pgf_evaluate_expr_thunk);
jit_finish(pgf_evaluate_lambda_application);
jit_retval(JIT_VCLOS);
jit_ldr_p(JIT_R0, JIT_VCLOS);
jit_jmpr(JIT_R0);