use message reg not message
for upcoming change
This commit is contained in:
parent
69385c863f
commit
a71a6d34fb
@ -36,7 +36,7 @@ module Mom
|
|||||||
return_label = Risc.label(self, "continue_#{object_id}")
|
return_label = Risc.label(self, "continue_#{object_id}")
|
||||||
save_return = SlotLoad.new([:message,:next_message,:return_address],[return_label],self)
|
save_return = SlotLoad.new([:message,:next_message,:return_address],[return_label],self)
|
||||||
moves = save_return.to_risc(compiler)
|
moves = save_return.to_risc(compiler)
|
||||||
moves << Risc.slot_to_reg(self, :message , :next_message , Risc.message_reg)
|
moves << Risc.slot_to_reg(self, Risc.message_reg , :next_message , Risc.message_reg)
|
||||||
moves << Risc.load_constant( self , @cache_entry , reg )
|
moves << Risc.load_constant( self , @cache_entry , reg )
|
||||||
method_index = Risc.resolve_to_index(:cache_entry , :cached_method)
|
method_index = Risc.resolve_to_index(:cache_entry , :cached_method)
|
||||||
moves << Risc::SlotToReg.new( self , reg ,method_index, reg)
|
moves << Risc::SlotToReg.new( self , reg ,method_index, reg)
|
||||||
|
@ -26,7 +26,7 @@ module Mom
|
|||||||
return_label = Risc.label(self,"continue_#{object_id}")
|
return_label = Risc.label(self,"continue_#{object_id}")
|
||||||
save_return = SlotLoad.new([:message,:next_message,:return_address],[return_label],self)
|
save_return = SlotLoad.new([:message,:next_message,:return_address],[return_label],self)
|
||||||
moves = save_return.to_risc(compiler)
|
moves = save_return.to_risc(compiler)
|
||||||
moves << Risc.slot_to_reg(self, :message , :next_message , Risc.message_reg)
|
moves << Risc.slot_to_reg(self, Risc.message_reg , :next_message , Risc.message_reg)
|
||||||
|
|
||||||
moves << Risc::FunctionCall.new(self, method )
|
moves << Risc::FunctionCall.new(self, method )
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ module Risc
|
|||||||
builder.add_load_data( source , 2 , two )
|
builder.add_load_data( source , 2 , two )
|
||||||
builder.add_code Risc.op( source , :>> , me , two)
|
builder.add_code Risc.op( source , :>> , me , two)
|
||||||
builder.add_new_int(source,me , two)
|
builder.add_new_int(source,me , two)
|
||||||
builder.add_reg_to_slot( source , two , :message , :return_value)
|
builder.add_reg_to_slot( source , two , Risc.message_reg , :return_value)
|
||||||
compiler.add_mom( Mom::ReturnSequence.new)
|
compiler.add_mom( Mom::ReturnSequence.new)
|
||||||
return compiler
|
return compiler
|
||||||
end
|
end
|
||||||
@ -52,7 +52,7 @@ module Risc
|
|||||||
builder.add_code false_label
|
builder.add_code false_label
|
||||||
builder.add_load_constant("#{operator} new int", Parfait.object_space.false_object , other)
|
builder.add_load_constant("#{operator} new int", Parfait.object_space.false_object , other)
|
||||||
builder.add_code merge_label
|
builder.add_code merge_label
|
||||||
builder.add_reg_to_slot( "#{operator} save ret" , other , :message , :return_value)
|
builder.add_reg_to_slot( "#{operator} save ret" , other , Risc.message_reg , :return_value)
|
||||||
compiler.add_mom( Mom::ReturnSequence.new)
|
compiler.add_mom( Mom::ReturnSequence.new)
|
||||||
return compiler
|
return compiler
|
||||||
end
|
end
|
||||||
@ -69,7 +69,7 @@ module Risc
|
|||||||
builder.reduce_int( op_sym.to_s + " fix arg", other )
|
builder.reduce_int( op_sym.to_s + " fix arg", other )
|
||||||
builder.add_code Risc.op( op_sym.to_s + " operator", op_sym , me , other)
|
builder.add_code Risc.op( op_sym.to_s + " operator", op_sym , me , other)
|
||||||
builder.add_new_int(op_sym.to_s + " new int", me , other)
|
builder.add_new_int(op_sym.to_s + " new int", me , other)
|
||||||
builder.add_reg_to_slot( op_sym.to_s + "save ret" , other , :message , :return_value)
|
builder.add_reg_to_slot( op_sym.to_s + "save ret" , other , Risc.message_reg , :return_value)
|
||||||
compiler.add_mom( Mom::ReturnSequence.new)
|
compiler.add_mom( Mom::ReturnSequence.new)
|
||||||
return compiler
|
return compiler
|
||||||
end
|
end
|
||||||
@ -131,7 +131,7 @@ module Risc
|
|||||||
builder.add_code Risc.op( s , :+ , q , tmp )
|
builder.add_code Risc.op( s , :+ , q , tmp )
|
||||||
|
|
||||||
builder.add_new_int(s,q , tmp)
|
builder.add_new_int(s,q , tmp)
|
||||||
builder.add_reg_to_slot( s , tmp , :message , :return_value)
|
builder.add_reg_to_slot( s , tmp , Risc.message_reg , :return_value)
|
||||||
|
|
||||||
compiler.add_mom( Mom::ReturnSequence.new)
|
compiler.add_mom( Mom::ReturnSequence.new)
|
||||||
return compiler
|
return compiler
|
||||||
|
@ -15,7 +15,7 @@ module Risc
|
|||||||
# reduce me to me[index]
|
# reduce me to me[index]
|
||||||
builder.add_slot_to_reg( source , me , index , me)
|
builder.add_slot_to_reg( source , me , index , me)
|
||||||
# and put it back into the return value
|
# and put it back into the return value
|
||||||
builder.add_reg_to_slot( source , me , :message , :return_value)
|
builder.add_reg_to_slot( source , me , Risc.message_reg , :return_value)
|
||||||
compiler.add_mom( Mom::ReturnSequence.new)
|
compiler.add_mom( Mom::ReturnSequence.new)
|
||||||
return compiler
|
return compiler
|
||||||
end
|
end
|
||||||
@ -67,7 +67,7 @@ module Risc
|
|||||||
ret_tmp = compiler.use_reg(:Label)
|
ret_tmp = compiler.use_reg(:Label)
|
||||||
builder.build do
|
builder.build do
|
||||||
add_load_constant("__init__ load return", exit_label , ret_tmp)
|
add_load_constant("__init__ load return", exit_label , ret_tmp)
|
||||||
add_reg_to_slot("__init__ store return", ret_tmp , :message , :return_address)
|
add_reg_to_slot("__init__ store return", ret_tmp , Risc.message_reg , :return_address)
|
||||||
add_function_call( "__init__ issue call" , Parfait.object_space.get_main)
|
add_function_call( "__init__ issue call" , Parfait.object_space.get_main)
|
||||||
add_code exit_label
|
add_code exit_label
|
||||||
end
|
end
|
||||||
@ -80,8 +80,8 @@ module Risc
|
|||||||
# Used by exit and __init__ (so it doesn't have to call it)
|
# Used by exit and __init__ (so it doesn't have to call it)
|
||||||
def exit_sequence(builder)
|
def exit_sequence(builder)
|
||||||
save_message( builder )
|
save_message( builder )
|
||||||
builder.add_slot_to_reg "get return" , :message , :return_value , :message
|
builder.add_slot_to_reg "get return" , Risc.message_reg , :return_value , Risc.message_reg
|
||||||
builder.reduce_int( "reduce return" , :message)
|
builder.reduce_int( "reduce return" , Risc.message_reg)
|
||||||
builder.add_code Syscall.new("emit_syscall(exit)", :exit )
|
builder.add_code Syscall.new("emit_syscall(exit)", :exit )
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -120,7 +120,7 @@ module Risc
|
|||||||
int = builder.compiler.use_reg(:Integer)
|
int = builder.compiler.use_reg(:Integer)
|
||||||
builder.add_new_int(source , return_tmp , int )
|
builder.add_new_int(source , return_tmp , int )
|
||||||
# save the return value into the message
|
# save the return value into the message
|
||||||
builder.add_code Risc.reg_to_slot( source , int , :message , :return_value )
|
builder.add_code Risc.reg_to_slot( source , int , Risc.message_reg , :return_value )
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user