2006-08-29 Aleksey Demakov <ademakov@gmail.com>
+ * jit/jit-insn.c (jit_insn_return, jit_insn_return_ptr): do not pop
+ the setjmp context for the interpreter backend because it takes care
+ of this by itself.
+
* jit/jit-rules.h, jit/jit-rules-alpha.c, jit/jit-rules-arm.c,
* jit/jit-rules-interp.c, jit/jit-rules-x86.c, jit/jit-reg-alloc.c:
move part of the _jit_gen_exch_top() functionality into a separate
return 0;
}
+#if !defined(JIT_BACKEND_INTERP)
/* We need to pop the "setjmp" context */
if(func->has_try)
{
(void *)_jit_unwind_pop_setjmp, type, 0, 0, JIT_CALL_NOTHROW);
jit_type_free(type);
}
+#endif
/* This function has an ordinary return path */
func->builder->ordinary_return = 1;
return 0;
}
+#if !defined(JIT_BACKEND_INTERP)
/* We need to pop the "setjmp" context */
if(func->has_try)
{
(void *)_jit_unwind_pop_setjmp, type, 0, 0, JIT_CALL_NOTHROW);
jit_type_free(type);
}
+#endif
/* This function has an ordinary return path */
func->builder->ordinary_return = 1;
int jit_insn_mark_offset(jit_function_t func, jit_int offset)
{
#if 1
- /*|| !USE_NEW_REG_ALLOC*/
+/*!USE_NEW_REG_ALLOC*/
if(!jit_insn_new_block(func))
{
return 0;