summaryrefslogtreecommitdiff
path: root/vm_exec.h
diff options
context:
space:
mode:
Diffstat (limited to 'vm_exec.h')
-rw-r--r--vm_exec.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/vm_exec.h b/vm_exec.h
index e0ceb642b8..76bdea18ad 100644
--- a/vm_exec.h
+++ b/vm_exec.h
@@ -167,8 +167,26 @@ default: \
#endif
+#ifdef MJIT_HEADER
+#define EXEC_EC_CFP() do { \
+ VM_ENV_FLAGS_SET(ec->cfp->ep, VM_FRAME_FLAG_FINISH); \
+ val = vm_exec(ec); \
+} while (0)
+#else
+#define EXEC_EC_CFP() do { \
+ RESTORE_REGS(); \
+ NEXT_INSN(); \
+} while (0)
+#endif
+
#define VM_SP_CNT(ec, sp) ((sp) - (ec)->vm_stack)
+#ifdef MJIT_HEADER
+#define THROW_EXCEPTION(exc) do { \
+ ec->errinfo = (VALUE)(exc); \
+ EC_JUMP_TAG(ec, ec->tag->state); \
+} while (0)
+#else
#if OPT_CALL_THREADED_CODE
#define THROW_EXCEPTION(exc) do { \
ec->errinfo = (VALUE)(exc); \
@@ -177,6 +195,7 @@ default: \
#else
#define THROW_EXCEPTION(exc) return (VALUE)(exc)
#endif
+#endif
#define SCREG(r) (reg_##r)