ruby/lib/ruby_vm/mjit/context.rb

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

22 lines
568 B
Ruby
Raw Normal View History

2023-02-06 15:44:34 -08:00
module RubyVM::MJIT
class Context < Struct.new(
:stack_size, # @param [Integer] The number of values on the stack
:sp_offset, # @param [Integer] JIT sp offset relative to the interpreter's sp
)
def initialize(stack_size: 0, sp_offset: 0) = super
2022-12-31 13:41:32 -08:00
2023-02-06 15:44:34 -08:00
def stack_push(size = 1)
opnd = [SP, C.VALUE.size * self.sp_offset]
self.stack_size += size
self.sp_offset += size
opnd
end
2023-01-02 22:53:14 -08:00
2023-02-06 15:44:34 -08:00
def stack_pop(size = 1)
self.stack_size -= size
self.sp_offset -= size
[SP, C.VALUE.size * self.sp_offset]
end
2023-01-02 22:53:14 -08:00
end
2022-12-23 14:17:32 -08:00
end