Starting to rework slot instructions that create risc

have to go through all and all macros and all thems tests. What did the wise man say: one step at a time
This commit is contained in:
2020-03-01 16:41:58 +02:00
parent 4643be0ae6
commit 4888b3b6db
14 changed files with 73 additions and 44 deletions

View File

@ -11,25 +11,25 @@ module SlotMachine
assert_equal 8 , all.length , all_str
end
def test_1_slot
assert_slot_to_reg risc(1) ,:r0 , 9 , :r2
assert_slot_to_reg risc(1) ,:message , 9 , :"message.arg1"
end
def test_2_slot
assert_slot_to_reg risc(2) ,:r0 , 1 , :r3
assert_slot_to_reg risc(2) ,:message , 1 , :"message.next_message"
end
def test_3_reg
assert_reg_to_slot risc(3) , :r2 , :r3 , 2
assert_reg_to_slot risc(3) , :"message.arg1" , :"message.next_message" , 2
end
def test_4_slot
assert_slot_to_reg risc(4) ,:r0 , 2 , :r2
assert_slot_to_reg risc(4) ,:message , 2 , :"message.receiver"
end
def test_5
assert_slot_to_reg risc(5) ,:r2 , 0 , :r2
assert_slot_to_reg risc(5) ,:"message.receiver" , 0 , :"message.receiver.type"
end
def test_6
assert_slot_to_reg risc(6) ,:r0 , 1 , :r3
assert_slot_to_reg risc(6) ,:message , 1 , :"message.next_message"
end
def test_7
assert_reg_to_slot risc(7) , :r2 , :r3 , 9
assert_reg_to_slot risc(7) , :"message.receiver.type" , :"message.next_message" , 9
end
end
end

View File

@ -4,19 +4,20 @@ module SlotMachine
class TestNotSameCheck < SlotMachineInstructionTest
def instruction
target = Slotted.for(:message , [:caller])
NotSameCheck.new(target , target , Label.new("ok" , "target"))
target2 = Slotted.for(:message , [:next_message])
NotSameCheck.new(target , target2 , Label.new("ok" , "target"))
end
def test_len
assert_equal 5 , all.length , all_str
end
def test_1_slot
assert_slot_to_reg risc(1) ,:r0 , 6 , :r2
assert_slot_to_reg risc(1) ,:message , 6 , :"message.caller"
end
def test_2_slot
assert_slot_to_reg risc(2) ,:r0 , 6 , :r4
assert_slot_to_reg risc(2) ,:message , 1 , :"message.next_message"
end
def test_3_op
assert_operator risc(3) , :-, :r2 , :r4
assert_operator risc(3) , :-, :"message.caller" , :"message.next_message"
end
def test_4_zero
assert_zero risc(4) , "target"

View File

@ -18,19 +18,19 @@ module SlotMachine
assert_equal Risc::RegToSlot , @instructions.next.class
end
def test_ins_arr
assert_equal :r0 , @instructions.array.symbol
assert_equal :message , @instructions.array.symbol
end
def test_ins_reg
assert_equal :r2 , @instructions.register.symbol
assert_equal :"message.type" , @instructions.register.symbol
end
def test_ins_index
assert_equal 0 , @instructions.index
end
def test_ins_next_reg
assert_equal :r2 , @instructions.next.register.symbol
assert_equal :"message.type" , @instructions.next.register.symbol
end
def test_ins_next_arr
assert_equal :r0 , @instructions.next.array.symbol
assert_equal :message , @instructions.next.array.symbol
end
def test_ins_next_index
assert_equal 6 , @instructions.next.index

View File

@ -21,28 +21,28 @@ module SlotMachine
assert_equal NilClass , @instructions.next(4).class
end
def test_ins_next_reg
assert_equal :r2 , @instructions.next.register.symbol
assert_equal :"message.caller.type" , @instructions.next.register.symbol
end
def test_ins_next_arr
assert_equal :r2 , @instructions.next.array.symbol
assert_equal :"message.caller" , @instructions.next.array.symbol
end
def test_ins_next_index
assert_equal 0 , @instructions.next.index
end
def test_ins_next_2_reg
assert_equal :r3 , @instructions.next(2).register.symbol
assert_equal :"message.caller" , @instructions.next(2).register.symbol
end
def test_ins_next_2_arr
assert_equal :r0 , @instructions.next(2).array.symbol
assert_equal :"message" , @instructions.next(2).array.symbol
end
def test_ins_next_2_index
assert_equal 6 , @instructions.next(2).index
end
def test_ins_next_3_reg
assert_equal :r2 , @instructions.next(3).register.symbol
assert_equal :"message.caller.type" , @instructions.next(3).register.symbol
end
def test_ins_next_3_arr
assert_equal :r3 , @instructions.next(3).array.symbol
assert_equal :"message.caller" , @instructions.next(3).array.symbol
end
def test_ins_next_3_index
assert_equal 0 , @instructions.next(3).index

View File

@ -23,25 +23,25 @@ module SlotMachine
assert_equal NilClass , @instructions.next(3).class
end
def test_ins_load
assert_equal :r3 , @instructions.next.register.symbol
assert @instructions.next.register.is_object?
assert_equal Parfait::CacheEntry , @instructions.next.constant.class
end
def test_ins_next_reg
assert_equal :r2 , @instructions.register.symbol
assert_equal :"message.type" , @instructions.register.symbol
end
def test_ins_next_arr
assert_equal :r0 , @instructions.array.symbol
assert_equal :message , @instructions.array.symbol
end
def test_ins_next_index
assert_equal 0 , @instructions.index
end
def test_ins_next_2_reg
assert_equal :r2 , @instructions.next(2).register.symbol
assert_equal :"message.type" , @instructions.next(2).register.symbol
end
def test_ins_next_2_arr
assert_equal :r3 , @instructions.next(2).array.symbol
assert @instructions.next(2).array.is_object?
end
def test_ins_next_2_index
assert_equal 1 , @instructions.next(2).index