fix div4 and tests
also bug in reduce_int, compiler not carried through
This commit is contained in:
@ -71,7 +71,7 @@ module Risc
|
||||
def reduce_int(check = true)
|
||||
raise "type not int #{type.name}" if check && type.name != "Integer_Type"
|
||||
new_name = "#{@symbol}.data_1"
|
||||
new_reg = RegisterValue.new( new_name.to_sym , :Integer , extra)
|
||||
new_reg = RegisterValue.new( new_name.to_sym , :Integer , extra).set_compiler(compiler)
|
||||
reduce = Risc::SlotToReg.new( "int -> fix" , self , Parfait::Integer.integer_index , new_reg)
|
||||
compiler.add_code(reduce) if compiler
|
||||
reduce.register
|
||||
|
@ -3,10 +3,11 @@ module SlotMachine
|
||||
def to_risc(compiler)
|
||||
builder = compiler.builder(compiler.source)
|
||||
integer_tmp = builder.allocate_int
|
||||
integer_1 = builder.register( :integer_1 )
|
||||
integer_self = builder.register( :integer_self )
|
||||
builder.build do
|
||||
integer_self! << message[:receiver]
|
||||
integer_self.reduce_int
|
||||
integer_1! << 2
|
||||
integer_self = message[:receiver].to_reg.reduce_int(false)
|
||||
load_object( 2 , integer_1)
|
||||
integer_self.op :>> , integer_1
|
||||
integer_tmp[Parfait::Integer.integer_index] << integer_self
|
||||
message[:return_value] << integer_tmp
|
||||
|
Reference in New Issue
Block a user