]> git.unchartedbackwaters.co.uk Git - francis/libjit.git/commitdiff
delete extra popping of setjmp context for interpreter
authorAleksey Demakov <ademakov@gmail.com>
Tue, 29 Aug 2006 13:29:35 +0000 (13:29 +0000)
committerAleksey Demakov <ademakov@gmail.com>
Tue, 29 Aug 2006 13:29:35 +0000 (13:29 +0000)
ChangeLog
jit/jit-insn.c

index a39fd3a6ae4adc51d6c636b4b412be591906444a..69dcfb83dd4e308de21adaf0d6f752ecb86cd093 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 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
index fa37ecb14c7872bac76ac32784606f72596244ea..1f031d24fb246a65b66e732b2cdc8e28e25b428d 100644 (file)
@@ -6737,6 +6737,7 @@ int jit_insn_return(jit_function_t func, jit_value_t value)
                return 0;
        }
 
+#if !defined(JIT_BACKEND_INTERP)
        /* We need to pop the "setjmp" context */
        if(func->has_try)
        {
@@ -6751,6 +6752,7 @@ int jit_insn_return(jit_function_t func, jit_value_t value)
                         (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;
@@ -6905,6 +6907,7 @@ int jit_insn_return_ptr
                return 0;
        }
 
+#if !defined(JIT_BACKEND_INTERP)
        /* We need to pop the "setjmp" context */
        if(func->has_try)
        {
@@ -6919,6 +6922,7 @@ int jit_insn_return_ptr
                         (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;
@@ -8009,7 +8013,7 @@ int jit_insn_move_blocks_to_start
 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;