ruby/lib/ruby_vm/rjit/branch_stub.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

25 lines
879 B
Ruby
Raw Normal View History

2023-03-06 23:15:30 -08:00
module RubyVM::RJIT
2023-02-07 00:17:13 -08:00
# Branch shapes
Next0 = :Next0 # target0 is a fallthrough
Next1 = :Next1 # target1 is a fallthrough
Default = :Default # neither targets is a fallthrough
class BranchStub < Struct.new(
2023-03-06 23:15:30 -08:00
:iseq, # @param [RubyVM::RJIT::CPointer::Struct_rb_iseq_struct] Branch target ISEQ
2023-02-07 00:17:13 -08:00
:shape, # @param [Symbol] Next0, Next1, or Default
2023-03-06 23:15:30 -08:00
:target0, # @param [RubyVM::RJIT::BranchTarget] First branch target
:target1, # @param [RubyVM::RJIT::BranchTarget,NilClass] Second branch target (optional)
2023-02-07 00:17:13 -08:00
:compile, # @param [Proc] A callback to (re-)generate this branch stub
:start_addr, # @param [Integer] Stub source start address to be re-generated
:end_addr, # @param [Integer] Stub source end address to be re-generated
)
end
class BranchTarget < Struct.new(
:pc,
:ctx,
:address,
)
end
2023-01-07 13:21:14 -08:00
end