rubyx/lib/slot_machine/macro/operator.rb
Torsten d5411c7727 Last risc fixes that are not binary, move binary tests
move test that translate or create binary to own directory, 
for semantic distance (they are the only ones still failing)
2020-03-22 14:31:43 +02:00

24 lines
676 B
Ruby

module SlotMachine
class IntOperator < Macro
attr_reader :operator
def initialize(name , operator)
super(name)
@operator = operator
end
def to_risc(compiler)
builder = compiler.builder(compiler.source)
integer_tmp = builder.allocate_int
operator = @operator # make accessible in block
builder.build do
integer = message[:receiver].reduce_int(false)
integer_reg = message[:arg1].reduce_int(false)
result = integer.op operator , integer_reg
integer_tmp[Parfait::Integer.integer_index] << result
message[:return_value] << integer_tmp
end
return compiler
end
end
end