diff options
-rw-r--r-- | common.mk | 6 | ||||
-rw-r--r-- | mjit.h | 36 |
2 files changed, 25 insertions, 17 deletions
@@ -3200,7 +3200,6 @@ cont.$(OBJEXT): $(top_srcdir)/internal/compilers.h cont.$(OBJEXT): $(top_srcdir)/internal/cont.h cont.$(OBJEXT): $(top_srcdir)/internal/gc.h cont.$(OBJEXT): $(top_srcdir)/internal/imemo.h -cont.$(OBJEXT): $(top_srcdir)/internal/mjit.h cont.$(OBJEXT): $(top_srcdir)/internal/proc.h cont.$(OBJEXT): $(top_srcdir)/internal/scheduler.h cont.$(OBJEXT): $(top_srcdir)/internal/serial.h @@ -5216,7 +5215,6 @@ eval.$(OBJEXT): $(top_srcdir)/internal/hash.h eval.$(OBJEXT): $(top_srcdir)/internal/imemo.h eval.$(OBJEXT): $(top_srcdir)/internal/inits.h eval.$(OBJEXT): $(top_srcdir)/internal/io.h -eval.$(OBJEXT): $(top_srcdir)/internal/mjit.h eval.$(OBJEXT): $(top_srcdir)/internal/object.h eval.$(OBJEXT): $(top_srcdir)/internal/scheduler.h eval.$(OBJEXT): $(top_srcdir)/internal/serial.h @@ -8418,7 +8416,6 @@ mjit.$(OBJEXT): $(top_srcdir)/internal/file.h mjit.$(OBJEXT): $(top_srcdir)/internal/gc.h mjit.$(OBJEXT): $(top_srcdir)/internal/hash.h mjit.$(OBJEXT): $(top_srcdir)/internal/imemo.h -mjit.$(OBJEXT): $(top_srcdir)/internal/mjit.h mjit.$(OBJEXT): $(top_srcdir)/internal/serial.h mjit.$(OBJEXT): $(top_srcdir)/internal/static_assert.h mjit.$(OBJEXT): $(top_srcdir)/internal/vm.h @@ -10001,7 +9998,6 @@ process.$(OBJEXT): $(top_srcdir)/internal/eval.h process.$(OBJEXT): $(top_srcdir)/internal/gc.h process.$(OBJEXT): $(top_srcdir)/internal/hash.h process.$(OBJEXT): $(top_srcdir)/internal/imemo.h -process.$(OBJEXT): $(top_srcdir)/internal/mjit.h process.$(OBJEXT): $(top_srcdir)/internal/object.h process.$(OBJEXT): $(top_srcdir)/internal/process.h process.$(OBJEXT): $(top_srcdir)/internal/scheduler.h @@ -10175,6 +10171,7 @@ process.$(OBJEXT): {$(VPATH)}internal/xmalloc.h process.$(OBJEXT): {$(VPATH)}io.h process.$(OBJEXT): {$(VPATH)}method.h process.$(OBJEXT): {$(VPATH)}missing.h +process.$(OBJEXT): {$(VPATH)}mjit.h process.$(OBJEXT): {$(VPATH)}node.h process.$(OBJEXT): {$(VPATH)}onigmo.h process.$(OBJEXT): {$(VPATH)}oniguruma.h @@ -15327,7 +15324,6 @@ vm.$(OBJEXT): $(top_srcdir)/internal/gc.h vm.$(OBJEXT): $(top_srcdir)/internal/hash.h vm.$(OBJEXT): $(top_srcdir)/internal/imemo.h vm.$(OBJEXT): $(top_srcdir)/internal/inits.h -vm.$(OBJEXT): $(top_srcdir)/internal/mjit.h vm.$(OBJEXT): $(top_srcdir)/internal/numeric.h vm.$(OBJEXT): $(top_srcdir)/internal/object.h vm.$(OBJEXT): $(top_srcdir)/internal/parse.h @@ -9,8 +9,9 @@ **********************************************************************/ #include "ruby/internal/config.h" +#include "ruby/internal/stdbool.h" -#if USE_MJIT +# if USE_MJIT #include "debug_counter.h" #include "ruby.h" @@ -112,11 +113,11 @@ mjit_target_iseq_p(struct rb_iseq_constant_body *body) && body->iseq_size < JIT_ISEQ_SIZE_THRESHOLD; } -#ifdef MJIT_HEADER +# ifdef MJIT_HEADER NOINLINE(static COLDFUNC VALUE mjit_exec_slowpath(rb_execution_context_t *ec, const rb_iseq_t *iseq, struct rb_iseq_constant_body *body)); -#else +# else static inline VALUE mjit_exec_slowpath(rb_execution_context_t *ec, const rb_iseq_t *iseq, struct rb_iseq_constant_body *body); -#endif +# endif static VALUE mjit_exec_slowpath(rb_execution_context_t *ec, const rb_iseq_t *iseq, struct rb_iseq_constant_body *body) { @@ -162,26 +163,32 @@ mjit_exec(rb_execution_context_t *ec) mjit_func_t func = body->jit_func; if (UNLIKELY((uintptr_t)func <= LAST_JIT_ISEQ_FUNC)) { -# ifdef MJIT_HEADER +# ifdef MJIT_HEADER RB_DEBUG_COUNTER_INC(mjit_frame_JT2VM); -# else +# else RB_DEBUG_COUNTER_INC(mjit_frame_VM2VM); -# endif +# endif return mjit_exec_slowpath(ec, iseq, body); } -# ifdef MJIT_HEADER +# ifdef MJIT_HEADER RB_DEBUG_COUNTER_INC(mjit_frame_JT2JT); -# else +# else RB_DEBUG_COUNTER_INC(mjit_frame_VM2JT); -# endif +# endif RB_DEBUG_COUNTER_INC(mjit_exec_call_func); return func(ec, ec->cfp); } void mjit_child_after_fork(void); -#else // USE_MJIT +extern bool mjit_enabled; +VALUE mjit_pause(bool wait_p); +VALUE mjit_resume(void); +void mjit_finish(bool close_handle_p); + +# else // USE_MJIT + static inline struct mjit_cont *mjit_cont_new(rb_execution_context_t *ec){return NULL;} static inline void mjit_cont_free(struct mjit_cont *cont){} static inline void mjit_gc_start_hook(void){} @@ -193,5 +200,10 @@ static inline void mjit_remove_class_serial(rb_serial_t class_serial){} static inline VALUE mjit_exec(rb_execution_context_t *ec) { return Qundef; /* unreachable */ } static inline void mjit_child_after_fork(void){} -#endif // USE_MJIT +#define mjit_enabled 0 +static inline VALUE mjit_pause(bool wait_p){ return Qnil; } // unreachable +static inline VALUE mjit_resume(void){ return Qnil; } // unreachable +static inline void mjit_finish(bool close_handle_p){} + +# endif // USE_MJIT #endif // RUBY_MJIT_H |