did block yield

This commit is contained in:
2020-03-03 16:22:50 +02:00
parent a4c0b8e5f9
commit 7f5ebab800
2 changed files with 14 additions and 15 deletions

View File

@ -21,12 +21,11 @@ module SlotMachine
def to_risc(compiler)
return_label = Risc.label("block_yield", "continue_#{object_id}")
index = arg_index
compiler.build("BlockYield") do
next_message! << message[:next_message]
return_address! << return_label
next_message[:return_address] << return_address
return_address = compiler.load_object return_label
compiler.build(to_s) do
message[:next_message][:return_address] << return_address
block_reg! << message["arg#{index}".to_sym]
block_reg = message["arg#{index}".to_sym].to_reg
message << message[:next_message]
add_code Risc::DynamicJump.new("block_yield", block_reg )