remove some more add_xx functions
also load labels by dsl now
This commit is contained in:
@ -106,7 +106,7 @@ module Risc
|
||||
def add_receiver(builder)
|
||||
message = Risc.message_reg
|
||||
ret_type = builder.compiler.receiver_type
|
||||
ret = builder.compiler.use_reg( ret_type )
|
||||
ret = builder.compiler.use_reg( ret_type ).set_builder(builder)
|
||||
builder.add_slot_to_reg(" load self" , message , :receiver , ret )
|
||||
builder.add_slot_to_reg( "int -> fix" , ret , Parfait::Integer.integer_index , ret)
|
||||
return ret
|
||||
@ -167,7 +167,7 @@ module Risc
|
||||
builder.add_code Risc.op( s , :+ , q , tmp )
|
||||
|
||||
builder.add_new_int(s,q , tmp)
|
||||
builder.add_reg_to_slot( s , tmp , Risc.message_reg , :return_value)
|
||||
builder.build{ message[:return_value] << tmp }
|
||||
|
||||
compiler.add_mom( Mom::ReturnSequence.new)
|
||||
return compiler
|
||||
|
@ -70,11 +70,11 @@ module Risc
|
||||
end
|
||||
|
||||
exit_label = Risc.label(compiler.source , "#{compiler.receiver_type.object_class.name}.#{compiler.source.name}" )
|
||||
ret_tmp = compiler.use_reg(:Label)
|
||||
ret_tmp = compiler.use_reg(:Label).set_builder(builder)
|
||||
builder.build do
|
||||
add_load_constant("__init__ load return", exit_label , ret_tmp)
|
||||
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)
|
||||
ret_tmp << exit_label
|
||||
message[:return_address] << ret_tmp
|
||||
add_code Risc.function_call( "__init__ issue call" , Parfait.object_space.get_main)
|
||||
add_code exit_label
|
||||
end
|
||||
compiler.reset_regs
|
||||
|
Reference in New Issue
Block a user