diff --git a/test/mom/assign/test_assign_local_send.rb b/test/mom/assign/test_assign_local_send.rb index 10817e4f..88fd9ed8 100644 --- a/test/mom/assign/test_assign_local_send.rb +++ b/test/mom/assign/test_assign_local_send.rb @@ -11,8 +11,8 @@ module Risc SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, RegToSlot, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, LoadConstant, FunctionCall, Label, - SlotToReg, SlotToReg, RegToSlot] + RegToSlot, SlotToReg, FunctionCall, Label, SlotToReg, + SlotToReg, RegToSlot] end def test_local_assign_instructions assert_nil msg = check_nil , msg diff --git a/test/mom/send/test_send_simple.rb b/test/mom/send/test_send_simple.rb index 25f00f74..ad13dae6 100644 --- a/test/mom/send/test_send_simple.rb +++ b/test/mom/send/test_send_simple.rb @@ -11,7 +11,7 @@ module Risc SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, RegToSlot, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, LoadConstant, FunctionCall, Label] + RegToSlot, SlotToReg, FunctionCall, Label] end def test_send_instructions @@ -27,16 +27,16 @@ module Risc end def test_call_reg_setup produced = produce_body - assert_equal produced.next(22).register , produced.next(23).register + assert_equal :div4 , produced.next(22).method.name end def test_function_call produced = produce_body - assert_equal FunctionCall , produced.next(23).class - assert_equal :div4 , produced.next(23).method.name + assert_equal FunctionCall , produced.next(22).class + assert_equal :div4 , produced.next(22).method.name end def test_check_continue produced = produce_body - assert produced.next(24).name.start_with?("continue_") + assert produced.next(23).name.start_with?("continue_") end #TODO check the message setup, type and frame moves end diff --git a/test/mom/send/test_send_simple_args.rb b/test/mom/send/test_send_simple_args.rb index 63a3d548..81c30ee3 100644 --- a/test/mom/send/test_send_simple_args.rb +++ b/test/mom/send/test_send_simple_args.rb @@ -12,7 +12,7 @@ module Risc RegToSlot, SlotToReg, RegToSlot, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, - SlotToReg, LoadConstant, FunctionCall, Label] + SlotToReg, FunctionCall, Label] end def test_send_instructions @@ -61,14 +61,14 @@ module Risc produced = produce_body assert_equal SlotToReg , produced.next(base+5).class assert_equal :r0 , produced.next(base+5).array.symbol - assert_equal :r3 , produced.next(base+5).register.symbol + assert_equal :r2 , produced.next(base+5).register.symbol assert_equal 1 , produced.next(base+5).index end def test_store_ produced = produce_body assert_equal RegToSlot , produced.next(base+6).class - assert_equal :r3 , produced.next(base+6).array.symbol - assert_equal :r2 , produced.next(base+6).register.symbol + assert_equal :r2 , produced.next(base+6).array.symbol + assert_equal :r1 , produced.next(base+6).register.symbol assert_equal 4 , produced.next(base+6).index end @@ -82,16 +82,12 @@ module Risc def test_function_call produced = produce_body - assert_equal FunctionCall , produced.next(base+9).class - assert_equal :get_internal_word , produced.next(base+9).method.name - end - def test_call_reg_setup - produced = produce_body - assert_equal produced.next(base+8).register , produced.next(base+9).register + assert_equal FunctionCall , produced.next(base+8).class + assert_equal :get_internal_word , produced.next(base+8).method.name end def test_check_continue produced = produce_body - assert produced.next(base+10).name.start_with?("continue_") + assert produced.next(base+9).name.start_with?("continue_") end #TODO check the message setup, type and frame moves end diff --git a/test/mom/send/test_setup_simple.rb b/test/mom/send/test_setup_simple.rb index 0aeb1cbf..e64f9991 100644 --- a/test/mom/send/test_setup_simple.rb +++ b/test/mom/send/test_setup_simple.rb @@ -12,7 +12,7 @@ module Risc SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, RegToSlot, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, LoadConstant, FunctionCall, Label] + RegToSlot, SlotToReg, FunctionCall, Label] @produced = produce_body end diff --git a/test/mom/test_return_call.rb b/test/mom/test_return_call.rb index d7d54cb4..31115174 100644 --- a/test/mom/test_return_call.rb +++ b/test/mom/test_return_call.rb @@ -11,10 +11,10 @@ module Risc SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, RegToSlot, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, LoadConstant, FunctionCall, Label, + RegToSlot, SlotToReg, FunctionCall, Label, SlotToReg, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, FunctionReturn] + FunctionReturn] end def test_return_instructions @@ -22,7 +22,7 @@ module Risc end def test_function_return produced = produce_body - assert_equal FunctionReturn , produced.next(36).class + assert_equal FunctionReturn , produced.next(35).class end def test_load_5 produced = produce_body diff --git a/test/mom/test_while_cmp.rb b/test/mom/test_while_cmp.rb index f47a4152..18ca2f60 100644 --- a/test/mom/test_while_cmp.rb +++ b/test/mom/test_while_cmp.rb @@ -12,11 +12,10 @@ module Risc SlotToReg, RegToSlot, SlotToReg, RegToSlot, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, LoadConstant, FunctionCall, Label, - SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - LoadConstant, OperatorInstruction, IsZero, LoadConstant, OperatorInstruction, - IsZero, LoadConstant, SlotToReg, RegToSlot, Branch, - Label] + RegToSlot, SlotToReg, FunctionCall, Label, SlotToReg, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, LoadConstant, + OperatorInstruction, IsZero, LoadConstant, OperatorInstruction, IsZero, + LoadConstant, SlotToReg, RegToSlot, Branch, Label] end def test_while_instructions @@ -41,19 +40,19 @@ module Risc end def test_false_check produced = produce_body - assert_equal Risc::IsZero , produced.next(37).class - assert produced.next(37).label.name.start_with?("merge_label") , produced.next(37).label.name + assert_equal Risc::IsZero , produced.next(36).class + assert produced.next(36).label.name.start_with?("merge_label") , produced.next(36).label.name end def test_nil_load produced = produce_body - assert_equal Risc::LoadConstant , produced.next(38).class - assert_equal Parfait::NilClass , produced.next(38).constant.class + assert_equal Risc::LoadConstant , produced.next(37).class + assert_equal Parfait::NilClass , produced.next(37).constant.class end def test_back_jump # should jump back to condition label produced = produce_body - assert_equal Risc::Branch , produced.next(44).class - assert_equal produced , produced.next(44).label + assert_equal Risc::Branch , produced.next(43).class + assert_equal produced , produced.next(43).label end end diff --git a/test/risc/interpreter/conditional/test_if_constant.rb b/test/risc/interpreter/conditional/test_if_constant.rb index 2f5cbcca..c5d9d8e0 100644 --- a/test/risc/interpreter/conditional/test_if_constant.rb +++ b/test/risc/interpreter/conditional/test_if_constant.rb @@ -11,35 +11,35 @@ module Risc def test_if #show_main_ticks # get output of what is in main - check_main_chain [Label, LoadConstant, LoadConstant, OperatorInstruction, IsZero, - LoadConstant, OperatorInstruction, IsZero, Label, LoadConstant, - RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, FunctionReturn, Transfer, Syscall, NilClass] + check_main_chain [LoadConstant, LoadConstant, OperatorInstruction, IsZero, LoadConstant, + OperatorInstruction, IsZero, LoadConstant, RegToSlot, SlotToReg, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, FunctionReturn, + Transfer, Syscall, NilClass] assert_equal Parfait::Word , get_return.class assert_equal "then" , get_return.to_string end def test_load_10 - load = main_ticks(2) + load = main_ticks(1) assert_equal LoadConstant , load.class assert_equal 10 , load.constant.value end def test_load_false - load = main_ticks(3) + load = main_ticks(2) assert_equal LoadConstant , load.class assert_equal Parfait::FalseClass , load.constant.class end def test_compare - op = main_ticks(4) + op = main_ticks(3) assert_equal OperatorInstruction , op.class assert_equal :- , op.operator end def test_not_zero - check = main_ticks(5) + check = main_ticks(4) assert_equal IsZero , check.class assert check.label.name.start_with?("false_label") , check.label.name end def test_exit - done = main_ticks(19) + done = main_ticks(17) assert_equal Syscall , done.class end end diff --git a/test/support/risc_interpreter.rb b/test/support/risc_interpreter.rb index 951d2807..593e5001 100644 --- a/test/support/risc_interpreter.rb +++ b/test/support/risc_interpreter.rb @@ -36,7 +36,7 @@ module Risc # how many instruction up until the main starts, ie # ticks(main_at) will be the label for main def main_at - 26 + 25 end def get_return