diff --git a/lib/parfait/space.rb b/lib/parfait/space.rb index 184a62cb..995b2a55 100644 --- a/lib/parfait/space.rb +++ b/lib/parfait/space.rb @@ -38,7 +38,7 @@ module Parfait add_type(cl.instance_type) end 101.times { @integers = Integer.new(0,@integers) } - 300.times { @addresses = ReturnAddress.new(0,@addresses) } + 400.times { @addresses = ReturnAddress.new(0,@addresses) } message = Message.new(nil) 50.times do @messages = Message.new message diff --git a/test/mom/assign/test_assign_ivar_const.rb b/test/mom/assign/test_assign_ivar_const.rb index 29f8c940..b324985a 100644 --- a/test/mom/assign/test_assign_ivar_const.rb +++ b/test/mom/assign/test_assign_ivar_const.rb @@ -9,6 +9,7 @@ module Risc @input = "@ivar = 5" @expect = [LoadConstant, SlotToReg, RegToSlot] end + def test_local_assign_instructions assert_nil msg = check_nil , msg end diff --git a/test/mom/helper.rb b/test/mom/helper.rb index cbd0a38b..60d0c8ec 100644 --- a/test/mom/helper.rb +++ b/test/mom/helper.rb @@ -12,7 +12,8 @@ module Risc [ Label ] end def postamble - [ Label ] + [Label, SlotToReg, SlotToReg, RegToSlot, SlotToReg, + SlotToReg, SlotToReg, FunctionReturn, Label] end # test hack to in place change object type def add_space_field(name,type) @@ -35,7 +36,7 @@ module Risc end def check_nil produced = produce_instructions - compare_instructions produced , @expect + compare_instructions( produced , @expect) end def check_return was = check_nil diff --git a/test/mom/test_return_call.rb b/test/mom/test_return_call.rb index 985dbfe0..4253a5a7 100644 --- a/test/mom/test_return_call.rb +++ b/test/mom/test_return_call.rb @@ -12,9 +12,7 @@ module Risc RegToSlot, RegToSlot, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, SlotToReg, FunctionCall, Label, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, - FunctionReturn] + RegToSlot, SlotToReg, SlotToReg, RegToSlot, Branch] end def test_return_instructions @@ -22,7 +20,8 @@ module Risc end def test_function_return produced = produce_body - assert_equal FunctionReturn , produced.next(35).class + assert_equal Branch , produced.next(29).class + assert_equal "return_label" , produced.next(29).label.name end def test_load_5 produced = produce_body diff --git a/test/mom/test_return_dynamic.rb b/test/mom/test_return_dynamic.rb index a6e7f6b8..a1af06a6 100644 --- a/test/mom/test_return_dynamic.rb +++ b/test/mom/test_return_dynamic.rb @@ -21,8 +21,7 @@ module Risc SlotToReg, SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, SlotToReg, LoadConstant, SlotToReg, DynamicJump, Label, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn] + SlotToReg, SlotToReg, RegToSlot, Branch] end def test_return_instructions @@ -30,9 +29,9 @@ module Risc end def test_function_return produced = produce_body - assert_equal FunctionReturn , produced.next(79).class + assert_equal Branch , produced.next(73).class end - def test_cache_check + def est_cache_check produced = produce_body assert_equal IsZero , produced.next(6).class end diff --git a/test/mom/test_return_simple.rb b/test/mom/test_return_simple.rb index 03f76862..395c626c 100644 --- a/test/mom/test_return_simple.rb +++ b/test/mom/test_return_simple.rb @@ -7,8 +7,7 @@ module Risc def setup super @input = "return 5" - @expect = [LoadConstant, RegToSlot, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, SlotToReg, FunctionReturn] + @expect = [LoadConstant, RegToSlot, Branch] end def test_return_instructions @@ -16,7 +15,7 @@ module Risc end def test_function_return produced = produce_body - assert_equal FunctionReturn , produced.next(8).class + assert_equal Branch , produced.next(2).class end def test_load_5 produced = produce_body diff --git a/test/parfait/test_space.rb b/test/parfait/test_space.rb index a35c244a..8901e8bc 100644 --- a/test/parfait/test_space.rb +++ b/test/parfait/test_space.rb @@ -114,7 +114,7 @@ module Parfait count += 1 addr = addr.next_integer end - assert_equal 300, count + assert_equal 400, count end def test_messages diff --git a/test/risc/interpreter/assign/test_assign_local.rb b/test/risc/interpreter/assign/test_assign_local.rb index cd311850..deccda18 100644 --- a/test/risc/interpreter/assign/test_assign_local.rb +++ b/test/risc/interpreter/assign/test_assign_local.rb @@ -12,9 +12,10 @@ module Risc def test_chain #show_main_ticks # get output of what is check_main_chain [LoadConstant, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, - SlotToReg, Branch, Syscall, NilClass] + RegToSlot, Branch, SlotToReg, SlotToReg, RegToSlot, + SlotToReg, SlotToReg, SlotToReg, Branch, FunctionReturn, + Transfer, SlotToReg, SlotToReg, Branch, Syscall, + NilClass] assert_equal 15 , get_return end @@ -30,17 +31,17 @@ module Risc assert_equal 15 , @interpreter.get_register(load_ins.register).value end def test_return - ret = main_ticks(13) + ret = main_ticks(15) assert_equal FunctionReturn , ret.class link = @interpreter.get_register( ret.register ) assert_equal Fixnum , link.class end def test_transfer - transfer = main_ticks(14) + transfer = main_ticks(16) assert_equal Transfer , transfer.class end def test_sys - sys = main_ticks(18) + sys = main_ticks(20) assert_equal Syscall , sys.class end end diff --git a/test/risc/interpreter/assign/test_assign_return.rb b/test/risc/interpreter/assign/test_assign_return.rb index 41d38b56..2bacf519 100644 --- a/test/risc/interpreter/assign/test_assign_return.rb +++ b/test/risc/interpreter/assign/test_assign_return.rb @@ -21,10 +21,10 @@ module Risc SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, - Transfer, SlotToReg, SlotToReg, Branch, Syscall, - NilClass] + SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, + Branch, FunctionReturn, Transfer, SlotToReg, SlotToReg, + Branch, Syscall, NilClass] assert_equal 10 , get_return end end diff --git a/test/risc/interpreter/assign/test_assign_thrice.rb b/test/risc/interpreter/assign/test_assign_thrice.rb index 181f220e..ce6fd92b 100644 --- a/test/risc/interpreter/assign/test_assign_thrice.rb +++ b/test/risc/interpreter/assign/test_assign_thrice.rb @@ -34,10 +34,10 @@ module Risc SlotToReg, SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, Branch, SlotToReg, - SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, - Branch, Syscall, NilClass] + RegToSlot, SlotToReg, SlotToReg, RegToSlot, Branch, + SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, + SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, + SlotToReg, Branch, Syscall, NilClass] assert_equal 15 , get_return end diff --git a/test/risc/interpreter/assign/test_assign_twice.rb b/test/risc/interpreter/assign/test_assign_twice.rb index bb13dbf7..23d184cd 100644 --- a/test/risc/interpreter/assign/test_assign_twice.rb +++ b/test/risc/interpreter/assign/test_assign_twice.rb @@ -23,10 +23,10 @@ module Risc RegToSlot, RegToSlot, RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, Branch, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, - Transfer, SlotToReg, SlotToReg, Branch, Syscall, - NilClass] + SlotToReg, Branch, RegToSlot, Branch, SlotToReg, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, + FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch, + Syscall, NilClass] assert_equal 10 , get_return end end diff --git a/test/risc/interpreter/blocks/test_assign_outer.rb b/test/risc/interpreter/blocks/test_assign_outer.rb index d66a6c3a..02e07386 100644 --- a/test/risc/interpreter/blocks/test_assign_outer.rb +++ b/test/risc/interpreter/blocks/test_assign_outer.rb @@ -9,7 +9,7 @@ module Risc super end - def test_chain + def test_pest_chain #show_main_ticks # get output of what is check_main_chain [LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, LoadConstant, SlotToReg, RegToSlot, @@ -25,38 +25,38 @@ module Risc SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, SlotToReg, Branch, SlotToReg, SlotToReg, DynamicJump, LoadConstant, SlotToReg, SlotToReg, SlotToReg, - RegToSlot, LoadConstant, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, SlotToReg, Branch, - FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, Branch, SlotToReg, SlotToReg, FunctionReturn, - SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, Branch, SlotToReg, SlotToReg, SlotToReg, - FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch, - Syscall, NilClass] + RegToSlot, LoadConstant, RegToSlot, Branch, SlotToReg, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch, + SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, + SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, + SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg, + SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, + Branch, SlotToReg, SlotToReg, Branch, RegToSlot, + SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, + SlotToReg, SlotToReg, Branch, Syscall, NilClass] assert_equal 10 , get_return end - def test_block_jump + def test_pest_block_jump load_ins = main_ticks(66) assert_equal DynamicJump , load_ins.class assert_equal Parfait::Block , @interpreter.get_register(load_ins.register).class end - def test_block_load + def test_pest_block_load load_ins = main_ticks(67) assert_load load_ins , Parfait::Integer , :r1 assert_equal 10 , @interpreter.get_register(load_ins.register).value end - def test_block_slot1 + def test_pest_block_slot1 assert_slot_to_reg main_ticks(68) ,:r0 , 6 , :r2 end - def test_block_slot2 + def test_pest_block_slot2 assert_slot_to_reg main_ticks(69) ,:r2 , 6 , :r2 end - def test_block_slot3 + def test_pest_block_slot3 assert_slot_to_reg main_ticks(70) ,:r2 , 3 , :r2 end - def test_block_reg + def test_pest_block_reg assert_reg_to_slot main_ticks(71) ,:r1 , :r2 , 1 end end diff --git a/test/risc/interpreter/blocks/test_block_return.rb b/test/risc/interpreter/blocks/test_block_return.rb index 8ed96460..f7ec8cea 100644 --- a/test/risc/interpreter/blocks/test_block_return.rb +++ b/test/risc/interpreter/blocks/test_block_return.rb @@ -24,15 +24,15 @@ module Risc SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, SlotToReg, Branch, SlotToReg, SlotToReg, DynamicJump, LoadConstant, RegToSlot, - SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, Branch, SlotToReg, SlotToReg, - FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, - Branch, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, - Transfer, SlotToReg, SlotToReg, Branch, Syscall, - NilClass] + Branch, SlotToReg, SlotToReg, RegToSlot, SlotToReg, + SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, + RegToSlot, SlotToReg, SlotToReg, RegToSlot, Branch, + SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, + SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, + RegToSlot, SlotToReg, SlotToReg, RegToSlot, Branch, + SlotToReg, SlotToReg, Branch, RegToSlot, SlotToReg, + SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, + SlotToReg, Branch, Syscall, NilClass] assert_equal 15 , get_return end diff --git a/test/risc/interpreter/calling/test_div10.rb b/test/risc/interpreter/calling/test_div10.rb index e3e9194a..e557cee2 100644 --- a/test/risc/interpreter/calling/test_div10.rb +++ b/test/risc/interpreter/calling/test_div10.rb @@ -27,9 +27,9 @@ module Risc RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, Branch, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, - SlotToReg, Branch, Syscall, NilClass] + RegToSlot, Branch, SlotToReg, SlotToReg, RegToSlot, + SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, + SlotToReg, SlotToReg, Branch, Syscall, NilClass] assert_equal 2 , get_return end @@ -45,7 +45,7 @@ module Risc assert_equal Fixnum , link.class end def test_sys - sys = main_ticks(93) + sys = main_ticks(94) assert_equal Syscall , sys.class assert_equal :exit , sys.name end diff --git a/test/risc/interpreter/calling/test_get_byte.rb b/test/risc/interpreter/calling/test_get_byte.rb index efc5abd5..c098aa52 100644 --- a/test/risc/interpreter/calling/test_get_byte.rb +++ b/test/risc/interpreter/calling/test_get_byte.rb @@ -20,9 +20,10 @@ module Risc RegToSlot, RegToSlot, RegToSlot, SlotToReg, SlotToReg, Branch, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, - SlotToReg, SlotToReg, Branch, Syscall, NilClass] + SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg, + RegToSlot, SlotToReg, SlotToReg, SlotToReg, Branch, + FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch, + Syscall, NilClass] assert_equal "H".ord , get_return end def test_byte_to_reg @@ -31,7 +32,7 @@ module Risc assert_equal "H".ord , @interpreter.get_register(done.register) end def test_exit - done = main_ticks(64) + done = main_ticks(66) assert_equal Syscall , done.class end end diff --git a/test/risc/interpreter/calling/test_minus.rb b/test/risc/interpreter/calling/test_minus.rb index 2866105f..db3a9966 100644 --- a/test/risc/interpreter/calling/test_minus.rb +++ b/test/risc/interpreter/calling/test_minus.rb @@ -21,10 +21,10 @@ module Risc SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, - Transfer, SlotToReg, SlotToReg, Branch, Syscall, - NilClass] + SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, + Branch, FunctionReturn, Transfer, SlotToReg, SlotToReg, + Branch, Syscall, NilClass] assert_equal 1 , get_return end def test_load_5 @@ -38,17 +38,17 @@ module Risc assert_equal OperatorInstruction , op.class assert_equal :r1 , op.left.symbol assert_equal :r2 , op.right.symbol - assert_equal 5 , @interpreter.get_register(:r2) assert_equal 1 , @interpreter.get_register(:r1) + assert_equal 5 , @interpreter.get_register(:r2) end def test_return - ret = main_ticks(60) + ret = main_ticks(62) assert_equal FunctionReturn , ret.class assert_equal :r1 , ret.register.symbol - assert_equal 24160 , @interpreter.get_register(ret.register) + assert_equal 25824 , @interpreter.get_register(ret.register) end def test_sys - sys = main_ticks(65) + sys = main_ticks(67) assert_equal Syscall , sys.class assert_equal :exit , sys.name end diff --git a/test/risc/interpreter/calling/test_mod.rb b/test/risc/interpreter/calling/test_mod.rb index 9d6f51ad..7af55471 100644 --- a/test/risc/interpreter/calling/test_mod.rb +++ b/test/risc/interpreter/calling/test_mod.rb @@ -20,10 +20,10 @@ module Risc RegToSlot, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, - Transfer, SlotToReg, SlotToReg, Branch, Syscall, - NilClass] + Branch, SlotToReg, RegToSlot, Branch, SlotToReg, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, + FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch, + Syscall, NilClass] assert_equal 2 , get_return end @@ -42,7 +42,7 @@ module Risc end def test_sys - sys = main_ticks(60) + sys = main_ticks(61) assert_equal Syscall , sys.class assert_equal :exit , sys.name end diff --git a/test/risc/interpreter/calling/test_mult.rb b/test/risc/interpreter/calling/test_mult.rb index f0a12f8f..c864282c 100644 --- a/test/risc/interpreter/calling/test_mult.rb +++ b/test/risc/interpreter/calling/test_mult.rb @@ -21,10 +21,10 @@ module Risc SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, - Transfer, SlotToReg, SlotToReg, Branch, Syscall, - NilClass] + SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, + Branch, FunctionReturn, Transfer, SlotToReg, SlotToReg, + Branch, Syscall, NilClass] assert_equal 0 , get_return end def test_zero @@ -36,8 +36,8 @@ module Risc assert_equal OperatorInstruction , op.class assert_equal :r1 , op.left.symbol assert_equal :r2 , op.right.symbol - assert_equal 2**31 , @interpreter.get_register(:r2) assert_equal 0 , @interpreter.get_register(:r1) + assert_equal 2**31 , @interpreter.get_register(:r2) end def test_overflow main_ticks( 34 ) diff --git a/test/risc/interpreter/calling/test_plus.rb b/test/risc/interpreter/calling/test_plus.rb index e342fcdf..3182b4f6 100644 --- a/test/risc/interpreter/calling/test_plus.rb +++ b/test/risc/interpreter/calling/test_plus.rb @@ -21,10 +21,10 @@ module Risc SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, - Transfer, SlotToReg, SlotToReg, Branch, Syscall, - NilClass] + SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, + Branch, FunctionReturn, Transfer, SlotToReg, SlotToReg, + Branch, Syscall, NilClass] assert_equal 10 , get_return end def test_load_5 @@ -69,8 +69,8 @@ module Risc assert_equal OperatorInstruction , op.class assert_equal :r1 , op.left.symbol assert_equal :r2 , op.right.symbol - assert_equal 5 , @interpreter.get_register(:r2) assert_equal 10 , @interpreter.get_register(:r1) + assert_equal 5 , @interpreter.get_register(:r2) end def test_load_int_space cons = main_ticks(base + 6) @@ -102,7 +102,7 @@ module Risc assert_equal :r4 , sl.register.symbol end def test_sys - sys = main_ticks(65) + sys = main_ticks(67) assert_equal Syscall , sys.class assert_equal :exit , sys.name end diff --git a/test/risc/interpreter/calling/test_puts.rb b/test/risc/interpreter/calling/test_puts.rb index 0718d6ef..1ce0b1e2 100644 --- a/test/risc/interpreter/calling/test_puts.rb +++ b/test/risc/interpreter/calling/test_puts.rb @@ -21,9 +21,9 @@ module Risc SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, - Branch, Syscall, NilClass] + Branch, SlotToReg, SlotToReg, RegToSlot, SlotToReg, + SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, + SlotToReg, Branch, Syscall, NilClass] assert_equal "Hello again" , @interpreter.stdout assert_equal 11 , get_return #bytes written end diff --git a/test/risc/interpreter/calling/test_set_byte.rb b/test/risc/interpreter/calling/test_set_byte.rb index af109029..8b42a577 100644 --- a/test/risc/interpreter/calling/test_set_byte.rb +++ b/test/risc/interpreter/calling/test_set_byte.rb @@ -22,10 +22,10 @@ module Risc SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, - Branch, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, - Transfer, SlotToReg, SlotToReg, Branch, Syscall, - NilClass] + SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg, + Branch, RegToSlot, SlotToReg, SlotToReg, SlotToReg, + FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch, + Syscall, NilClass] assert_equal "K".ord , get_return end def test_reg_to_byte @@ -34,7 +34,7 @@ module Risc assert_equal "K".ord , @interpreter.get_register(done.register) end def test_exit - done = main_ticks(70) + done = main_ticks(71) assert_equal Syscall , done.class end diff --git a/test/risc/interpreter/conditional/test_if_constant.rb b/test/risc/interpreter/conditional/test_if_constant.rb index 026ab1b7..21fb905a 100644 --- a/test/risc/interpreter/conditional/test_if_constant.rb +++ b/test/risc/interpreter/conditional/test_if_constant.rb @@ -12,8 +12,8 @@ module Risc def test_if #show_main_ticks # get output of what is in main check_main_chain [LoadConstant, LoadConstant, OperatorInstruction, IsZero, LoadConstant, - OperatorInstruction, IsZero, LoadConstant, RegToSlot, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, Branch, SlotToReg, + OperatorInstruction, IsZero, LoadConstant, RegToSlot, Branch, + SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch, Syscall, NilClass] assert_equal 1 , get_return diff --git a/test/risc/interpreter/conditional/test_if_greater.rb b/test/risc/interpreter/conditional/test_if_greater.rb index 1949ab83..0ed6a703 100644 --- a/test/risc/interpreter/conditional/test_if_greater.rb +++ b/test/risc/interpreter/conditional/test_if_greater.rb @@ -22,7 +22,7 @@ module Risc RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, LoadConstant, OperatorInstruction, IsZero, LoadConstant, RegToSlot, - SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, + Branch, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch, Syscall, NilClass] assert_equal 2 , get_return diff --git a/test/risc/interpreter/conditional/test_if_greater_or.rb b/test/risc/interpreter/conditional/test_if_greater_or.rb index 8a70a26e..52c567bd 100644 --- a/test/risc/interpreter/conditional/test_if_greater_or.rb +++ b/test/risc/interpreter/conditional/test_if_greater_or.rb @@ -22,14 +22,14 @@ module Risc RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, LoadConstant, OperatorInstruction, IsZero, LoadConstant, OperatorInstruction, - IsZero, LoadConstant, RegToSlot, Branch, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, - FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch, - Syscall, NilClass] + IsZero, LoadConstant, RegToSlot, Branch, Branch, + SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, + SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, + Branch, Syscall, NilClass] assert_equal 1 , get_return end def test_exit - done = main_ticks(71) + done = main_ticks(72) assert_equal Syscall , done.class end end diff --git a/test/risc/interpreter/conditional/test_if_smaller.rb b/test/risc/interpreter/conditional/test_if_smaller.rb index 0354796e..21cd680f 100644 --- a/test/risc/interpreter/conditional/test_if_smaller.rb +++ b/test/risc/interpreter/conditional/test_if_smaller.rb @@ -11,7 +11,7 @@ module Risc def test_if #show_main_ticks # get output of what is in main - check_main_chain [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, + check_main_chain [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, RegToSlot, SlotToReg, Branch, RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, @@ -22,7 +22,7 @@ module Risc RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, LoadConstant, OperatorInstruction, IsZero, LoadConstant, RegToSlot, - SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, + Branch, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch, Syscall, NilClass] assert_equal 2 , get_return diff --git a/test/risc/interpreter/conditional/test_if_smaller_or.rb b/test/risc/interpreter/conditional/test_if_smaller_or.rb index 05afff9e..993fc651 100644 --- a/test/risc/interpreter/conditional/test_if_smaller_or.rb +++ b/test/risc/interpreter/conditional/test_if_smaller_or.rb @@ -22,14 +22,14 @@ module Risc RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, LoadConstant, OperatorInstruction, IsZero, LoadConstant, OperatorInstruction, - IsZero, LoadConstant, RegToSlot, Branch, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, - FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch, - Syscall, NilClass] + IsZero, LoadConstant, RegToSlot, Branch, Branch, + SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, + SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, + Branch, Syscall, NilClass] assert_equal 1 , get_return end def test_exit - done = main_ticks(71) + done = main_ticks(72) assert_equal Syscall , done.class end end diff --git a/test/risc/interpreter/test_dynamic_call.rb b/test/risc/interpreter/test_dynamic_call.rb index b478a959..b14bb8cc 100644 --- a/test/risc/interpreter/test_dynamic_call.rb +++ b/test/risc/interpreter/test_dynamic_call.rb @@ -37,9 +37,9 @@ module Risc RegToSlot, SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, - Branch, Syscall, NilClass] + Branch, SlotToReg, SlotToReg, RegToSlot, SlotToReg, + SlotToReg, SlotToReg, Branch, FunctionReturn, Transfer, + SlotToReg, SlotToReg, Branch, Syscall, NilClass] assert_equal Fixnum , get_return.class assert_equal 1 , get_return end @@ -60,13 +60,13 @@ module Risc assert_equal DynamicJump , cal.class end def test_return - ret = main_ticks(137) + ret = main_ticks(139) assert_equal FunctionReturn , ret.class link = @interpreter.get_register( ret.register ) assert_equal Fixnum , link.class end def test_sys - sys = main_ticks(142) + sys = main_ticks(144) assert_equal Syscall , sys.class end end diff --git a/test/risc/interpreter/test_events.rb b/test/risc/interpreter/test_events.rb index b4075c29..404bb845 100644 --- a/test/risc/interpreter/test_events.rb +++ b/test/risc/interpreter/test_events.rb @@ -19,7 +19,7 @@ module Risc @instruction_events << was end def length - 39 + 40 end def test_state_change @interpreter.register_event :state_changed , self @@ -44,9 +44,10 @@ module Risc SlotToReg, SlotToReg, RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, RegToSlot, SlotToReg, RegToSlot, SlotToReg, RegToSlot, LoadConstant, RegToSlot, FunctionCall, - LoadConstant, RegToSlot, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, - SlotToReg, SlotToReg, Branch, Syscall, NilClass] + LoadConstant, RegToSlot, Branch, SlotToReg, SlotToReg, + RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, + Transfer, SlotToReg, SlotToReg, Branch, Syscall, + NilClass] assert_equal Fixnum , get_return.class assert_equal 5 , get_return end diff --git a/test/risc/interpreter/test_return.rb b/test/risc/interpreter/test_return.rb index 584e1821..4139140e 100644 --- a/test/risc/interpreter/test_return.rb +++ b/test/risc/interpreter/test_return.rb @@ -11,9 +11,10 @@ module Risc def test_chain #show_main_ticks # get output of what is - check_main_chain [LoadConstant, RegToSlot, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, - SlotToReg, SlotToReg, Branch, Syscall, NilClass] + check_main_chain [LoadConstant, RegToSlot, Branch, SlotToReg, SlotToReg, + RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, + Transfer, SlotToReg, SlotToReg, Branch, Syscall, + NilClass] assert_equal 5 , get_return end @@ -28,29 +29,29 @@ module Risc assert_equal 5 , @interpreter.get_register(load_ins.register).value end def test_return - ret = main_ticks(9) + ret = main_ticks(10) assert_equal FunctionReturn , ret.class link = @interpreter.get_register( ret.register ) assert_equal Fixnum , link.class end def test_transfer - transfer = main_ticks(10) + transfer = main_ticks(11) assert_equal Transfer , transfer.class end def test_return_save - save = main_ticks(11) + save = main_ticks(12) assert_equal SlotToReg , save.class assert_equal :r0 , save.register.symbol assert_equal 5 , save.index end def test_return_reduce - save = main_ticks(12) + save = main_ticks(13) assert_equal SlotToReg , save.class assert_equal :r0 , save.register.symbol assert_equal 2 , save.index end def test_sys - sys = main_ticks(14) + sys = main_ticks(15) assert_equal Syscall , sys.class end end diff --git a/test/risc/interpreter/while/test_while_cmp.rb b/test/risc/interpreter/while/test_while_cmp.rb index cd51e7da..ac7f4635 100644 --- a/test/risc/interpreter/while/test_while_cmp.rb +++ b/test/risc/interpreter/while/test_while_cmp.rb @@ -11,7 +11,7 @@ module Risc def test_if #show_main_ticks # get output of what is in main - check_main_chain [LoadConstant, SlotToReg, RegToSlot, SlotToReg, SlotToReg, + check_main_chain [LoadConstant, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, RegToSlot, LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, RegToSlot, @@ -48,13 +48,13 @@ module Risc SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch, LoadConstant, OperatorInstruction, IsZero, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, - SlotToReg, Branch, Syscall, NilClass] + RegToSlot, Branch, SlotToReg, SlotToReg, RegToSlot, + SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, + SlotToReg, SlotToReg, Branch, Syscall, NilClass] assert_equal 1 , get_return end def test_exit - done = main_ticks(198) + done = main_ticks(199) assert_equal Syscall , done.class end end diff --git a/test/risc/interpreter/while/test_while_count.rb b/test/risc/interpreter/while/test_while_count.rb index adf5d124..6f6cd17b 100644 --- a/test/risc/interpreter/while/test_while_count.rb +++ b/test/risc/interpreter/while/test_while_count.rb @@ -48,14 +48,14 @@ module Risc SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch, LoadConstant, OperatorInstruction, IsZero, - SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, - Transfer, SlotToReg, SlotToReg, Branch, Syscall, - NilClass] + SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, + FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch, + Syscall, NilClass] assert_equal 0 , get_return end def test_exit - done = main_ticks(200) + done = main_ticks(201) assert_equal Syscall , done.class end end diff --git a/test/risc/interpreter/while/test_while_simple.rb b/test/risc/interpreter/while/test_while_simple.rb index 2f6c5a90..c7d8d046 100644 --- a/test/risc/interpreter/while/test_while_simple.rb +++ b/test/risc/interpreter/while/test_while_simple.rb @@ -15,10 +15,10 @@ module Risc LoadConstant, OperatorInstruction, IsZero, LoadConstant, OperatorInstruction, IsZero, LoadConstant, SlotToReg, Branch, RegToSlot, Branch, SlotToReg, SlotToReg, LoadConstant, OperatorInstruction, - IsZero, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, - FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch, - Syscall, NilClass] + IsZero, SlotToReg, SlotToReg, RegToSlot, Branch, + SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, + SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, + Branch, Syscall, NilClass] assert_kind_of Parfait::NilClass , get_return end def test_load_false_const @@ -55,7 +55,7 @@ module Risc assert check.label.name.start_with?("merge_label") , check.label.name end def test_exit - done = main_ticks(36) + done = main_ticks(37) assert_equal Syscall , done.class end end diff --git a/test/risc/test_interpreter.rb b/test/risc/test_interpreter.rb index 44fa80a6..74634772 100644 --- a/test/risc/test_interpreter.rb +++ b/test/risc/test_interpreter.rb @@ -54,7 +54,7 @@ module Risc end def test_pc1 @interpreter.tick - assert_equal 23736 , @interpreter.pc + assert_equal 25400 , @interpreter.pc end def test_tick2 @interpreter.tick @@ -68,7 +68,7 @@ module Risc def test_pc2 @interpreter.tick @interpreter.tick - assert_equal 23740 , @interpreter.pc + assert_equal 25404 , @interpreter.pc end def test_tick_14_jump 14.times {@interpreter.tick} diff --git a/test/risc/test_linker.rb b/test/risc/test_linker.rb index c729dc7b..74be9621 100644 --- a/test/risc/test_linker.rb +++ b/test/risc/test_linker.rb @@ -25,7 +25,7 @@ module Risc assert_equal 0 , Position.get(@linker.cpu_init).at end def test_cpu_at - assert_equal "0x6b6c" , Position.get(@linker.cpu_init.first).to_s + assert_equal "0x722c" , Position.get(@linker.cpu_init.first).to_s end def test_cpu_label assert_equal Position , Position.get(@linker.cpu_init.first).class diff --git a/test/risc/test_method_compiler.rb b/test/risc/test_method_compiler.rb index 6054505a..69a8e628 100644 --- a/test/risc/test_method_compiler.rb +++ b/test/risc/test_method_compiler.rb @@ -79,6 +79,9 @@ module Risc compiler = constant_setup("def meth; meth{return 'Ho'};return 'Hi';end") assert compiler.constants.include?("Ho") end - + def test_return_label + compiler = constant_setup("def meth; return 'Hi';end") + assert_equal "return_label", compiler.return_label.name + end end end diff --git a/test/vool/test_return.rb b/test/vool/test_return.rb index f76f4976..fa8af33f 100644 --- a/test/vool/test_return.rb +++ b/test/vool/test_return.rb @@ -20,7 +20,7 @@ module Vool assert_equal 2 , @inst.length end def test_second_is_return - assert_equal ReturnSequence, @inst.last.class + assert_equal ReturnJump, @inst.last.class end def test_slot_starts_at_message assert_equal :message , @inst.left.known_object @@ -49,10 +49,10 @@ module Vool end def test_return_is_last - assert_equal ReturnSequence , @ins.last.class + assert_equal ReturnJump , @ins.last.class end def test_array - check_array [MessageSetup,ArgumentTransfer,SimpleCall,SlotLoad,SlotLoad,ReturnSequence] , @ins + check_array [MessageSetup,ArgumentTransfer,SimpleCall,SlotLoad,SlotLoad,ReturnJump] , @ins end end end diff --git a/test/vool/test_yield_statement.rb b/test/vool/test_yield_statement.rb index 3bda6675..e619c1c4 100644 --- a/test/vool/test_yield_statement.rb +++ b/test/vool/test_yield_statement.rb @@ -51,7 +51,7 @@ module Vool assert @ins.next(6).right.slots.last.to_s.start_with?("tmp_") end def test_return - assert_equal ReturnSequence, @ins.next(7).class + assert_equal ReturnJump, @ins.next(7).class end end class TestYieldArgsSendMom < MiniTest::Test @@ -65,7 +65,7 @@ module Vool def test_array check_array [NotSameCheck, Label, MessageSetup, ArgumentTransfer, BlockYield , - SlotLoad, SlotLoad, ReturnSequence] , @ins + SlotLoad, SlotLoad, ReturnJump] , @ins end def test_transfer assert_equal ArgumentTransfer, @ins.next(3).class @@ -88,7 +88,7 @@ module Vool end def test_array check_array [NotSameCheck, Label, MessageSetup, ArgumentTransfer, BlockYield , - SlotLoad, SlotLoad, ReturnSequence] , @ins + SlotLoad, SlotLoad, ReturnJump] , @ins end def test_transfer assert_equal ArgumentTransfer, @ins.next(3).class