diff options
author | Alan Wu <XrXr@users.noreply.github.com> | 2021-03-12 12:22:19 -0500 |
---|---|---|
committer | Alan Wu <XrXr@users.noreply.github.com> | 2021-10-20 18:19:31 -0400 |
commit | 5d834bcf9fb9596fd15f9e657a94caa8716b3f10 (patch) | |
tree | 6ae91f07eb1172c40966f7631e204d827a0f17f0 | |
parent | 439db7b81b588a1ee12475568cab7b8dab4e2cd3 (diff) |
YJIT: lazy polymorphic getinstancevariable
Lazily compile out a chain of checks for different known classes and
whether `self` embeds its ivars or not.
* Remove trailing whitespaces
* Get proper addresss in Capstone disassembly
* Lowercase address in Capstone disassembly
Capstone uses lowercase for jump targets in generated listings. Let's
match it.
* Use the same successor in getivar guard chains
Cuts down on duplication
* Address reviews
* Fix copypasta error
* Add a comment
-rw-r--r-- | bootstraptest/test_yjit.rb | 60 | ||||
-rw-r--r-- | common.mk | 1631 | ||||
-rw-r--r-- | tool/ruby_vm/models/instructions.rb | 1 | ||||
-rw-r--r-- | vm_insnhelper.c | 6 | ||||
-rw-r--r-- | yjit.rb | 9 | ||||
-rw-r--r-- | yjit_codegen.c | 247 | ||||
-rw-r--r-- | yjit_core.c | 17 | ||||
-rw-r--r-- | yjit_iface.c | 6 | ||||
-rw-r--r-- | yjit_iface.h | 4 |
9 files changed, 1093 insertions, 888 deletions
diff --git a/bootstraptest/test_yjit.rb b/bootstraptest/test_yjit.rb index eac75d38a5..4750ac5fe8 100644 --- a/bootstraptest/test_yjit.rb +++ b/bootstraptest/test_yjit.rb @@ -301,3 +301,63 @@ assert_equal "good", %q{ foo } + +# Test polymorphic getinstancevariable. T_OBJECT -> T_STRING +assert_equal 'ok', %q{ + @hello = @h1 = @h2 = @h3 = @h4 = 'ok' + str = "" + str.instance_variable_set(:@hello, 'ok') + + public def get + @hello + end + + get + get + str.get + str.get +} + +# Test polymorphic getinstancevariable, two different classes +assert_equal 'ok', %q{ + class Embedded + def initialize + @ivar = 0 + end + + def get + @ivar + end + end + + class Extended < Embedded + def initialize + @v1 = @v2 = @v3 = @v4 = @ivar = 'ok' + end + end + + embed = Embedded.new + extend = Extended.new + + embed.get + embed.get + extend.get + extend.get +} + +# Test megamorphic getinstancevariable +assert_equal 'ok', %q{ + parent = Class.new do + def initialize + @hello = @h1 = @h2 = @h3 = @h4 = 'ok' + end + + def get + @hello + end + end + + subclasses = 300.times.map { Class.new(parent) } + subclasses.each { _1.new.get } + parent.new.get +} @@ -3102,12 +3102,12 @@ compile.$(OBJEXT): {$(VPATH)}st.h compile.$(OBJEXT): {$(VPATH)}subst.h compile.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h compile.$(OBJEXT): {$(VPATH)}thread_native.h -compile.$(OBJEXT): {$(VPATH)}yjit.h compile.$(OBJEXT): {$(VPATH)}util.h compile.$(OBJEXT): {$(VPATH)}vm_callinfo.h compile.$(OBJEXT): {$(VPATH)}vm_core.h compile.$(OBJEXT): {$(VPATH)}vm_debug.h compile.$(OBJEXT): {$(VPATH)}vm_opts.h +compile.$(OBJEXT): {$(VPATH)}yjit.h complex.$(OBJEXT): $(hdrdir)/ruby.h complex.$(OBJEXT): $(hdrdir)/ruby/ruby.h complex.$(OBJEXT): $(top_srcdir)/internal/array.h @@ -3483,10 +3483,10 @@ cont.$(OBJEXT): {$(VPATH)}st.h cont.$(OBJEXT): {$(VPATH)}subst.h cont.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h cont.$(OBJEXT): {$(VPATH)}thread_native.h -cont.$(OBJEXT): {$(VPATH)}yjit.h cont.$(OBJEXT): {$(VPATH)}vm_core.h cont.$(OBJEXT): {$(VPATH)}vm_debug.h cont.$(OBJEXT): {$(VPATH)}vm_opts.h +cont.$(OBJEXT): {$(VPATH)}yjit.h debug.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h debug.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h debug.$(OBJEXT): $(CCAN_DIR)/list/list.h @@ -5577,11 +5577,11 @@ eval.$(OBJEXT): {$(VPATH)}st.h eval.$(OBJEXT): {$(VPATH)}subst.h eval.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h eval.$(OBJEXT): {$(VPATH)}thread_native.h -eval.$(OBJEXT): {$(VPATH)}yjit.h eval.$(OBJEXT): {$(VPATH)}vm.h eval.$(OBJEXT): {$(VPATH)}vm_core.h eval.$(OBJEXT): {$(VPATH)}vm_debug.h eval.$(OBJEXT): {$(VPATH)}vm_opts.h +eval.$(OBJEXT): {$(VPATH)}yjit.h explicit_bzero.$(OBJEXT): {$(VPATH)}config.h explicit_bzero.$(OBJEXT): {$(VPATH)}explicit_bzero.c explicit_bzero.$(OBJEXT): {$(VPATH)}internal/attr/format.h @@ -6027,13 +6027,13 @@ gc.$(OBJEXT): {$(VPATH)}thread.h gc.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h gc.$(OBJEXT): {$(VPATH)}thread_native.h gc.$(OBJEXT): {$(VPATH)}transient_heap.h -gc.$(OBJEXT): {$(VPATH)}yjit.h gc.$(OBJEXT): {$(VPATH)}util.h gc.$(OBJEXT): {$(VPATH)}vm_callinfo.h gc.$(OBJEXT): {$(VPATH)}vm_core.h gc.$(OBJEXT): {$(VPATH)}vm_debug.h gc.$(OBJEXT): {$(VPATH)}vm_opts.h gc.$(OBJEXT): {$(VPATH)}vm_sync.h +gc.$(OBJEXT): {$(VPATH)}yjit.h goruby.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h goruby.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h goruby.$(OBJEXT): $(CCAN_DIR)/list/list.h @@ -7020,12 +7020,12 @@ iseq.$(OBJEXT): {$(VPATH)}st.h iseq.$(OBJEXT): {$(VPATH)}subst.h iseq.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h iseq.$(OBJEXT): {$(VPATH)}thread_native.h -iseq.$(OBJEXT): {$(VPATH)}yjit.h -iseq.$(OBJEXT): {$(VPATH)}yjit_asm.h iseq.$(OBJEXT): {$(VPATH)}util.h iseq.$(OBJEXT): {$(VPATH)}vm_callinfo.h iseq.$(OBJEXT): {$(VPATH)}vm_core.h iseq.$(OBJEXT): {$(VPATH)}vm_opts.h +iseq.$(OBJEXT): {$(VPATH)}yjit.h +iseq.$(OBJEXT): {$(VPATH)}yjit_asm.h load.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h load.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h load.$(OBJEXT): $(CCAN_DIR)/list/list.h @@ -8474,10 +8474,10 @@ miniinit.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h miniinit.$(OBJEXT): {$(VPATH)}thread_native.h miniinit.$(OBJEXT): {$(VPATH)}timev.rb miniinit.$(OBJEXT): {$(VPATH)}trace_point.rb -miniinit.$(OBJEXT): {$(VPATH)}yjit.rb miniinit.$(OBJEXT): {$(VPATH)}vm_core.h miniinit.$(OBJEXT): {$(VPATH)}vm_opts.h miniinit.$(OBJEXT): {$(VPATH)}warning.rb +miniinit.$(OBJEXT): {$(VPATH)}yjit.rb miniprelude.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h miniprelude.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h miniprelude.$(OBJEXT): $(CCAN_DIR)/list/list.h @@ -8723,13 +8723,13 @@ mjit.$(OBJEXT): {$(VPATH)}subst.h mjit.$(OBJEXT): {$(VPATH)}thread.h mjit.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h mjit.$(OBJEXT): {$(VPATH)}thread_native.h -mjit.$(OBJEXT): {$(VPATH)}yjit.h mjit.$(OBJEXT): {$(VPATH)}util.h mjit.$(OBJEXT): {$(VPATH)}vm_callinfo.h mjit.$(OBJEXT): {$(VPATH)}vm_core.h mjit.$(OBJEXT): {$(VPATH)}vm_debug.h mjit.$(OBJEXT): {$(VPATH)}vm_opts.h mjit.$(OBJEXT): {$(VPATH)}vm_sync.h +mjit.$(OBJEXT): {$(VPATH)}yjit.h mjit_build_dir.$(OBJEXT): {$(VPATH)}config.h mjit_build_dir.$(OBJEXT): {$(VPATH)}internal/compiler_is.h mjit_build_dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h @@ -8937,12 +8937,12 @@ mjit_compile.$(OBJEXT): {$(VPATH)}st.h mjit_compile.$(OBJEXT): {$(VPATH)}subst.h mjit_compile.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h mjit_compile.$(OBJEXT): {$(VPATH)}thread_native.h -mjit_compile.$(OBJEXT): {$(VPATH)}yjit.h mjit_compile.$(OBJEXT): {$(VPATH)}vm_callinfo.h mjit_compile.$(OBJEXT): {$(VPATH)}vm_core.h mjit_compile.$(OBJEXT): {$(VPATH)}vm_exec.h mjit_compile.$(OBJEXT): {$(VPATH)}vm_insnhelper.h mjit_compile.$(OBJEXT): {$(VPATH)}vm_opts.h +mjit_compile.$(OBJEXT): {$(VPATH)}yjit.h node.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h node.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h node.$(OBJEXT): $(CCAN_DIR)/list/list.h @@ -10372,10 +10372,10 @@ process.$(OBJEXT): {$(VPATH)}subst.h process.$(OBJEXT): {$(VPATH)}thread.h process.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h process.$(OBJEXT): {$(VPATH)}thread_native.h -process.$(OBJEXT): {$(VPATH)}yjit.h process.$(OBJEXT): {$(VPATH)}util.h process.$(OBJEXT): {$(VPATH)}vm_core.h process.$(OBJEXT): {$(VPATH)}vm_opts.h +process.$(OBJEXT): {$(VPATH)}yjit.h ractor.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h ractor.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h ractor.$(OBJEXT): $(CCAN_DIR)/list/list.h @@ -10590,12 +10590,12 @@ ractor.$(OBJEXT): {$(VPATH)}thread.h ractor.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h ractor.$(OBJEXT): {$(VPATH)}thread_native.h ractor.$(OBJEXT): {$(VPATH)}transient_heap.h -ractor.$(OBJEXT): {$(VPATH)}yjit.h ractor.$(OBJEXT): {$(VPATH)}variable.h ractor.$(OBJEXT): {$(VPATH)}vm_core.h ractor.$(OBJEXT): {$(VPATH)}vm_debug.h ractor.$(OBJEXT): {$(VPATH)}vm_opts.h ractor.$(OBJEXT): {$(VPATH)}vm_sync.h +ractor.$(OBJEXT): {$(VPATH)}yjit.h random.$(OBJEXT): $(hdrdir)/ruby.h random.$(OBJEXT): $(hdrdir)/ruby/ruby.h random.$(OBJEXT): $(top_srcdir)/internal/array.h @@ -12533,10 +12533,10 @@ ruby.$(OBJEXT): {$(VPATH)}subst.h ruby.$(OBJEXT): {$(VPATH)}thread.h ruby.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h ruby.$(OBJEXT): {$(VPATH)}thread_native.h -ruby.$(OBJEXT): {$(VPATH)}yjit.h ruby.$(OBJEXT): {$(VPATH)}util.h ruby.$(OBJEXT): {$(VPATH)}vm_core.h ruby.$(OBJEXT): {$(VPATH)}vm_opts.h +ruby.$(OBJEXT): {$(VPATH)}yjit.h scheduler.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h scheduler.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h scheduler.$(OBJEXT): $(CCAN_DIR)/list/list.h @@ -14500,11 +14500,11 @@ thread.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h thread.$(OBJEXT): {$(VPATH)}thread_native.h thread.$(OBJEXT): {$(VPATH)}thread_sync.c thread.$(OBJEXT): {$(VPATH)}timev.h -thread.$(OBJEXT): {$(VPATH)}yjit.h thread.$(OBJEXT): {$(VPATH)}vm_core.h thread.$(OBJEXT): {$(VPATH)}vm_debug.h thread.$(OBJEXT): {$(VPATH)}vm_opts.h thread.$(OBJEXT): {$(VPATH)}vm_sync.h +thread.$(OBJEXT): {$(VPATH)}yjit.h time.$(OBJEXT): $(hdrdir)/ruby.h time.$(OBJEXT): $(hdrdir)/ruby/ruby.h time.$(OBJEXT): $(top_srcdir)/internal/array.h @@ -15077,802 +15077,6 @@ transient_heap.$(OBJEXT): {$(VPATH)}vm_core.h transient_heap.$(OBJEXT): {$(VPATH)}vm_debug.h transient_heap.$(OBJEXT): {$(VPATH)}vm_opts.h transient_heap.$(OBJEXT): {$(VPATH)}vm_sync.h -yjit_asm.$(OBJEXT): {$(VPATH)}yjit_asm.c -yjit_asm.$(OBJEXT): {$(VPATH)}yjit_asm.h -yjit_codegen.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h -yjit_codegen.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h -yjit_codegen.$(OBJEXT): $(CCAN_DIR)/list/list.h -yjit_codegen.$(OBJEXT): $(CCAN_DIR)/str/str.h -yjit_codegen.$(OBJEXT): $(hdrdir)/ruby/ruby.h -yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/array.h -yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/class.h -yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/compile.h -yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/compilers.h -yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/gc.h -yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/imemo.h -yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/serial.h -yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/static_assert.h -yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/vm.h -yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/warnings.h -yjit_codegen.$(OBJEXT): {$(VPATH)}assert.h -yjit_codegen.$(OBJEXT): {$(VPATH)}atomic.h -yjit_codegen.$(OBJEXT): {$(VPATH)}backward/2/assume.h -yjit_codegen.$(OBJEXT): {$(VPATH)}backward/2/attributes.h -yjit_codegen.$(OBJEXT): {$(VPATH)}backward/2/bool.h -yjit_codegen.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h -yjit_codegen.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h -yjit_codegen.$(OBJEXT): {$(VPATH)}backward/2/limits.h -yjit_codegen.$(OBJEXT): {$(VPATH)}backward/2/long_long.h -yjit_codegen.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h -yjit_codegen.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h -yjit_codegen.$(OBJEXT): {$(VPATH)}builtin.h -yjit_codegen.$(OBJEXT): {$(VPATH)}config.h -yjit_codegen.$(OBJEXT): {$(VPATH)}darray.h -yjit_codegen.$(OBJEXT): {$(VPATH)}debug_counter.h -yjit_codegen.$(OBJEXT): {$(VPATH)}defines.h -yjit_codegen.$(OBJEXT): {$(VPATH)}id.h -yjit_codegen.$(OBJEXT): {$(VPATH)}id_table.h -yjit_codegen.$(OBJEXT): {$(VPATH)}insns.def -yjit_codegen.$(OBJEXT): {$(VPATH)}insns.inc -yjit_codegen.$(OBJEXT): {$(VPATH)}insns_info.inc -yjit_codegen.$(OBJEXT): {$(VPATH)}intern.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/anyargs.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/assume.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/cold.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/const.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/error.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/format.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/pure.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/warning.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/cast.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/compiler_is.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/compiler_since.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/config.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/constant_p.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rarray.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rclass.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rdata.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rfile.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rhash.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/robject.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rstring.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/ctype.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/dllexport.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/dosish.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/error.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/eval.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/event.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/fl_type.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/gc.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/glob.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/globals.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/has/attribute.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/has/builtin.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/has/extension.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/has/feature.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/has/warning.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/array.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/class.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/compar.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/complex.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/cont.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/dir.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/enum.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/error.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/eval.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/file.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/gc.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/hash.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/io.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/load.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/object.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/parse.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/proc.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/process.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/random.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/range.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/rational.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/re.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/select.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/signal.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/string.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/struct.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/thread.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/time.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/variable.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/vm.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/interpreter.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/iterator.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/memory.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/method.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/module.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/newobj.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/rgengc.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/scan_args.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/special_consts.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/static_assert.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/stdalign.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/stdbool.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/symbol.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/token_paste.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/value.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/value_type.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/variable.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/warning_push.h -yjit_codegen.$(OBJEXT): {$(VPATH)}internal/xmalloc.h -yjit_codegen.$(OBJEXT): {$(VPATH)}iseq.h -yjit_codegen.$(OBJEXT): {$(VPATH)}method.h -yjit_codegen.$(OBJEXT): {$(VPATH)}missing.h -yjit_codegen.$(OBJEXT): {$(VPATH)}node.h -yjit_codegen.$(OBJEXT): {$(VPATH)}ruby_assert.h -yjit_codegen.$(OBJEXT): {$(VPATH)}ruby_atomic.h -yjit_codegen.$(OBJEXT): {$(VPATH)}st.h -yjit_codegen.$(OBJEXT): {$(VPATH)}subst.h -yjit_codegen.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h -yjit_codegen.$(OBJEXT): {$(VPATH)}thread_native.h -yjit_codegen.$(OBJEXT): {$(VPATH)}yjit.h -yjit_codegen.$(OBJEXT): {$(VPATH)}yjit_asm.h -yjit_codegen.$(OBJEXT): {$(VPATH)}yjit_codegen.c -yjit_codegen.$(OBJEXT): {$(VPATH)}yjit_codegen.h -yjit_codegen.$(OBJEXT): {$(VPATH)}yjit_core.h -yjit_codegen.$(OBJEXT): {$(VPATH)}yjit_iface.h -yjit_codegen.$(OBJEXT): {$(VPATH)}yjit_utils.h -yjit_codegen.$(OBJEXT): {$(VPATH)}vm_callinfo.h -yjit_codegen.$(OBJEXT): {$(VPATH)}vm_core.h -yjit_codegen.$(OBJEXT): {$(VPATH)}vm_debug.h -yjit_codegen.$(OBJEXT): {$(VPATH)}vm_opts.h -yjit_codegen.$(OBJEXT): {$(VPATH)}vm_sync.h -yjit_compile.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h -yjit_compile.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h -yjit_compile.$(OBJEXT): $(CCAN_DIR)/list/list.h -yjit_compile.$(OBJEXT): $(CCAN_DIR)/str/str.h -yjit_compile.$(OBJEXT): $(hdrdir)/ruby/ruby.h -yjit_compile.$(OBJEXT): $(top_srcdir)/internal/array.h -yjit_compile.$(OBJEXT): $(top_srcdir)/internal/compile.h -yjit_compile.$(OBJEXT): $(top_srcdir)/internal/compilers.h -yjit_compile.$(OBJEXT): $(top_srcdir)/internal/gc.h -yjit_compile.$(OBJEXT): $(top_srcdir)/internal/imemo.h -yjit_compile.$(OBJEXT): $(top_srcdir)/internal/serial.h -yjit_compile.$(OBJEXT): $(top_srcdir)/internal/static_assert.h -yjit_compile.$(OBJEXT): $(top_srcdir)/internal/vm.h -yjit_compile.$(OBJEXT): $(top_srcdir)/internal/warnings.h -yjit_compile.$(OBJEXT): {$(VPATH)}assert.h -yjit_compile.$(OBJEXT): {$(VPATH)}backward/2/assume.h -yjit_compile.$(OBJEXT): {$(VPATH)}backward/2/attributes.h -yjit_compile.$(OBJEXT): {$(VPATH)}backward/2/bool.h -yjit_compile.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h -yjit_compile.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h -yjit_compile.$(OBJEXT): {$(VPATH)}backward/2/limits.h -yjit_compile.$(OBJEXT): {$(VPATH)}backward/2/long_long.h -yjit_compile.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h -yjit_compile.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h -yjit_compile.$(OBJEXT): {$(VPATH)}builtin.h -yjit_compile.$(OBJEXT): {$(VPATH)}config.h -yjit_compile.$(OBJEXT): {$(VPATH)}debug_counter.h -yjit_compile.$(OBJEXT): {$(VPATH)}defines.h -yjit_compile.$(OBJEXT): {$(VPATH)}id.h -yjit_compile.$(OBJEXT): {$(VPATH)}insns.def -yjit_compile.$(OBJEXT): {$(VPATH)}insns.inc -yjit_compile.$(OBJEXT): {$(VPATH)}insns_info.inc -yjit_compile.$(OBJEXT): {$(VPATH)}intern.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/anyargs.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/assume.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/cold.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/const.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/error.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/format.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/pure.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/warning.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/cast.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_since.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/config.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/constant_p.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/core.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rarray.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rclass.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rdata.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rfile.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rhash.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/robject.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rstring.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/ctype.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/dllexport.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/dosish.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/error.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/eval.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/event.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/fl_type.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/gc.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/glob.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/globals.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/has/attribute.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/has/builtin.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/has/extension.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/has/feature.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/has/warning.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/array.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/class.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/compar.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/complex.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/cont.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/dir.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/enum.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/error.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/eval.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/file.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/gc.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/hash.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/io.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/load.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/object.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/parse.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/proc.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/process.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/random.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/range.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/rational.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/re.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/select.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/signal.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/string.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/struct.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/thread.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/time.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/variable.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/vm.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/interpreter.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/iterator.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/memory.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/method.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/module.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/newobj.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/rgengc.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/scan_args.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/special_consts.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/static_assert.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/stdalign.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/stdbool.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/symbol.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/token_paste.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/value.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/value_type.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/variable.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/warning_push.h -yjit_compile.$(OBJEXT): {$(VPATH)}internal/xmalloc.h -yjit_compile.$(OBJEXT): {$(VPATH)}iseq.h -yjit_compile.$(OBJEXT): {$(VPATH)}method.h -yjit_compile.$(OBJEXT): {$(VPATH)}missing.h -yjit_compile.$(OBJEXT): {$(VPATH)}node.h -yjit_compile.$(OBJEXT): {$(VPATH)}ruby_assert.h -yjit_compile.$(OBJEXT): {$(VPATH)}ruby_atomic.h -yjit_compile.$(OBJEXT): {$(VPATH)}st.h -yjit_compile.$(OBJEXT): {$(VPATH)}subst.h -yjit_compile.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h -yjit_compile.$(OBJEXT): {$(VPATH)}thread_native.h -yjit_compile.$(OBJEXT): {$(VPATH)}yjit.h -yjit_compile.$(OBJEXT): {$(VPATH)}yjit_asm.h -yjit_compile.$(OBJEXT): {$(VPATH)}yjit_compile.c -yjit_compile.$(OBJEXT): {$(VPATH)}yjit_hooks.inc -yjit_compile.$(OBJEXT): {$(VPATH)}yjit_utils.h -yjit_compile.$(OBJEXT): {$(VPATH)}vm_callinfo.h -yjit_compile.$(OBJEXT): {$(VPATH)}vm_core.h -yjit_compile.$(OBJEXT): {$(VPATH)}vm_debug.h -yjit_compile.$(OBJEXT): {$(VPATH)}vm_opts.h -yjit_compile.$(OBJEXT): {$(VPATH)}vm_sync.h -yjit_core.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h -yjit_core.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h -yjit_core.$(OBJEXT): $(CCAN_DIR)/list/list.h -yjit_core.$(OBJEXT): $(CCAN_DIR)/str/str.h -yjit_core.$(OBJEXT): $(hdrdir)/ruby/ruby.h -yjit_core.$(OBJEXT): $(top_srcdir)/internal/array.h -yjit_core.$(OBJEXT): $(top_srcdir)/internal/compilers.h -yjit_core.$(OBJEXT): $(top_srcdir)/internal/gc.h -yjit_core.$(OBJEXT): $(top_srcdir)/internal/imemo.h -yjit_core.$(OBJEXT): $(top_srcdir)/internal/serial.h -yjit_core.$(OBJEXT): $(top_srcdir)/internal/static_assert.h -yjit_core.$(OBJEXT): $(top_srcdir)/internal/vm.h -yjit_core.$(OBJEXT): $(top_srcdir)/internal/warnings.h -yjit_core.$(OBJEXT): {$(VPATH)}assert.h -yjit_core.$(OBJEXT): {$(VPATH)}atomic.h -yjit_core.$(OBJEXT): {$(VPATH)}backward/2/assume.h -yjit_core.$(OBJEXT): {$(VPATH)}backward/2/attributes.h -yjit_core.$(OBJEXT): {$(VPATH)}backward/2/bool.h -yjit_core.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h -yjit_core.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h -yjit_core.$(OBJEXT): {$(VPATH)}backward/2/limits.h -yjit_core.$(OBJEXT): {$(VPATH)}backward/2/long_long.h -yjit_core.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h -yjit_core.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h -yjit_core.$(OBJEXT): {$(VPATH)}builtin.h -yjit_core.$(OBJEXT): {$(VPATH)}config.h -yjit_core.$(OBJEXT): {$(VPATH)}darray.h -yjit_core.$(OBJEXT): {$(VPATH)}debug_counter.h -yjit_core.$(OBJEXT): {$(VPATH)}defines.h -yjit_core.$(OBJEXT): {$(VPATH)}id.h -yjit_core.$(OBJEXT): {$(VPATH)}insns.def -yjit_core.$(OBJEXT): {$(VPATH)}insns.inc -yjit_core.$(OBJEXT): {$(VPATH)}insns_info.inc -yjit_core.$(OBJEXT): {$(VPATH)}intern.h -yjit_core.$(OBJEXT): {$(VPATH)}internal.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/anyargs.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/assume.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/cold.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/const.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/error.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/format.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/pure.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/warning.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/cast.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/compiler_is.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/compiler_since.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/config.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/constant_p.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/core.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rarray.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rclass.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rdata.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rfile.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rhash.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/core/robject.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rstring.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/ctype.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/dllexport.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/dosish.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/error.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/eval.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/event.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/fl_type.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/gc.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/glob.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/globals.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/has/attribute.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/has/builtin.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/has/extension.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/has/feature.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/has/warning.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/array.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/class.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/compar.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/complex.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/cont.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/dir.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/enum.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/error.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/eval.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/file.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/gc.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/hash.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/io.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/load.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/object.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/parse.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/proc.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/process.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/random.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/range.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/rational.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/re.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/select.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/signal.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/string.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/struct.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/thread.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/time.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/variable.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/vm.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/interpreter.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/iterator.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/memory.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/method.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/module.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/newobj.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/rgengc.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/scan_args.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/special_consts.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/static_assert.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/stdalign.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/stdbool.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/symbol.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/token_paste.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/value.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/value_type.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/variable.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/warning_push.h -yjit_core.$(OBJEXT): {$(VPATH)}internal/xmalloc.h -yjit_core.$(OBJEXT): {$(VPATH)}iseq.h -yjit_core.$(OBJEXT): {$(VPATH)}method.h -yjit_core.$(OBJEXT): {$(VPATH)}missing.h -yjit_core.$(OBJEXT): {$(VPATH)}node.h -yjit_core.$(OBJEXT): {$(VPATH)}ruby_assert.h -yjit_core.$(OBJEXT): {$(VPATH)}ruby_atomic.h -yjit_core.$(OBJEXT): {$(VPATH)}st.h -yjit_core.$(OBJEXT): {$(VPATH)}subst.h -yjit_core.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h -yjit_core.$(OBJEXT): {$(VPATH)}thread_native.h -yjit_core.$(OBJEXT): {$(VPATH)}yjit_asm.h -yjit_core.$(OBJEXT): {$(VPATH)}yjit_codegen.h -yjit_core.$(OBJEXT): {$(VPATH)}yjit_core.c -yjit_core.$(OBJEXT): {$(VPATH)}yjit_core.h -yjit_core.$(OBJEXT): {$(VPATH)}yjit_iface.h -yjit_core.$(OBJEXT): {$(VPATH)}yjit_utils.h -yjit_core.$(OBJEXT): {$(VPATH)}vm_callinfo.h -yjit_core.$(OBJEXT): {$(VPATH)}vm_core.h -yjit_core.$(OBJEXT): {$(VPATH)}vm_debug.h -yjit_core.$(OBJEXT): {$(VPATH)}vm_opts.h -yjit_core.$(OBJEXT): {$(VPATH)}vm_sync.h -yjit_iface.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h -yjit_iface.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h -yjit_iface.$(OBJEXT): $(CCAN_DIR)/list/list.h -yjit_iface.$(OBJEXT): $(CCAN_DIR)/str/str.h -yjit_iface.$(OBJEXT): $(hdrdir)/ruby/ruby.h -yjit_iface.$(OBJEXT): $(top_srcdir)/internal/array.h -yjit_iface.$(OBJEXT): $(top_srcdir)/internal/class.h -yjit_iface.$(OBJEXT): $(top_srcdir)/internal/compile.h -yjit_iface.$(OBJEXT): $(top_srcdir)/internal/compilers.h -yjit_iface.$(OBJEXT): $(top_srcdir)/internal/gc.h -yjit_iface.$(OBJEXT): $(top_srcdir)/internal/imemo.h -yjit_iface.$(OBJEXT): $(top_srcdir)/internal/serial.h -yjit_iface.$(OBJEXT): $(top_srcdir)/internal/static_assert.h -yjit_iface.$(OBJEXT): $(top_srcdir)/internal/vm.h -yjit_iface.$(OBJEXT): $(top_srcdir)/internal/warnings.h -yjit_iface.$(OBJEXT): {$(VPATH)}assert.h -yjit_iface.$(OBJEXT): {$(VPATH)}atomic.h -yjit_iface.$(OBJEXT): {$(VPATH)}backward/2/assume.h -yjit_iface.$(OBJEXT): {$(VPATH)}backward/2/attributes.h -yjit_iface.$(OBJEXT): {$(VPATH)}backward/2/bool.h -yjit_iface.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h -yjit_iface.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h -yjit_iface.$(OBJEXT): {$(VPATH)}backward/2/limits.h -yjit_iface.$(OBJEXT): {$(VPATH)}backward/2/long_long.h -yjit_iface.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h -yjit_iface.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h -yjit_iface.$(OBJEXT): {$(VPATH)}builtin.h -yjit_iface.$(OBJEXT): {$(VPATH)}config.h -yjit_iface.$(OBJEXT): {$(VPATH)}darray.h -yjit_iface.$(OBJEXT): {$(VPATH)}debug_counter.h -yjit_iface.$(OBJEXT): {$(VPATH)}defines.h -yjit_iface.$(OBJEXT): {$(VPATH)}id.h -yjit_iface.$(OBJEXT): {$(VPATH)}id_table.h -yjit_iface.$(OBJEXT): {$(VPATH)}insns.def -yjit_iface.$(OBJEXT): {$(VPATH)}insns.inc -yjit_iface.$(OBJEXT): {$(VPATH)}insns_info.inc -yjit_iface.$(OBJEXT): {$(VPATH)}intern.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/anyargs.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/assume.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/cold.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/const.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/error.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/format.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/pure.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/warning.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/cast.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/compiler_is.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/compiler_since.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/config.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/constant_p.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/core.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rarray.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rclass.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rdata.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rfile.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rhash.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/robject.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rstring.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/ctype.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/dllexport.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/dosish.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/error.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/eval.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/event.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/fl_type.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/gc.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/glob.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/globals.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/has/attribute.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/has/builtin.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/has/extension.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/has/feature.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/has/warning.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/array.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/class.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/compar.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/complex.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/cont.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/dir.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/enum.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/error.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/eval.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/file.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/gc.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/hash.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/io.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/load.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/object.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/parse.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/proc.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/process.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/random.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/range.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/rational.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/re.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/select.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/signal.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/string.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/struct.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/thread.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/time.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/variable.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/vm.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/interpreter.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/iterator.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/memory.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/method.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/module.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/newobj.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/rgengc.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/scan_args.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/special_consts.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/static_assert.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/stdalign.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/stdbool.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/symbol.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/token_paste.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/value.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/value_type.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/variable.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/warning_push.h -yjit_iface.$(OBJEXT): {$(VPATH)}internal/xmalloc.h -yjit_iface.$(OBJEXT): {$(VPATH)}iseq.h -yjit_iface.$(OBJEXT): {$(VPATH)}method.h -yjit_iface.$(OBJEXT): {$(VPATH)}missing.h -yjit_iface.$(OBJEXT): {$(VPATH)}node.h -yjit_iface.$(OBJEXT): {$(VPATH)}ruby_assert.h -yjit_iface.$(OBJEXT): {$(VPATH)}ruby_atomic.h -yjit_iface.$(OBJEXT): {$(VPATH)}st.h -yjit_iface.$(OBJEXT): {$(VPATH)}subst.h -yjit_iface.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h -yjit_iface.$(OBJEXT): {$(VPATH)}thread_native.h -yjit_iface.$(OBJEXT): {$(VPATH)}yjit.h -yjit_iface.$(OBJEXT): {$(VPATH)}yjit.rbinc -yjit_iface.$(OBJEXT): {$(VPATH)}yjit_asm.h -yjit_iface.$(OBJEXT): {$(VPATH)}yjit_codegen.h -yjit_iface.$(OBJEXT): {$(VPATH)}yjit_core.h -yjit_iface.$(OBJEXT): {$(VPATH)}yjit_hooks.inc -yjit_iface.$(OBJEXT): {$(VPATH)}yjit_iface.c -yjit_iface.$(OBJEXT): {$(VPATH)}yjit_iface.h -yjit_iface.$(OBJEXT): {$(VPATH)}vm_callinfo.h -yjit_iface.$(OBJEXT): {$(VPATH)}vm_core.h -yjit_iface.$(OBJEXT): {$(VPATH)}vm_debug.h -yjit_iface.$(OBJEXT): {$(VPATH)}vm_opts.h -yjit_iface.$(OBJEXT): {$(VPATH)}vm_sync.h -yjit_utils.$(OBJEXT): {$(VPATH)}yjit_asm.h -yjit_utils.$(OBJEXT): {$(VPATH)}yjit_utils.c -yjit_utils.$(OBJEXT): {$(VPATH)}yjit_utils.h util.$(OBJEXT): $(hdrdir)/ruby.h util.$(OBJEXT): $(hdrdir)/ruby/ruby.h util.$(OBJEXT): $(top_srcdir)/internal/compilers.h @@ -16439,14 +15643,14 @@ version.$(OBJEXT): {$(VPATH)}st.h version.$(OBJEXT): {$(VPATH)}subst.h version.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h version.$(OBJEXT): {$(VPATH)}thread_native.h -version.$(OBJEXT): {$(VPATH)}yjit.h -version.$(OBJEXT): {$(VPATH)}yjit_asm.h -version.$(OBJEXT): {$(VPATH)}yjit_core.h -version.$(OBJEXT): {$(VPATH)}yjit_iface.h version.$(OBJEXT): {$(VPATH)}version.c version.$(OBJEXT): {$(VPATH)}vm_callinfo.h version.$(OBJEXT): {$(VPATH)}vm_core.h version.$(OBJEXT): {$(VPATH)}vm_opts.h +version.$(OBJEXT): {$(VPATH)}yjit.h +version.$(OBJEXT): {$(VPATH)}yjit_asm.h +version.$(OBJEXT): {$(VPATH)}yjit_core.h +version.$(OBJEXT): {$(VPATH)}yjit_iface.h vm.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h vm.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h vm.$(OBJEXT): $(CCAN_DIR)/list/list.h @@ -16677,7 +15881,6 @@ vm.$(OBJEXT): {$(VPATH)}st.h vm.$(OBJEXT): {$(VPATH)}subst.h vm.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h vm.$(OBJEXT): {$(VPATH)}thread_native.h -vm.$(OBJEXT): {$(VPATH)}yjit.h vm.$(OBJEXT): {$(VPATH)}variable.h vm.$(OBJEXT): {$(VPATH)}vm.c vm.$(OBJEXT): {$(VPATH)}vm.h @@ -16696,6 +15899,7 @@ vm.$(OBJEXT): {$(VPATH)}vm_method.c vm.$(OBJEXT): {$(VPATH)}vm_opts.h vm.$(OBJEXT): {$(VPATH)}vm_sync.h vm.$(OBJEXT): {$(VPATH)}vmtc.inc +vm.$(OBJEXT): {$(VPATH)}yjit.h vm_backtrace.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h vm_backtrace.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h vm_backtrace.$(OBJEXT): $(CCAN_DIR)/list/list.h @@ -17487,8 +16691,805 @@ vm_trace.$(OBJEXT): {$(VPATH)}subst.h vm_trace.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h vm_trace.$(OBJEXT): {$(VPATH)}thread_native.h vm_trace.$(OBJEXT): {$(VPATH)}trace_point.rbinc -vm_trace.$(OBJEXT): {$(VPATH)}yjit.h vm_trace.$(OBJEXT): {$(VPATH)}vm_core.h vm_trace.$(OBJEXT): {$(VPATH)}vm_opts.h vm_trace.$(OBJEXT): {$(VPATH)}vm_trace.c +vm_trace.$(OBJEXT): {$(VPATH)}yjit.h +yjit_asm.$(OBJEXT): {$(VPATH)}yjit_asm.c +yjit_asm.$(OBJEXT): {$(VPATH)}yjit_asm.h +yjit_codegen.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h +yjit_codegen.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h +yjit_codegen.$(OBJEXT): $(CCAN_DIR)/list/list.h +yjit_codegen.$(OBJEXT): $(CCAN_DIR)/str/str.h +yjit_codegen.$(OBJEXT): $(hdrdir)/ruby/ruby.h +yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/array.h +yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/class.h +yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/compile.h +yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/compilers.h +yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/gc.h +yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/imemo.h +yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/object.h +yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/serial.h +yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/static_assert.h +yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/vm.h +yjit_codegen.$(OBJEXT): $(top_srcdir)/internal/warnings.h +yjit_codegen.$(OBJEXT): {$(VPATH)}assert.h +yjit_codegen.$(OBJEXT): {$(VPATH)}atomic.h +yjit_codegen.$(OBJEXT): {$(VPATH)}backward/2/assume.h +yjit_codegen.$(OBJEXT): {$(VPATH)}backward/2/attributes.h +yjit_codegen.$(OBJEXT): {$(VPATH)}backward/2/bool.h +yjit_codegen.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h +yjit_codegen.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h +yjit_codegen.$(OBJEXT): {$(VPATH)}backward/2/limits.h +yjit_codegen.$(OBJEXT): {$(VPATH)}backward/2/long_long.h +yjit_codegen.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h +yjit_codegen.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h +yjit_codegen.$(OBJEXT): {$(VPATH)}builtin.h +yjit_codegen.$(OBJEXT): {$(VPATH)}config.h +yjit_codegen.$(OBJEXT): {$(VPATH)}darray.h +yjit_codegen.$(OBJEXT): {$(VPATH)}debug_counter.h +yjit_codegen.$(OBJEXT): {$(VPATH)}defines.h +yjit_codegen.$(OBJEXT): {$(VPATH)}id.h +yjit_codegen.$(OBJEXT): {$(VPATH)}id_table.h +yjit_codegen.$(OBJEXT): {$(VPATH)}insns.def +yjit_codegen.$(OBJEXT): {$(VPATH)}insns.inc +yjit_codegen.$(OBJEXT): {$(VPATH)}insns_info.inc +yjit_codegen.$(OBJEXT): {$(VPATH)}intern.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/anyargs.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/assume.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/cold.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/const.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/error.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/format.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/pure.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/warning.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/cast.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/compiler_is.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/compiler_since.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/config.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/constant_p.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rarray.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rclass.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rdata.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rfile.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rhash.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/robject.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rstring.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/ctype.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/dllexport.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/dosish.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/error.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/eval.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/event.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/fl_type.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/gc.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/glob.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/globals.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/has/attribute.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/has/builtin.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/has/extension.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/has/feature.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/has/warning.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/array.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/class.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/compar.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/complex.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/cont.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/dir.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/enum.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/error.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/eval.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/file.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/gc.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/hash.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/io.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/load.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/object.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/parse.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/proc.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/process.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/random.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/range.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/rational.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/re.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/select.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/signal.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/string.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/struct.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/thread.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/time.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/variable.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/intern/vm.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/interpreter.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/iterator.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/memory.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/method.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/module.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/newobj.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/rgengc.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/scan_args.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/special_consts.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/static_assert.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/stdalign.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/stdbool.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/symbol.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/token_paste.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/value.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/value_type.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/variable.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/warning_push.h +yjit_codegen.$(OBJEXT): {$(VPATH)}internal/xmalloc.h +yjit_codegen.$(OBJEXT): {$(VPATH)}iseq.h +yjit_codegen.$(OBJEXT): {$(VPATH)}method.h +yjit_codegen.$(OBJEXT): {$(VPATH)}missing.h +yjit_codegen.$(OBJEXT): {$(VPATH)}node.h +yjit_codegen.$(OBJEXT): {$(VPATH)}ruby_assert.h +yjit_codegen.$(OBJEXT): {$(VPATH)}ruby_atomic.h +yjit_codegen.$(OBJEXT): {$(VPATH)}st.h +yjit_codegen.$(OBJEXT): {$(VPATH)}subst.h +yjit_codegen.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h +yjit_codegen.$(OBJEXT): {$(VPATH)}thread_native.h +yjit_codegen.$(OBJEXT): {$(VPATH)}vm_callinfo.h +yjit_codegen.$(OBJEXT): {$(VPATH)}vm_core.h +yjit_codegen.$(OBJEXT): {$(VPATH)}vm_debug.h +yjit_codegen.$(OBJEXT): {$(VPATH)}vm_opts.h +yjit_codegen.$(OBJEXT): {$(VPATH)}vm_sync.h +yjit_codegen.$(OBJEXT): {$(VPATH)}yjit.h +yjit_codegen.$(OBJEXT): {$(VPATH)}yjit_asm.h +yjit_codegen.$(OBJEXT): {$(VPATH)}yjit_codegen.c +yjit_codegen.$(OBJEXT): {$(VPATH)}yjit_codegen.h +yjit_codegen.$(OBJEXT): {$(VPATH)}yjit_core.h +yjit_codegen.$(OBJEXT): {$(VPATH)}yjit_iface.h +yjit_codegen.$(OBJEXT): {$(VPATH)}yjit_utils.h +yjit_compile.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h +yjit_compile.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h +yjit_compile.$(OBJEXT): $(CCAN_DIR)/list/list.h +yjit_compile.$(OBJEXT): $(CCAN_DIR)/str/str.h +yjit_compile.$(OBJEXT): $(hdrdir)/ruby/ruby.h +yjit_compile.$(OBJEXT): $(top_srcdir)/internal/array.h +yjit_compile.$(OBJEXT): $(top_srcdir)/internal/compile.h +yjit_compile.$(OBJEXT): $(top_srcdir)/internal/compilers.h +yjit_compile.$(OBJEXT): $(top_srcdir)/internal/gc.h +yjit_compile.$(OBJEXT): $(top_srcdir)/internal/imemo.h +yjit_compile.$(OBJEXT): $(top_srcdir)/internal/serial.h +yjit_compile.$(OBJEXT): $(top_srcdir)/internal/static_assert.h +yjit_compile.$(OBJEXT): $(top_srcdir)/internal/vm.h +yjit_compile.$(OBJEXT): $(top_srcdir)/internal/warnings.h +yjit_compile.$(OBJEXT): {$(VPATH)}assert.h +yjit_compile.$(OBJEXT): {$(VPATH)}backward/2/assume.h +yjit_compile.$(OBJEXT): {$(VPATH)}backward/2/attributes.h +yjit_compile.$(OBJEXT): {$(VPATH)}backward/2/bool.h +yjit_compile.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h +yjit_compile.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h +yjit_compile.$(OBJEXT): {$(VPATH)}backward/2/limits.h +yjit_compile.$(OBJEXT): {$(VPATH)}backward/2/long_long.h +yjit_compile.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h +yjit_compile.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h +yjit_compile.$(OBJEXT): {$(VPATH)}builtin.h +yjit_compile.$(OBJEXT): {$(VPATH)}config.h +yjit_compile.$(OBJEXT): {$(VPATH)}debug_counter.h +yjit_compile.$(OBJEXT): {$(VPATH)}defines.h +yjit_compile.$(OBJEXT): {$(VPATH)}id.h +yjit_compile.$(OBJEXT): {$(VPATH)}insns.def +yjit_compile.$(OBJEXT): {$(VPATH)}insns.inc +yjit_compile.$(OBJEXT): {$(VPATH)}insns_info.inc +yjit_compile.$(OBJEXT): {$(VPATH)}intern.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/anyargs.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/assume.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/cold.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/const.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/error.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/format.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/pure.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/warning.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/cast.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_since.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/config.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/constant_p.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/core.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rarray.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rclass.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rdata.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rfile.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rhash.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/robject.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rstring.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/ctype.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/dllexport.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/dosish.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/error.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/eval.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/event.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/fl_type.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/gc.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/glob.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/globals.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/has/attribute.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/has/builtin.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/has/extension.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/has/feature.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/has/warning.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/array.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/class.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/compar.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/complex.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/cont.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/dir.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/enum.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/error.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/eval.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/file.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/gc.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/hash.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/io.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/load.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/object.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/parse.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/proc.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/process.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/random.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/range.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/rational.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/re.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/select.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/signal.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/string.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/struct.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/thread.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/time.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/variable.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/vm.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/interpreter.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/iterator.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/memory.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/method.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/module.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/newobj.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/rgengc.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/scan_args.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/special_consts.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/static_assert.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/stdalign.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/stdbool.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/symbol.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/token_paste.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/value.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/value_type.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/variable.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/warning_push.h +yjit_compile.$(OBJEXT): {$(VPATH)}internal/xmalloc.h +yjit_compile.$(OBJEXT): {$(VPATH)}iseq.h +yjit_compile.$(OBJEXT): {$(VPATH)}method.h +yjit_compile.$(OBJEXT): {$(VPATH)}missing.h +yjit_compile.$(OBJEXT): {$(VPATH)}node.h +yjit_compile.$(OBJEXT): {$(VPATH)}ruby_assert.h +yjit_compile.$(OBJEXT): {$(VPATH)}ruby_atomic.h +yjit_compile.$(OBJEXT): {$(VPATH)}st.h +yjit_compile.$(OBJEXT): {$(VPATH)}subst.h +yjit_compile.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h +yjit_compile.$(OBJEXT): {$(VPATH)}thread_native.h +yjit_compile.$(OBJEXT): {$(VPATH)}vm_callinfo.h +yjit_compile.$(OBJEXT): {$(VPATH)}vm_core.h +yjit_compile.$(OBJEXT): {$(VPATH)}vm_debug.h +yjit_compile.$(OBJEXT): {$(VPATH)}vm_opts.h +yjit_compile.$(OBJEXT): {$(VPATH)}vm_sync.h +yjit_compile.$(OBJEXT): {$(VPATH)}yjit.h +yjit_compile.$(OBJEXT): {$(VPATH)}yjit_asm.h +yjit_compile.$(OBJEXT): {$(VPATH)}yjit_compile.c +yjit_compile.$(OBJEXT): {$(VPATH)}yjit_hooks.inc +yjit_compile.$(OBJEXT): {$(VPATH)}yjit_utils.h +yjit_core.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h +yjit_core.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h +yjit_core.$(OBJEXT): $(CCAN_DIR)/list/list.h +yjit_core.$(OBJEXT): $(CCAN_DIR)/str/str.h +yjit_core.$(OBJEXT): $(hdrdir)/ruby/ruby.h +yjit_core.$(OBJEXT): $(top_srcdir)/internal/array.h +yjit_core.$(OBJEXT): $(top_srcdir)/internal/compilers.h +yjit_core.$(OBJEXT): $(top_srcdir)/internal/gc.h +yjit_core.$(OBJEXT): $(top_srcdir)/internal/imemo.h +yjit_core.$(OBJEXT): $(top_srcdir)/internal/serial.h +yjit_core.$(OBJEXT): $(top_srcdir)/internal/static_assert.h +yjit_core.$(OBJEXT): $(top_srcdir)/internal/vm.h +yjit_core.$(OBJEXT): $(top_srcdir)/internal/warnings.h +yjit_core.$(OBJEXT): {$(VPATH)}assert.h +yjit_core.$(OBJEXT): {$(VPATH)}atomic.h +yjit_core.$(OBJEXT): {$(VPATH)}backward/2/assume.h +yjit_core.$(OBJEXT): {$(VPATH)}backward/2/attributes.h +yjit_core.$(OBJEXT): {$(VPATH)}backward/2/bool.h +yjit_core.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h +yjit_core.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h +yjit_core.$(OBJEXT): {$(VPATH)}backward/2/limits.h +yjit_core.$(OBJEXT): {$(VPATH)}backward/2/long_long.h +yjit_core.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h +yjit_core.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h +yjit_core.$(OBJEXT): {$(VPATH)}builtin.h +yjit_core.$(OBJEXT): {$(VPATH)}config.h +yjit_core.$(OBJEXT): {$(VPATH)}darray.h +yjit_core.$(OBJEXT): {$(VPATH)}debug_counter.h +yjit_core.$(OBJEXT): {$(VPATH)}defines.h +yjit_core.$(OBJEXT): {$(VPATH)}id.h +yjit_core.$(OBJEXT): {$(VPATH)}insns.def +yjit_core.$(OBJEXT): {$(VPATH)}insns.inc +yjit_core.$(OBJEXT): {$(VPATH)}insns_info.inc +yjit_core.$(OBJEXT): {$(VPATH)}intern.h +yjit_core.$(OBJEXT): {$(VPATH)}internal.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/anyargs.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/assume.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/cold.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/const.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/error.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/format.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/pure.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/warning.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/cast.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/compiler_is.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/compiler_since.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/config.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/constant_p.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/core.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rarray.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rclass.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rdata.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rfile.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rhash.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/core/robject.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rstring.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/ctype.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/dllexport.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/dosish.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/error.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/eval.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/event.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/fl_type.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/gc.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/glob.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/globals.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/has/attribute.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/has/builtin.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/has/extension.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/has/feature.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/has/warning.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/array.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/class.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/compar.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/complex.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/cont.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/dir.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/enum.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/error.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/eval.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/file.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/gc.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/hash.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/io.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/load.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/object.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/parse.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/proc.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/process.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/random.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/range.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/rational.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/re.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/select.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/signal.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/string.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/struct.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/thread.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/time.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/variable.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/intern/vm.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/interpreter.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/iterator.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/memory.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/method.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/module.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/newobj.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/rgengc.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/scan_args.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/special_consts.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/static_assert.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/stdalign.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/stdbool.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/symbol.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/token_paste.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/value.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/value_type.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/variable.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/warning_push.h +yjit_core.$(OBJEXT): {$(VPATH)}internal/xmalloc.h +yjit_core.$(OBJEXT): {$(VPATH)}iseq.h +yjit_core.$(OBJEXT): {$(VPATH)}method.h +yjit_core.$(OBJEXT): {$(VPATH)}missing.h +yjit_core.$(OBJEXT): {$(VPATH)}node.h +yjit_core.$(OBJEXT): {$(VPATH)}ruby_assert.h +yjit_core.$(OBJEXT): {$(VPATH)}ruby_atomic.h +yjit_core.$(OBJEXT): {$(VPATH)}st.h +yjit_core.$(OBJEXT): {$(VPATH)}subst.h +yjit_core.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h +yjit_core.$(OBJEXT): {$(VPATH)}thread_native.h +yjit_core.$(OBJEXT): {$(VPATH)}vm_callinfo.h +yjit_core.$(OBJEXT): {$(VPATH)}vm_core.h +yjit_core.$(OBJEXT): {$(VPATH)}vm_debug.h +yjit_core.$(OBJEXT): {$(VPATH)}vm_opts.h +yjit_core.$(OBJEXT): {$(VPATH)}vm_sync.h +yjit_core.$(OBJEXT): {$(VPATH)}yjit_asm.h +yjit_core.$(OBJEXT): {$(VPATH)}yjit_codegen.h +yjit_core.$(OBJEXT): {$(VPATH)}yjit_core.c +yjit_core.$(OBJEXT): {$(VPATH)}yjit_core.h +yjit_core.$(OBJEXT): {$(VPATH)}yjit_iface.h +yjit_core.$(OBJEXT): {$(VPATH)}yjit_utils.h +yjit_iface.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h +yjit_iface.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h +yjit_iface.$(OBJEXT): $(CCAN_DIR)/list/list.h +yjit_iface.$(OBJEXT): $(CCAN_DIR)/str/str.h +yjit_iface.$(OBJEXT): $(hdrdir)/ruby/ruby.h +yjit_iface.$(OBJEXT): $(top_srcdir)/internal/array.h +yjit_iface.$(OBJEXT): $(top_srcdir)/internal/class.h +yjit_iface.$(OBJEXT): $(top_srcdir)/internal/compile.h +yjit_iface.$(OBJEXT): $(top_srcdir)/internal/compilers.h +yjit_iface.$(OBJEXT): $(top_srcdir)/internal/gc.h +yjit_iface.$(OBJEXT): $(top_srcdir)/internal/imemo.h +yjit_iface.$(OBJEXT): $(top_srcdir)/internal/serial.h +yjit_iface.$(OBJEXT): $(top_srcdir)/internal/static_assert.h +yjit_iface.$(OBJEXT): $(top_srcdir)/internal/vm.h +yjit_iface.$(OBJEXT): $(top_srcdir)/internal/warnings.h +yjit_iface.$(OBJEXT): {$(VPATH)}assert.h +yjit_iface.$(OBJEXT): {$(VPATH)}atomic.h +yjit_iface.$(OBJEXT): {$(VPATH)}backward/2/assume.h +yjit_iface.$(OBJEXT): {$(VPATH)}backward/2/attributes.h +yjit_iface.$(OBJEXT): {$(VPATH)}backward/2/bool.h +yjit_iface.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h +yjit_iface.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h +yjit_iface.$(OBJEXT): {$(VPATH)}backward/2/limits.h +yjit_iface.$(OBJEXT): {$(VPATH)}backward/2/long_long.h +yjit_iface.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h +yjit_iface.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h +yjit_iface.$(OBJEXT): {$(VPATH)}builtin.h +yjit_iface.$(OBJEXT): {$(VPATH)}config.h +yjit_iface.$(OBJEXT): {$(VPATH)}darray.h +yjit_iface.$(OBJEXT): {$(VPATH)}debug_counter.h +yjit_iface.$(OBJEXT): {$(VPATH)}defines.h +yjit_iface.$(OBJEXT): {$(VPATH)}id.h +yjit_iface.$(OBJEXT): {$(VPATH)}id_table.h +yjit_iface.$(OBJEXT): {$(VPATH)}insns.def +yjit_iface.$(OBJEXT): {$(VPATH)}insns.inc +yjit_iface.$(OBJEXT): {$(VPATH)}insns_info.inc +yjit_iface.$(OBJEXT): {$(VPATH)}intern.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/anyargs.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/assume.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/cold.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/const.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/error.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/format.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/pure.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/warning.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/cast.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/compiler_is.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/compiler_since.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/config.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/constant_p.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/core.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rarray.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rclass.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rdata.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rfile.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rhash.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/robject.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rstring.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/ctype.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/dllexport.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/dosish.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/error.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/eval.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/event.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/fl_type.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/gc.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/glob.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/globals.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/has/attribute.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/has/builtin.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/has/extension.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/has/feature.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/has/warning.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/array.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/class.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/compar.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/complex.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/cont.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/dir.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/enum.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/error.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/eval.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/file.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/gc.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/hash.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/io.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/load.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/object.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/parse.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/proc.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/process.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/random.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/range.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/rational.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/re.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/select.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/signal.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/string.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/struct.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/thread.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/time.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/variable.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/intern/vm.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/interpreter.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/iterator.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/memory.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/method.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/module.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/newobj.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/rgengc.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/scan_args.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/special_consts.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/static_assert.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/stdalign.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/stdbool.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/symbol.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/token_paste.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/value.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/value_type.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/variable.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/warning_push.h +yjit_iface.$(OBJEXT): {$(VPATH)}internal/xmalloc.h +yjit_iface.$(OBJEXT): {$(VPATH)}iseq.h +yjit_iface.$(OBJEXT): {$(VPATH)}method.h +yjit_iface.$(OBJEXT): {$(VPATH)}missing.h +yjit_iface.$(OBJEXT): {$(VPATH)}node.h +yjit_iface.$(OBJEXT): {$(VPATH)}ruby_assert.h +yjit_iface.$(OBJEXT): {$(VPATH)}ruby_atomic.h +yjit_iface.$(OBJEXT): {$(VPATH)}st.h +yjit_iface.$(OBJEXT): {$(VPATH)}subst.h +yjit_iface.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h +yjit_iface.$(OBJEXT): {$(VPATH)}thread_native.h +yjit_iface.$(OBJEXT): {$(VPATH)}vm_callinfo.h +yjit_iface.$(OBJEXT): {$(VPATH)}vm_core.h +yjit_iface.$(OBJEXT): {$(VPATH)}vm_debug.h +yjit_iface.$(OBJEXT): {$(VPATH)}vm_opts.h +yjit_iface.$(OBJEXT): {$(VPATH)}vm_sync.h +yjit_iface.$(OBJEXT): {$(VPATH)}yjit.h +yjit_iface.$(OBJEXT): {$(VPATH)}yjit.rbinc +yjit_iface.$(OBJEXT): {$(VPATH)}yjit_asm.h +yjit_iface.$(OBJEXT): {$(VPATH)}yjit_codegen.h +yjit_iface.$(OBJEXT): {$(VPATH)}yjit_core.h +yjit_iface.$(OBJEXT): {$(VPATH)}yjit_hooks.inc +yjit_iface.$(OBJEXT): {$(VPATH)}yjit_iface.c +yjit_iface.$(OBJEXT): {$(VPATH)}yjit_iface.h +yjit_utils.$(OBJEXT): {$(VPATH)}yjit_asm.h +yjit_utils.$(OBJEXT): {$(VPATH)}yjit_utils.c +yjit_utils.$(OBJEXT): {$(VPATH)}yjit_utils.h # AUTOGENERATED DEPENDENCIES END diff --git a/tool/ruby_vm/models/instructions.rb b/tool/ruby_vm/models/instructions.rb index ecf9fe7b6b..1533872d66 100644 --- a/tool/ruby_vm/models/instructions.rb +++ b/tool/ruby_vm/models/instructions.rb @@ -21,6 +21,5 @@ RubyVM::Instructions = RubyVM::BareInstructions.to_a + \ RubyVM::MicroJIT::ExampleInstructions.to_a - require_relative 'trace_instructions' RubyVM::Instructions.freeze diff --git a/vm_insnhelper.c b/vm_insnhelper.c index f743e07e03..16f46e50d3 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -1099,6 +1099,12 @@ iv_index_tbl_lookup(struct st_table *iv_index_tbl, ID id, struct rb_iv_index_tbl return found ? true : false; } +bool +rb_iv_index_tbl_lookup(struct st_table *iv_index_tbl, ID id, struct rb_iv_index_tbl_entry **ent) +{ + return iv_index_tbl_lookup(iv_index_tbl, id, ent); +} + ALWAYS_INLINE(static void fill_ivar_cache(const rb_iseq_t *iseq, IVC ic, const struct rb_callcache *cc, int is_attr, struct rb_iv_index_tbl_entry *ent)); static inline void @@ -14,13 +14,13 @@ module YJIT # Sort the blocks by increasing addresses blocks.sort_by(&:address).each_with_index do |block, i| - str << "== BLOCK #{i+1}/#{blocks.length}: #{block.code.length} BYTES, ISEQ RANGE [#{block.iseq_start_index},#{block.iseq_end_index}[ ".ljust(80, "=") + str << "== BLOCK #{i+1}/#{blocks.length}: #{block.code.length} BYTES, ISEQ RANGE [#{block.iseq_start_index},#{block.iseq_end_index}] ".ljust(80, "=") str << "\n" - cs.disasm(block.code, 0).each do |i| + cs.disasm(block.code, block.address).each do |i| str << sprintf( - " %<address>08X: %<instruction>s\t%<details>s\n", - address: block.address + i.address, + " %<address>08x: %<instruction>s\t%<details>s\n", + address: i.address, instruction: i.mnemonic, details: i.op_str ) @@ -62,6 +62,7 @@ module YJIT print_counters(counters, prefix: 'oswb_', prompt: 'opt_send_without_block exit reasons: ') print_counters(counters, prefix: 'leave_', prompt: 'leave exit reasons: ') + print_counters(counters, prefix: 'getivar_', prompt: 'getinstancevariable exit reasons:') end def print_counters(counters, prefix:, prompt:) diff --git a/yjit_codegen.c b/yjit_codegen.c index 3ece2b9fe8..5081e2c19f 100644 --- a/yjit_codegen.c +++ b/yjit_codegen.c @@ -7,6 +7,7 @@ #include "builtin.h" #include "internal/compile.h" #include "internal/class.h" +#include "internal/object.h" #include "insns_info.inc" #include "yjit.h" #include "yjit_iface.h" @@ -99,6 +100,12 @@ jit_peek_at_stack(jitstate_t* jit, ctx_t* ctx) return *(sp - 1); } +static VALUE +jit_peek_at_self(jitstate_t *jit, ctx_t *ctx) +{ + return jit->ec->cfp->self; +} + // Save YJIT registers prior to a C call static void yjit_save_regs(codeblock_t* cb) @@ -564,102 +571,226 @@ guard_self_is_object(codeblock_t *cb, x86opnd_t self_opnd, uint8_t *side_exit, c je_ptr(cb, side_exit); cmp(cb, self_opnd, imm_opnd(Qnil)); je_ptr(cb, side_exit); + + // maybe we can do + // RUBY_ASSERT(Qfalse < Qnil); + // cmp(cb, self_opnd, imm_opnd(Qnil)); + // jbe(cb, side_exit); + + ctx->self_is_object = true; } } -static codegen_status_t -gen_getinstancevariable(jitstate_t* jit, ctx_t* ctx) +static void +gen_jnz_to_target0(codeblock_t *cb, uint8_t *target0, uint8_t *target1, uint8_t shape) { - IVC ic = (IVC)jit_get_arg(jit, 1); + switch (shape) + { + case SHAPE_NEXT0: + case SHAPE_NEXT1: + RUBY_ASSERT(false); + break; - // Check that the inline cache has been set, slot index is known - if (!ic->entry) { - return YJIT_CANT_COMPILE; + case SHAPE_DEFAULT: + jnz_ptr(cb, target0); + break; } +} - // Defer compilation so we can peek at the topmost object - if (!jit_at_current_insn(jit)) +static void +gen_jz_to_target0(codeblock_t *cb, uint8_t *target0, uint8_t *target1, uint8_t shape) +{ + switch (shape) { - defer_compilation(jit->block, jit->insn_idx, ctx); - return YJIT_END_BLOCK; - } - - // Peek at the topmost value on the stack at compilation time - VALUE top_val = jit_peek_at_stack(jit, ctx); - - // TODO: play with deferred compilation and sidechains! :) - - - + case SHAPE_NEXT0: + case SHAPE_NEXT1: + RUBY_ASSERT(false); + break; + case SHAPE_DEFAULT: + jz_ptr(cb, target0); + break; + } +} +enum jcc_kinds { + JCC_JNE, + JCC_JNZ, + JCC_JZ, + JCC_JE, +}; +// Generate a jump to a stub that recompiles the current YARV instruction on failure. +// When depth_limitk is exceeded, generate a jump to a side exit. +static void +jit_chain_guard(enum jcc_kinds jcc, jitstate_t *jit, ctx_t *ctx, uint8_t depth_limit, uint8_t *side_exit) +{ + branchgen_fn target0_gen_fn; + switch (jcc) { + case JCC_JNE: + case JCC_JNZ: + target0_gen_fn = gen_jnz_to_target0; + break; + case JCC_JZ: + case JCC_JE: + target0_gen_fn = gen_jz_to_target0; + break; + default: + RUBY_ASSERT(false && "unimplemented jump kind"); + break; + }; + if (ctx->chain_depth < depth_limit) { + ctx_t deeper = *ctx; + deeper.chain_depth++; + + gen_branch( + ctx, + (blockid_t) { jit->iseq, jit->insn_idx }, + &deeper, + BLOCKID_NULL, + NULL, + target0_gen_fn + ); + } + else { + target0_gen_fn(cb, side_exit, NULL, SHAPE_DEFAULT); + } +} +bool rb_iv_index_tbl_lookup(struct st_table *iv_index_tbl, ID id, struct rb_iv_index_tbl_entry **ent); // vm_insnhelper.c +enum { + GETIVAR_MAX_DEPTH = 10 // up to 5 different classes, and embedded or not for each +}; +static codegen_status_t +gen_getinstancevariable(jitstate_t* jit, ctx_t* ctx) +{ + // Defer compilation so we can specialize a runtime `self` + if (!jit_at_current_insn(jit)) { + defer_compilation(jit->block, jit->insn_idx, ctx); + return YJIT_END_BLOCK; + } + // Specialize base on the compile time self + VALUE self_val = jit_peek_at_self(jit, ctx); + VALUE self_klass = rb_class_of(self_val); + // Create a size-exit to fall back to the interpreter + uint8_t *side_exit = yjit_side_exit(jit, ctx); // If the class uses the default allocator, instances should all be T_OBJECT // NOTE: This assumes nobody changes the allocator of the class after allocation. // Eventually, we can encode whether an object is T_OBJECT or not // inside object shapes. - if (rb_get_alloc_func(ic->entry->class_value) != rb_class_allocate_instance) { - return YJIT_CANT_COMPILE; + if (rb_get_alloc_func(self_klass) != rb_class_allocate_instance) { + jmp_ptr(cb, side_exit); + return YJIT_END_BLOCK; } + RUBY_ASSERT(BUILTIN_TYPE(self_val) == T_OBJECT); // because we checked the allocator - uint32_t ivar_index = ic->entry->index; + ID id = (ID)jit_get_arg(jit, 0); + struct rb_iv_index_tbl_entry *ent; + struct st_table *iv_index_tbl = ROBJECT_IV_INDEX_TBL(self_val); - // Create a size-exit to fall back to the interpreter - uint8_t* side_exit = yjit_side_exit(jit, ctx); + // Lookup index for the ivar the instruction loads + if (iv_index_tbl && rb_iv_index_tbl_lookup(iv_index_tbl, id, &ent)) { + uint32_t ivar_index = ent->index; - // Load self from CFP - mov(cb, REG0, member_opnd(REG_CFP, rb_control_frame_t, self)); + // Load self from CFP + mov(cb, REG0, member_opnd(REG_CFP, rb_control_frame_t, self)); - guard_self_is_object(cb, REG0, side_exit, ctx); + guard_self_is_object(cb, REG0, COUNTED_EXIT(side_exit, getivar_se_self_not_heap), ctx); - // Bail if receiver class is different from compiled time call cache class - x86opnd_t klass_opnd = mem_opnd(64, REG0, offsetof(struct RBasic, klass)); - mov(cb, REG1, klass_opnd); - x86opnd_t serial_opnd = mem_opnd(64, REG1, offsetof(struct RClass, class_serial)); - cmp(cb, serial_opnd, imm_opnd(ic->entry->class_serial)); - jne_ptr(cb, side_exit); + // Guard that self has a known class + x86opnd_t klass_opnd = mem_opnd(64, REG0, offsetof(struct RBasic, klass)); + mov(cb, REG1, klass_opnd); + x86opnd_t serial_opnd = mem_opnd(64, REG1, offsetof(struct RClass, class_serial)); + cmp(cb, serial_opnd, imm_opnd(RCLASS_SERIAL(self_klass))); + jit_chain_guard(JCC_JNE, jit, ctx, GETIVAR_MAX_DEPTH, side_exit); - // Bail if the ivars are not on the extended table - // See ROBJECT_IVPTR() from include/ruby/internal/core/robject.h - x86opnd_t flags_opnd = member_opnd(REG0, struct RBasic, flags); - test(cb, flags_opnd, imm_opnd(ROBJECT_EMBED)); - jnz_ptr(cb, side_exit); + // Compile time self is embedded and the ivar index is within the object + if (RB_FL_TEST_RAW(self_val, ROBJECT_EMBED) && ivar_index < ROBJECT_EMBED_LEN_MAX) { + // See ROBJECT_IVPTR() from include/ruby/internal/core/robject.h - // check that the extended table is big enough - if (ivar_index >= ROBJECT_EMBED_LEN_MAX + 1) { - // Check that the slot is inside the extended table (num_slots > index) - x86opnd_t num_slots = mem_opnd(32, REG0, offsetof(struct RObject, as.heap.numiv)); - cmp(cb, num_slots, imm_opnd(ivar_index)); - jle_ptr(cb, side_exit); - } + // Guard that self is embedded + // TODO: BT and JC is shorter + x86opnd_t flags_opnd = member_opnd(REG0, struct RBasic, flags); + test(cb, flags_opnd, imm_opnd(ROBJECT_EMBED)); + jit_chain_guard(JCC_JZ, jit, ctx, GETIVAR_MAX_DEPTH, side_exit); - // Get a pointer to the extended table - x86opnd_t tbl_opnd = mem_opnd(64, REG0, offsetof(struct RObject, as.heap.ivptr)); - mov(cb, REG0, tbl_opnd); + // Load the variable + x86opnd_t ivar_opnd = mem_opnd(64, REG0, offsetof(struct RObject, as.ary) + ivar_index * SIZEOF_VALUE); + mov(cb, REG1, ivar_opnd); - // Read the ivar from the extended table - x86opnd_t ivar_opnd = mem_opnd(64, REG0, sizeof(VALUE) * ivar_index); - mov(cb, REG0, ivar_opnd); + // Guard that the variable is not Qundef + cmp(cb, REG1, imm_opnd(Qundef)); + je_ptr(cb, COUNTED_EXIT(side_exit, getivar_undef)); - // Check that the ivar is not Qundef - cmp(cb, REG0, imm_opnd(Qundef)); - je_ptr(cb, side_exit); + // Push the ivar on the stack + x86opnd_t out_opnd = ctx_stack_push(ctx, T_NONE); + mov(cb, out_opnd, REG1); + } + else { + // Compile time self is *not* embeded. + + // Guard that self is *not* embedded + // See ROBJECT_IVPTR() from include/ruby/internal/core/robject.h + x86opnd_t flags_opnd = member_opnd(REG0, struct RBasic, flags); + test(cb, flags_opnd, imm_opnd(ROBJECT_EMBED)); + jit_chain_guard(JCC_JNZ, jit, ctx, GETIVAR_MAX_DEPTH, side_exit); + + // check that the extended table is big enough + if (ivar_index >= ROBJECT_EMBED_LEN_MAX + 1) { + // Check that the slot is inside the extended table (num_slots > index) + x86opnd_t num_slots = mem_opnd(32, REG0, offsetof(struct RObject, as.heap.numiv)); + cmp(cb, num_slots, imm_opnd(ivar_index)); + jle_ptr(cb, COUNTED_EXIT(side_exit, getivar_idx_out_of_range)); + } + + // Get a pointer to the extended table + x86opnd_t tbl_opnd = mem_opnd(64, REG0, offsetof(struct RObject, as.heap.ivptr)); + mov(cb, REG0, tbl_opnd); + + // Read the ivar from the extended table + x86opnd_t ivar_opnd = mem_opnd(64, REG0, sizeof(VALUE) * ivar_index); + mov(cb, REG0, ivar_opnd); + + // Check that the ivar is not Qundef + cmp(cb, REG0, imm_opnd(Qundef)); + je_ptr(cb, COUNTED_EXIT(side_exit, getivar_undef)); + + // Push the ivar on the stack + x86opnd_t out_opnd = ctx_stack_push(ctx, T_NONE); + mov(cb, out_opnd, REG0); + } - // Push the ivar on the stack - x86opnd_t out_opnd = ctx_stack_push(ctx, T_NONE); - mov(cb, out_opnd, REG0); - return YJIT_KEEP_COMPILING; + // Jump to next instruction. This allows guard chains to share the same successor. + { + ctx_t reset_depth = *ctx; + reset_depth.chain_depth = 0; + + blockid_t jump_block = { jit->iseq, jit_next_insn_idx(jit) }; + + // Generate the jump instruction + gen_direct_jump( + &reset_depth, + jump_block + ); + } + + return YJIT_END_BLOCK; + } + + // Take side exit because YJIT_CANT_COMPILE can exit to a JIT entry point and + // form an infinite loop when chain_depth > 0. + jmp_ptr(cb, side_exit); + return YJIT_END_BLOCK; } static codegen_status_t diff --git a/yjit_core.c b/yjit_core.c index ecca311a46..6bd9230c78 100644 --- a/yjit_core.c +++ b/yjit_core.c @@ -10,7 +10,7 @@ #define MAX_VERSIONS 4 // Maximum number of branch instructions we can track -#define MAX_BRANCHES 32768 +#define MAX_BRANCHES 100000 // Registered branch entries branch_t branch_entries[MAX_BRANCHES]; @@ -344,7 +344,8 @@ uint8_t* gen_entry_point(const rb_iseq_t *iseq, uint32_t insn_idx, rb_execution_ // Called by the generated code when a branch stub is executed // Triggers compilation of branches and code patching -uint8_t* branch_stub_hit(uint32_t branch_idx, uint32_t target_idx, rb_execution_context_t* ec) +static uint8_t * +branch_stub_hit(uint32_t branch_idx, uint32_t target_idx, rb_execution_context_t* ec) { uint8_t* dst_addr; @@ -380,18 +381,18 @@ uint8_t* branch_stub_hit(uint32_t branch_idx, uint32_t target_idx, rb_execution_ ctx_t generic_ctx = DEFAULT_CTX; generic_ctx.stack_size = target_ctx->stack_size; generic_ctx.sp_offset = target_ctx->sp_offset; - if (get_num_versions(target) >= MAX_VERSIONS - 1) - { - //fprintf(stderr, "version limit hit in branch_stub_hit\n"); - target_ctx = &generic_ctx; + if (target_ctx->chain_depth == 0) { // guard chains implement limits individually + if (get_num_versions(target) >= MAX_VERSIONS - 1) { + //fprintf(stderr, "version limit hit in branch_stub_hit\n"); + target_ctx = &generic_ctx; + } } // Try to find a compiled version of this block block_t* p_block = find_block_version(target, target_ctx); // If this block hasn't yet been compiled - if (!p_block) - { + if (!p_block) { p_block = gen_block_version(target, target_ctx, ec); } diff --git a/yjit_iface.c b/yjit_iface.c index df5f4baa87..0229f8e1ba 100644 --- a/yjit_iface.c +++ b/yjit_iface.c @@ -506,7 +506,9 @@ yjit_disasm_init(VALUE klass) { csh * handle; VALUE disasm = TypedData_Make_Struct(klass, csh, &yjit_disasm_type, handle); - cs_open(CS_ARCH_X86, CS_MODE_64, handle); + if (cs_open(CS_ARCH_X86, CS_MODE_64, handle) != CS_ERR_OK) { + rb_raise(rb_eRuntimeError, "failed to make Capstone handle"); + } return disasm; } @@ -518,7 +520,7 @@ yjit_disasm(VALUE self, VALUE code, VALUE from) cs_insn *insns; TypedData_Get_Struct(self, csh, &yjit_disasm_type, handle); - count = cs_disasm(*handle, (uint8_t*)StringValuePtr(code), RSTRING_LEN(code), NUM2INT(from), 0, &insns); + count = cs_disasm(*handle, (uint8_t*)StringValuePtr(code), RSTRING_LEN(code), NUM2ULL(from), 0, &insns); VALUE insn_list = rb_ary_new_capa(count); for (size_t i = 0; i < count; i++) { diff --git a/yjit_iface.h b/yjit_iface.h index 88e65322eb..5a5ba1c448 100644 --- a/yjit_iface.h +++ b/yjit_iface.h @@ -47,6 +47,10 @@ YJIT_DECLARE_COUNTERS( leave_se_finish_frame, leave_se_interrupt, + getivar_se_self_not_heap, + getivar_idx_out_of_range, + getivar_undef, + // Member with known name for iterating over counters last_member ) |