summaryrefslogtreecommitdiff
path: root/lib/ruby_vm/rjit/jit_state.rb
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2023-04-01 21:23:36 -0700
committerTakashi Kokubun <takashikkbn@gmail.com>2023-04-01 21:30:42 -0700
commite45ed2da5046f7ee2a82f332d211ddbd7108fc22 (patch)
treee65ce9898be564eb21f234351b7c4b77f283b266 /lib/ruby_vm/rjit/jit_state.rb
parent90cdc5b8ba5421bfd183c2bfba16c1fd3ca7e0f5 (diff)
RJIT: Rewind stack_size on CantCompile and side exits
so that we can take an exit whenever we want. As a starter, this commit also pops blockarg earlier than some CantCompile exits.
Diffstat (limited to 'lib/ruby_vm/rjit/jit_state.rb')
-rw-r--r--lib/ruby_vm/rjit/jit_state.rb5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/ruby_vm/rjit/jit_state.rb b/lib/ruby_vm/rjit/jit_state.rb
index a365559d17..f31223e478 100644
--- a/lib/ruby_vm/rjit/jit_state.rb
+++ b/lib/ruby_vm/rjit/jit_state.rb
@@ -4,10 +4,11 @@ module RubyVM::RJIT
:pc, # @param [Integer] The JIT target PC
:cfp, # @param `RubyVM::RJIT::CPointer::Struct_rb_control_frame_t` The JIT source CFP (before RJIT is called)
:block, # @param [RubyVM::RJIT::Block]
- :side_exits, # @param [Hash{ Integer => Integer }] { PC => address }
+ :stack_size_for_pc, # @param [Integer]
+ :side_exit_for_pc, # @param [Hash{ Integer => Integer }] { sp_offset => address }
:record_boundary_patch_point, # @param [TrueClass,FalseClass]
)
- def initialize(side_exits: {}, record_boundary_patch_point: false, **) = super
+ def initialize(side_exit_for_pc: {}, record_boundary_patch_point: false, **) = super
def insn
Compiler.decode_insn(C.VALUE.new(pc).*)