summaryrefslogtreecommitdiff
path: root/vm_exec.h
diff options
context:
space:
mode:
Diffstat (limited to 'vm_exec.h')
-rw-r--r--vm_exec.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/vm_exec.h b/vm_exec.h
index 152410a6a7..11b89c30fc 100644
--- a/vm_exec.h
+++ b/vm_exec.h
@@ -176,9 +176,9 @@ default: \
// Run the JIT from the interpreter
#define JIT_EXEC(ec, val) do { \
rb_jit_func_t func; \
- if (val == Qundef && (func = jit_compile(ec))) { \
+ /* don't run tailcalls since that breaks FINISH */ \
+ if (val == Qundef && GET_CFP() != ec->cfp && (func = jit_compile(ec))) { \
val = func(ec, ec->cfp); \
- RESTORE_REGS(); /* fix cfp for tailcall */ \
if (ec->tag->state) THROW_EXCEPTION(val); \
} \
} while (0)