From d80ef4bf4e4a4d571578dc89bb2f882caf8bea3e Mon Sep 17 00:00:00 2001 From: Torsten Ruger Date: Sun, 22 Jul 2018 22:29:32 +0300 Subject: [PATCH] store method, not name, in message changes the calling and thus too many test --- lib/mom/instruction/message_setup.rb | 3 +- lib/parfait/message.rb | 4 +- lib/risc/parfait_boot.rb | 2 +- test/mom/assign/test_assign_local_send.rb | 10 +-- test/mom/send/test_send_dynamic.rb | 10 +-- test/mom/send/test_send_simple.rb | 18 ++--- test/mom/send/test_send_simple_args.rb | 14 ++-- test/mom/send/test_setup_simple.rb | 20 ++---- test/mom/test_return_call.rb | 18 ++--- test/mom/test_return_dynamic.rb | 15 ++-- test/mom/test_while_cmp.rb | 30 ++++---- test/parfait/test_attributes.rb | 2 +- test/parfait/test_message.rb | 4 +- .../interpreter/assign/test_assign_local.rb | 2 +- .../interpreter/assign/test_assign_return.rb | 22 +++--- .../interpreter/assign/test_assign_thrice.rb | 44 ++++++------ .../interpreter/assign/test_assign_twice.rb | 22 +++--- test/risc/interpreter/calling/test_div10.rb | 38 +++++------ .../risc/interpreter/calling/test_get_byte.rb | 27 ++++---- test/risc/interpreter/calling/test_minus.rb | 32 ++++----- test/risc/interpreter/calling/test_mod.rb | 28 ++++---- test/risc/interpreter/calling/test_mult.rb | 26 +++---- test/risc/interpreter/calling/test_plus.rb | 28 ++++---- test/risc/interpreter/calling/test_puts.rb | 32 ++++----- .../risc/interpreter/calling/test_set_byte.rb | 26 +++---- .../conditional/test_if_constant.rb | 4 +- .../conditional/test_if_greater.rb | 25 ++++--- .../conditional/test_if_greater_or.rb | 28 ++++---- .../conditional/test_if_smaller.rb | 27 ++++---- .../conditional/test_if_smaller_or.rb | 28 ++++---- test/risc/interpreter/test_dynamic_call.rb | 29 ++++---- test/risc/interpreter/test_events.rb | 13 ++-- test/risc/interpreter/test_return.rb | 4 +- test/risc/interpreter/while/test_while_cmp.rb | 67 +++++++++--------- .../interpreter/while/test_while_count.rb | 68 +++++++++---------- .../interpreter/while/test_while_simple.rb | 2 +- test/risc/test_interpreter.rb | 4 +- test/risc/test_linker.rb | 2 +- test/ruby/test_ | 0 test/support/risc_interpreter.rb | 2 +- test/vool/test_yield_statement.rb | 2 +- 41 files changed, 384 insertions(+), 398 deletions(-) delete mode 100644 test/ruby/test_ diff --git a/lib/mom/instruction/message_setup.rb b/lib/mom/instruction/message_setup.rb index 5ebd8c4b..81b312d9 100644 --- a/lib/mom/instruction/message_setup.rb +++ b/lib/mom/instruction/message_setup.rb @@ -72,8 +72,7 @@ module Mom named_list << next_message[:frame] named_list[:type] << type - name << callable_method[:name] - next_message[:name] << name + next_message[:method] << callable_method #store next.next back into space #FIXME in a multithreaded future this should be done soon after getting diff --git a/lib/parfait/message.rb b/lib/parfait/message.rb index da0b3dc8..4ed82eea 100644 --- a/lib/parfait/message.rb +++ b/lib/parfait/message.rb @@ -18,7 +18,7 @@ module Parfait attr_accessor :next_message attr_reader :receiver , :frame attr_reader :return_address, :return_value - attr_reader :caller , :name , :arguments + attr_reader :caller , :method , :arguments def initialize( next_m ) @next_message = next_m @@ -40,7 +40,7 @@ module Parfait get_at(index) end def to_s - "Message:#{name}(#{arguments.get_length})" + "Message:#{method&.name}(#{arguments.get_length})" end end end diff --git a/lib/risc/parfait_boot.rb b/lib/risc/parfait_boot.rb index 084e88cc..be73de25 100644 --- a/lib/risc/parfait_boot.rb +++ b/lib/risc/parfait_boot.rb @@ -154,7 +154,7 @@ module Parfait List: {indexed_length: :Integer , next_list: :List} , Message: { next_message: :Message, receiver: :Object, frame: :NamedList , return_address: :Integer, return_value: :Object, - caller: :Message , name: :Word , arguments: :NamedList }, + caller: :Message , method: :TypedMethod , arguments: :NamedList }, NamedList: {}, NilClass: {}, Object: {}, diff --git a/test/mom/assign/test_assign_local_send.rb b/test/mom/assign/test_assign_local_send.rb index 88fd9ed8..42a61e12 100644 --- a/test/mom/assign/test_assign_local_send.rb +++ b/test/mom/assign/test_assign_local_send.rb @@ -9,10 +9,10 @@ module Risc @input = "r = 5.div4" @expect = [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, SlotToReg, RegToSlot, - LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, FunctionCall, Label, SlotToReg, - SlotToReg, RegToSlot] + RegToSlot, RegToSlot, SlotToReg, RegToSlot, LoadConstant, + SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, + SlotToReg, FunctionCall, Label, SlotToReg, SlotToReg, + RegToSlot] end def test_local_assign_instructions assert_nil msg = check_nil , msg @@ -20,7 +20,7 @@ module Risc def test_constant_load produced = produce_body - load = produced.next(15) + load = produced.next(14) assert_equal LoadConstant , load.class assert_equal 5 , load.constant.value end diff --git a/test/mom/send/test_send_dynamic.rb b/test/mom/send/test_send_dynamic.rb index cdb9ec26..da783d47 100644 --- a/test/mom/send/test_send_dynamic.rb +++ b/test/mom/send/test_send_dynamic.rb @@ -17,10 +17,10 @@ module Risc RegToSlot, RegToSlot, Label, RegToSlot, Label, LoadConstant, SlotToReg, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, RegToSlot, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, SlotToReg, RegToSlot, - LoadConstant, SlotToReg, RegToSlot, SlotToReg, LoadConstant, - SlotToReg, DynamicJump, Label] + SlotToReg, RegToSlot, RegToSlot, SlotToReg, RegToSlot, + SlotToReg, SlotToReg, SlotToReg, RegToSlot, LoadConstant, + SlotToReg, RegToSlot, SlotToReg, LoadConstant, SlotToReg, + DynamicJump, Label] end def test_send_instructions @@ -38,7 +38,7 @@ module Risc end def test_function_call produced = produce_body - assert_equal DynamicJump , produced.next(66).class + assert_equal DynamicJump , produced.next(65).class end def test_cache_check produced = produce_body diff --git a/test/mom/send/test_send_simple.rb b/test/mom/send/test_send_simple.rb index ad13dae6..fcca8b9e 100644 --- a/test/mom/send/test_send_simple.rb +++ b/test/mom/send/test_send_simple.rb @@ -9,9 +9,9 @@ module Risc @input = "5.div4" @expect = [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, SlotToReg, RegToSlot, - LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, FunctionCall, Label] + RegToSlot, RegToSlot, SlotToReg, RegToSlot, LoadConstant, + SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, + SlotToReg, FunctionCall, Label] end def test_send_instructions @@ -19,24 +19,24 @@ module Risc end def test_load_5 produced = produce_body - assert_equal 5 , produced.next(15).constant.value + assert_equal 5 , produced.next(14).constant.value end def test_load_label produced = produce_body - assert_equal Label , produced.next(18).constant.class + assert_equal Label , produced.next(17).constant.class end def test_call_reg_setup produced = produce_body - assert_equal :div4 , produced.next(22).method.name + assert_equal :div4 , produced.next(21).method.name end def test_function_call produced = produce_body - assert_equal FunctionCall , produced.next(22).class - assert_equal :div4 , produced.next(22).method.name + assert_equal FunctionCall , produced.next(21).class + assert_equal :div4 , produced.next(21).method.name end def test_check_continue produced = produce_body - assert produced.next(23).name.start_with?("continue_") + assert produced.next(22).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 ca6eb398..35f982cb 100644 --- a/test/mom/send/test_send_simple_args.rb +++ b/test/mom/send/test_send_simple_args.rb @@ -9,10 +9,10 @@ module Risc @input = "5.get_internal_word(1)" @expect = [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, SlotToReg, RegToSlot, - LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, - SlotToReg, FunctionCall, Label] + RegToSlot, RegToSlot, SlotToReg, RegToSlot, LoadConstant, + SlotToReg, RegToSlot, LoadConstant, SlotToReg, SlotToReg, + RegToSlot, LoadConstant, SlotToReg, RegToSlot, SlotToReg, + FunctionCall, Label] end def test_send_instructions @@ -20,16 +20,16 @@ module Risc end def test_load_5 produced = produce_body - assert_equal 5 , produced.next(15).constant.value + assert_equal 5 , produced.next(14).constant.value end def base - 18 + 17 end def test_load_arg_const produced = produce_body assert_equal LoadConstant , produced.next(base).class assert_equal Parfait::Integer , produced.next(base).constant.class - assert_equal 1 , produced.next(18).constant.value + assert_equal 1 , produced.next(base).constant.value end def test_load_next_m produced = produce_body diff --git a/test/mom/send/test_setup_simple.rb b/test/mom/send/test_setup_simple.rb index 310a851d..ba993977 100644 --- a/test/mom/send/test_setup_simple.rb +++ b/test/mom/send/test_setup_simple.rb @@ -10,9 +10,9 @@ module Risc @input = "5.div4" @expect = [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, SlotToReg, RegToSlot, - LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, FunctionCall, Label] + RegToSlot, RegToSlot, SlotToReg, RegToSlot, LoadConstant, + SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, + SlotToReg, FunctionCall, Label] @produced = produce_body end @@ -66,22 +66,16 @@ module Risc sl = @produced.next( 10 ) assert_reg_to_slot( sl , :r4 , :r5 , 0 ) end - - def test_get_name + def test_store_method_in_message sl = @produced.next( 11 ) - assert_slot_to_reg( sl , :r1 , 1 , :r6 ) + assert_reg_to_slot( sl , :r1 , :r3 , 7 ) end - def test_store_name_in_message - sl = @produced.next( 12 ) - assert_reg_to_slot( sl , :r6 , :r3 , 7 ) - end - def test_get_next_next #reduce onto itself - sl = @produced.next( 13 ) + sl = @produced.next( 12 ) assert_slot_to_reg( sl , :r3 , 1 , :r3 ) end def test_store_next_next_in_space - sl = @produced.next( 14 ) + sl = @produced.next( 13 ) assert_reg_to_slot( sl , :r3 , :r2 , 3 ) end end diff --git a/test/mom/test_return_call.rb b/test/mom/test_return_call.rb index aaf0ee1e..985dbfe0 100644 --- a/test/mom/test_return_call.rb +++ b/test/mom/test_return_call.rb @@ -9,12 +9,12 @@ module Risc @input = "return 5.div4" @expect = [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, 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, 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] end def test_return_instructions @@ -22,12 +22,12 @@ 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 - assert_equal LoadConstant , produced.next(15).class - assert_equal 5 , produced.next(15).constant.value + assert_equal LoadConstant , produced.next(14).class + assert_equal 5 , produced.next(14).constant.value end end end diff --git a/test/mom/test_return_dynamic.rb b/test/mom/test_return_dynamic.rb index 8e47ff54..a6e7f6b8 100644 --- a/test/mom/test_return_dynamic.rb +++ b/test/mom/test_return_dynamic.rb @@ -17,13 +17,12 @@ module Risc RegToSlot, RegToSlot, Label, RegToSlot, Label, LoadConstant, SlotToReg, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, RegToSlot, SlotToReg, - RegToSlot, 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, RegToSlot, RegToSlot, SlotToReg, RegToSlot, + 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] end def test_return_instructions @@ -31,7 +30,7 @@ module Risc end def test_function_return produced = produce_body - assert_equal FunctionReturn , produced.next(80).class + assert_equal FunctionReturn , produced.next(79).class end def test_cache_check produced = produce_body diff --git a/test/mom/test_while_cmp.rb b/test/mom/test_while_cmp.rb index 18ca2f60..4212a7f3 100644 --- a/test/mom/test_while_cmp.rb +++ b/test/mom/test_while_cmp.rb @@ -9,13 +9,13 @@ module Risc @input = "while(5 > 0) ; @a = true; end" @expect = [Label, LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, RegToSlot, SlotToReg, - RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, - SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, FunctionCall, Label, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, LoadConstant, - OperatorInstruction, IsZero, LoadConstant, OperatorInstruction, IsZero, - LoadConstant, SlotToReg, RegToSlot, Branch, Label] + SlotToReg, RegToSlot, RegToSlot, SlotToReg, RegToSlot, + LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, + SlotToReg, RegToSlot, LoadConstant, SlotToReg, 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 @@ -26,33 +26,33 @@ module Risc end def test_int_load_5 produced = produce_body - load = produced.next(16) + load = produced.next(15) assert_equal Risc::LoadConstant , load.class assert_equal Parfait::Integer , load.constant.class assert_equal 5 , load.constant.value end def test_int_load_0 produced = produce_body - load = produced.next(19) + load = produced.next(18) assert_equal Risc::LoadConstant , load.class assert_equal Parfait::Integer , load.constant.class assert_equal 0 , load.constant.value end def test_false_check produced = produce_body - assert_equal Risc::IsZero , produced.next(36).class - assert produced.next(36).label.name.start_with?("merge_label") , produced.next(36).label.name + assert_equal Risc::IsZero , produced.next(35).class + assert produced.next(35).label.name.start_with?("merge_label") , produced.next(35).label.name end def test_nil_load produced = produce_body - assert_equal Risc::LoadConstant , produced.next(37).class - assert_equal Parfait::NilClass , produced.next(37).constant.class + assert_equal Risc::LoadConstant , produced.next(36).class + assert_equal Parfait::NilClass , produced.next(36).constant.class end def test_back_jump # should jump back to condition label produced = produce_body - assert_equal Risc::Branch , produced.next(43).class - assert_equal produced , produced.next(43).label + assert_equal Risc::Branch , produced.next(42).class + assert_equal produced , produced.next(42).label end end diff --git a/test/parfait/test_attributes.rb b/test/parfait/test_attributes.rb index e8355165..1b248a1d 100644 --- a/test/parfait/test_attributes.rb +++ b/test/parfait/test_attributes.rb @@ -16,7 +16,7 @@ module Parfait def test_message_name_nil last = @type.names.last assert_equal :arguments , last , @type.names.inspect - assert_nil @mess.name + assert_nil @mess.method end def test_message_next_set @mess.next_message = :next_message diff --git a/test/parfait/test_message.rb b/test/parfait/test_message.rb index 889aca94..b07d9d33 100644 --- a/test/parfait/test_message.rb +++ b/test/parfait/test_message.rb @@ -35,8 +35,8 @@ module Parfait def test_caller assert_nil @mess.caller end - def test_name - assert_nil @mess.name + def test_method + assert_nil @mess.method end end end diff --git a/test/risc/interpreter/assign/test_assign_local.rb b/test/risc/interpreter/assign/test_assign_local.rb index d0f3a80b..cd311850 100644 --- a/test/risc/interpreter/assign/test_assign_local.rb +++ b/test/risc/interpreter/assign/test_assign_local.rb @@ -14,7 +14,7 @@ module Risc check_main_chain [LoadConstant, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, - Branch, SlotToReg, Syscall, NilClass] + SlotToReg, Branch, Syscall, NilClass] assert_equal 15 , get_return end diff --git a/test/risc/interpreter/assign/test_assign_return.rb b/test/risc/interpreter/assign/test_assign_return.rb index d8e81d3d..41d38b56 100644 --- a/test/risc/interpreter/assign/test_assign_return.rb +++ b/test/risc/interpreter/assign/test_assign_return.rb @@ -13,18 +13,18 @@ module Risc #show_main_ticks # get output of what is check_main_chain [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, Branch, SlotToReg, - RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, - SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, Branch, FunctionCall, SlotToReg, - SlotToReg, SlotToReg, SlotToReg, SlotToReg, OperatorInstruction, - LoadConstant, SlotToReg, SlotToReg, RegToSlot, RegToSlot, - RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, + RegToSlot, RegToSlot, SlotToReg, Branch, RegToSlot, + LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, + SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, + SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, + SlotToReg, SlotToReg, OperatorInstruction, LoadConstant, SlotToReg, + SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, + Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, + SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - SlotToReg, Branch, FunctionReturn, Transfer, SlotToReg, - Branch, SlotToReg, Syscall, NilClass] + RegToSlot, SlotToReg, SlotToReg, SlotToReg, 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 ae03e218..181f220e 100644 --- a/test/risc/interpreter/assign/test_assign_thrice.rb +++ b/test/risc/interpreter/assign/test_assign_thrice.rb @@ -14,30 +14,30 @@ module Risc check_main_chain [LoadConstant, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, RegToSlot, LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, Branch, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, Branch, SlotToReg, SlotToReg, + RegToSlot, SlotToReg, SlotToReg, RegToSlot, RegToSlot, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, - SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, - SlotToReg, SlotToReg, OperatorInstruction, LoadConstant, SlotToReg, - SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, - Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, Branch, SlotToReg, SlotToReg, RegToSlot, - LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, - SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - Branch, RegToSlot, SlotToReg, RegToSlot, SlotToReg, + SlotToReg, SlotToReg, Branch, SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, SlotToReg, SlotToReg, RegToSlot, Branch, - LoadConstant, SlotToReg, RegToSlot, SlotToReg, FunctionCall, - SlotToReg, SlotToReg, SlotToReg, SlotToReg, SlotToReg, - OperatorInstruction, LoadConstant, SlotToReg, SlotToReg, RegToSlot, - RegToSlot, RegToSlot, SlotToReg, Branch, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, - SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, Branch, RegToSlot, - SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, - SlotToReg, Branch, SlotToReg, Syscall, NilClass] + FunctionCall, SlotToReg, SlotToReg, SlotToReg, SlotToReg, + SlotToReg, OperatorInstruction, LoadConstant, SlotToReg, SlotToReg, + RegToSlot, RegToSlot, RegToSlot, SlotToReg, Branch, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, + FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, + SlotToReg, Branch, SlotToReg, RegToSlot, LoadConstant, + LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, + Branch, RegToSlot, SlotToReg, RegToSlot, LoadConstant, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, + SlotToReg, RegToSlot, LoadConstant, SlotToReg, Branch, + RegToSlot, SlotToReg, FunctionCall, SlotToReg, SlotToReg, + SlotToReg, SlotToReg, SlotToReg, OperatorInstruction, LoadConstant, + 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] 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 687e1ca9..bb13dbf7 100644 --- a/test/risc/interpreter/assign/test_assign_twice.rb +++ b/test/risc/interpreter/assign/test_assign_twice.rb @@ -14,19 +14,19 @@ module Risc check_main_chain [LoadConstant, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, RegToSlot, LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, Branch, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, Branch, SlotToReg, SlotToReg, + RegToSlot, SlotToReg, SlotToReg, RegToSlot, RegToSlot, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, - SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, - SlotToReg, SlotToReg, OperatorInstruction, LoadConstant, SlotToReg, - SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, - Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, + SlotToReg, SlotToReg, Branch, SlotToReg, SlotToReg, + RegToSlot, LoadConstant, SlotToReg, RegToSlot, SlotToReg, + FunctionCall, SlotToReg, SlotToReg, SlotToReg, SlotToReg, + SlotToReg, OperatorInstruction, LoadConstant, SlotToReg, SlotToReg, + RegToSlot, RegToSlot, RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, - FunctionReturn, Transfer, SlotToReg, Branch, SlotToReg, - Syscall, NilClass] + FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, + SlotToReg, Branch, RegToSlot, 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/calling/test_div10.rb b/test/risc/interpreter/calling/test_div10.rb index da3cb9c4..e3e9194a 100644 --- a/test/risc/interpreter/calling/test_div10.rb +++ b/test/risc/interpreter/calling/test_div10.rb @@ -13,39 +13,39 @@ module Risc #show_main_ticks # get output of what is check_main_chain [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, Branch, SlotToReg, - RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, - SlotToReg, RegToSlot, SlotToReg, FunctionCall, SlotToReg, - SlotToReg, SlotToReg, SlotToReg, SlotToReg, SlotToReg, + RegToSlot, RegToSlot, SlotToReg, Branch, RegToSlot, + LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, + RegToSlot, SlotToReg, FunctionCall, SlotToReg, SlotToReg, + SlotToReg, SlotToReg, SlotToReg, SlotToReg, LoadData, + OperatorInstruction, LoadData, OperatorInstruction, OperatorInstruction, LoadData, + Transfer, Branch, OperatorInstruction, OperatorInstruction, LoadData, + Transfer, OperatorInstruction, OperatorInstruction, LoadData, Transfer, + OperatorInstruction, OperatorInstruction, LoadData, OperatorInstruction, LoadData, + Branch, Transfer, OperatorInstruction, OperatorInstruction, Transfer, LoadData, OperatorInstruction, LoadData, OperatorInstruction, OperatorInstruction, - LoadData, Transfer, Branch, OperatorInstruction, OperatorInstruction, - LoadData, Transfer, OperatorInstruction, OperatorInstruction, LoadData, - Transfer, OperatorInstruction, OperatorInstruction, LoadData, OperatorInstruction, - LoadData, Branch, Transfer, OperatorInstruction, OperatorInstruction, - Transfer, LoadData, OperatorInstruction, LoadData, OperatorInstruction, - OperatorInstruction, LoadConstant, SlotToReg, SlotToReg, RegToSlot, - Branch, RegToSlot, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, - SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, - SlotToReg, Branch, SlotToReg, Syscall, NilClass] + LoadConstant, SlotToReg, SlotToReg, RegToSlot, Branch, + 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] assert_equal 2 , get_return end def test_load_25 - load_ins = main_ticks 17 + load_ins = main_ticks 16 assert_equal LoadConstant , load_ins.class assert_equal 25 , @interpreter.get_register(load_ins.register).value end def test_return_class - ret = main_ticks(75) + ret = main_ticks(74) assert_equal FunctionReturn , ret.class link = @interpreter.get_register( ret.register ) assert_equal Fixnum , link.class end def test_sys - sys = main_ticks(94) + sys = main_ticks(93) 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 027ce5f3..efc5abd5 100644 --- a/test/risc/interpreter/calling/test_get_byte.rb +++ b/test/risc/interpreter/calling/test_get_byte.rb @@ -12,27 +12,26 @@ module Risc #show_main_ticks # get output of what is check_main_chain [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, Branch, SlotToReg, - RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, - SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, Branch, FunctionCall, SlotToReg, - SlotToReg, SlotToReg, SlotToReg, ByteToReg, LoadConstant, - SlotToReg, SlotToReg, RegToSlot, RegToSlot, RegToSlot, - SlotToReg, SlotToReg, Branch, RegToSlot, SlotToReg, - SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, - Branch, FunctionReturn, Transfer, SlotToReg, Branch, - SlotToReg, Syscall, NilClass] + RegToSlot, RegToSlot, SlotToReg, Branch, RegToSlot, + LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, + SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, + SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, + SlotToReg, ByteToReg, LoadConstant, SlotToReg, SlotToReg, + 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] assert_equal "H".ord , get_return end def test_byte_to_reg - done = main_ticks(34) + done = main_ticks(32) assert_equal ByteToReg , done.class assert_equal "H".ord , @interpreter.get_register(done.register) end def test_exit - done = main_ticks(67) + done = main_ticks(64) 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 a9529c3f..a8496bd1 100644 --- a/test/risc/interpreter/calling/test_minus.rb +++ b/test/risc/interpreter/calling/test_minus.rb @@ -13,28 +13,28 @@ module Risc #show_main_ticks # get output of what is check_main_chain [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, Branch, SlotToReg, - RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, - SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, Branch, FunctionCall, SlotToReg, - SlotToReg, SlotToReg, SlotToReg, SlotToReg, OperatorInstruction, - LoadConstant, SlotToReg, SlotToReg, RegToSlot, RegToSlot, - RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, + RegToSlot, RegToSlot, SlotToReg, Branch, RegToSlot, + LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, + SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, + SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, + SlotToReg, SlotToReg, OperatorInstruction, LoadConstant, SlotToReg, + SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, + Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, + SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - SlotToReg, Branch, FunctionReturn, Transfer, SlotToReg, - Branch, SlotToReg, Syscall, NilClass] + RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, + Transfer, SlotToReg, SlotToReg, Branch, Syscall, + NilClass] assert_equal 1 , get_return end def test_load_5 - lod = main_ticks( 20 ) + lod = main_ticks( 19 ) assert_equal LoadConstant , lod.class assert_equal Parfait::Integer , lod.constant.class assert_equal 5 , lod.constant.value end def test_op - op = main_ticks(35) + op = main_ticks(33) assert_equal OperatorInstruction , op.class assert_equal :r1 , op.left.symbol assert_equal :r2 , op.right.symbol @@ -42,13 +42,13 @@ module Risc assert_equal 1 , @interpreter.get_register(:r1) end def test_return - ret = main_ticks(63) + ret = main_ticks(60) assert_equal FunctionReturn , ret.class assert_equal :r1 , ret.register.symbol - assert_equal 23332 , @interpreter.get_register(ret.register) + assert_equal 23392 , @interpreter.get_register(ret.register) end def test_sys - sys = main_ticks(68) + sys = main_ticks(65) 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 5d9a9916..9d6f51ad 100644 --- a/test/risc/interpreter/calling/test_mod.rb +++ b/test/risc/interpreter/calling/test_mod.rb @@ -13,27 +13,27 @@ module Risc #show_main_ticks # get output of what is check_main_chain [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, Branch, SlotToReg, - RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, - SlotToReg, RegToSlot, SlotToReg, FunctionCall, SlotToReg, - SlotToReg, LoadData, OperatorInstruction, LoadConstant, SlotToReg, - SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, - SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg, - SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, - Branch, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, - FunctionReturn, Transfer, SlotToReg, Branch, SlotToReg, - Syscall, NilClass] + RegToSlot, RegToSlot, SlotToReg, Branch, RegToSlot, + LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, + RegToSlot, SlotToReg, FunctionCall, SlotToReg, SlotToReg, + LoadData, OperatorInstruction, LoadConstant, SlotToReg, SlotToReg, + 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] assert_equal 2 , get_return end def test_load - lod = main_ticks(17) + lod = main_ticks(16) assert_equal LoadConstant , lod.class assert_equal 9 , lod.constant.value end def test_fix # reduce self to fix - sl = main_ticks(26) + sl = main_ticks(25) assert_equal SlotToReg , sl.class assert_equal :r1 , sl.array.symbol assert_equal 2 , sl.index @@ -42,7 +42,7 @@ module Risc end def test_sys - sys = main_ticks(61) + sys = main_ticks(60) 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 ceed2288..f0a12f8f 100644 --- a/test/risc/interpreter/calling/test_mult.rb +++ b/test/risc/interpreter/calling/test_mult.rb @@ -13,18 +13,18 @@ module Risc #show_main_ticks # get output of what is check_main_chain [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, Branch, SlotToReg, - RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, - SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, Branch, FunctionCall, SlotToReg, - SlotToReg, SlotToReg, SlotToReg, SlotToReg, OperatorInstruction, - LoadConstant, SlotToReg, SlotToReg, RegToSlot, RegToSlot, - RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, + RegToSlot, RegToSlot, SlotToReg, Branch, RegToSlot, + LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, + SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, + SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, + SlotToReg, SlotToReg, OperatorInstruction, LoadConstant, SlotToReg, + SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, + Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, + SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - SlotToReg, Branch, FunctionReturn, Transfer, SlotToReg, - Branch, SlotToReg, Syscall, NilClass] + RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, + Transfer, SlotToReg, SlotToReg, Branch, Syscall, + NilClass] assert_equal 0 , get_return end def test_zero @@ -32,7 +32,7 @@ module Risc assert @interpreter.flags[:zero] end def test_op - op = main_ticks(35) + op = main_ticks(33) assert_equal OperatorInstruction , op.class assert_equal :r1 , op.left.symbol assert_equal :r2 , op.right.symbol @@ -40,7 +40,7 @@ module Risc assert_equal 0 , @interpreter.get_register(:r1) end def test_overflow - main_ticks( 37 ) + main_ticks( 34 ) assert @interpreter.flags[:overflow] end end diff --git a/test/risc/interpreter/calling/test_plus.rb b/test/risc/interpreter/calling/test_plus.rb index a2d3c005..e342fcdf 100644 --- a/test/risc/interpreter/calling/test_plus.rb +++ b/test/risc/interpreter/calling/test_plus.rb @@ -13,28 +13,28 @@ module Risc #show_main_ticks # get output of what is check_main_chain [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, Branch, SlotToReg, - RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, - SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, Branch, FunctionCall, SlotToReg, - SlotToReg, SlotToReg, SlotToReg, SlotToReg, OperatorInstruction, - LoadConstant, SlotToReg, SlotToReg, RegToSlot, RegToSlot, - RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, + RegToSlot, RegToSlot, SlotToReg, Branch, RegToSlot, + LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, + SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, + SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, + SlotToReg, SlotToReg, OperatorInstruction, LoadConstant, SlotToReg, + SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, + Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, + SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - SlotToReg, Branch, FunctionReturn, Transfer, SlotToReg, - Branch, SlotToReg, Syscall, NilClass] + RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, + Transfer, SlotToReg, SlotToReg, Branch, Syscall, + NilClass] assert_equal 10 , get_return end def test_load_5 - lod = main_ticks( 20 ) + lod = main_ticks( 19 ) assert_equal LoadConstant , lod.class assert_equal Parfait::Integer , lod.constant.class assert_equal 5 , lod.constant.value end def base - 30 + 28 end def test_slot_receiver #load receiver from message sl = main_ticks( base ) @@ -102,7 +102,7 @@ module Risc assert_equal :r4 , sl.register.symbol end def test_sys - sys = main_ticks(68) + sys = main_ticks(65) 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 f8ad5030..0718d6ef 100644 --- a/test/risc/interpreter/calling/test_puts.rb +++ b/test/risc/interpreter/calling/test_puts.rb @@ -13,28 +13,28 @@ module Risc #show_main_ticks # get output of what is check_main_chain [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, Branch, SlotToReg, - RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, - SlotToReg, RegToSlot, SlotToReg, FunctionCall, SlotToReg, - SlotToReg, Transfer, Syscall, Transfer, Transfer, - LoadConstant, SlotToReg, SlotToReg, RegToSlot, RegToSlot, + RegToSlot, RegToSlot, SlotToReg, Branch, RegToSlot, + LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, + RegToSlot, SlotToReg, FunctionCall, SlotToReg, SlotToReg, + Transfer, Syscall, Transfer, Transfer, LoadConstant, + SlotToReg, SlotToReg, RegToSlot, RegToSlot, RegToSlot, + SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, + SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, - SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, - Branch, SlotToReg, Syscall, NilClass] + 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 def test_call - cal = main_ticks(24) + cal = main_ticks(23) assert_equal FunctionCall , cal.class assert_equal :putstring , cal.method.name end def test_putstring_sys - done = main_ticks(28) + done = main_ticks(27) assert_equal Syscall , done.class assert_equal "Hello again" , @interpreter.stdout assert_equal 11 , @interpreter.get_register(:r0) @@ -42,28 +42,28 @@ module Risc assert_equal "Hello again" , @interpreter.get_register(:r1).to_string end def test_move_sys_return - sl = main_ticks(29) + sl = main_ticks(28) assert_equal Transfer , sl.class assert_equal :r0 , sl.from.symbol assert_equal :r2 , sl.to.symbol assert_equal 11 , @interpreter.get_register(:r2) end def test_restore_message - sl = main_ticks(30) + sl = main_ticks(29) assert_equal Transfer , sl.class assert_equal :r8 , sl.from.symbol assert_equal :r0 , sl.to.symbol assert_equal Parfait::Message , @interpreter.get_register(:r0).class end def test_save_sys_return - sl = main_ticks(35) + sl = main_ticks(34) assert_equal RegToSlot , sl.class assert_equal :r2 , sl.register.symbol #return assert_equal :r3 , sl.array.symbol #parfait integer assert_equal 2 , sl.index end def test_return - done = main_ticks(44) + done = main_ticks(43) assert_equal FunctionReturn , done.class end diff --git a/test/risc/interpreter/calling/test_set_byte.rb b/test/risc/interpreter/calling/test_set_byte.rb index fd82d4cd..af109029 100644 --- a/test/risc/interpreter/calling/test_set_byte.rb +++ b/test/risc/interpreter/calling/test_set_byte.rb @@ -13,28 +13,28 @@ module Risc #show_main_ticks # get output of what is check_main_chain [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, Branch, SlotToReg, - RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, - SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - SlotToReg, RegToSlot, Branch, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, FunctionCall, SlotToReg, SlotToReg, - SlotToReg, SlotToReg, SlotToReg, SlotToReg, SlotToReg, - RegToByte, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, Branch, RegToSlot, SlotToReg, SlotToReg, - SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, + RegToSlot, RegToSlot, SlotToReg, Branch, RegToSlot, + LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, + SlotToReg, RegToSlot, LoadConstant, SlotToReg, SlotToReg, + RegToSlot, LoadConstant, Branch, SlotToReg, RegToSlot, + SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, + SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToByte, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch, RegToSlot, SlotToReg, SlotToReg, SlotToReg, - FunctionReturn, Transfer, SlotToReg, Branch, SlotToReg, - Syscall, NilClass] + FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, + Branch, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, + Transfer, SlotToReg, SlotToReg, Branch, Syscall, + NilClass] assert_equal "K".ord , get_return end def test_reg_to_byte - done = main_ticks(41) + done = main_ticks(40) assert_equal RegToByte , done.class assert_equal "K".ord , @interpreter.get_register(done.register) end def test_exit - done = main_ticks(71) + done = main_ticks(70) 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 b53b2ec3..026ab1b7 100644 --- a/test/risc/interpreter/conditional/test_if_constant.rb +++ b/test/risc/interpreter/conditional/test_if_constant.rb @@ -14,8 +14,8 @@ module Risc check_main_chain [LoadConstant, LoadConstant, OperatorInstruction, IsZero, LoadConstant, OperatorInstruction, IsZero, LoadConstant, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, Branch, SlotToReg, - SlotToReg, FunctionReturn, Transfer, SlotToReg, Branch, - SlotToReg, Syscall, NilClass] + SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, + Branch, Syscall, NilClass] assert_equal 1 , get_return end def test_load_10 diff --git a/test/risc/interpreter/conditional/test_if_greater.rb b/test/risc/interpreter/conditional/test_if_greater.rb index edbd829c..1949ab83 100644 --- a/test/risc/interpreter/conditional/test_if_greater.rb +++ b/test/risc/interpreter/conditional/test_if_greater.rb @@ -13,23 +13,22 @@ module Risc #show_main_ticks # get output of what is in main check_main_chain [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, Branch, SlotToReg, - RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, - SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, Branch, FunctionCall, SlotToReg, - SlotToReg, SlotToReg, SlotToReg, SlotToReg, OperatorInstruction, - IsMinus, IsZero, LoadConstant, RegToSlot, SlotToReg, - Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, LoadConstant, OperatorInstruction, IsZero, - LoadConstant, RegToSlot, SlotToReg, SlotToReg, Branch, + RegToSlot, RegToSlot, SlotToReg, Branch, RegToSlot, + LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, + SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, + SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, + SlotToReg, SlotToReg, OperatorInstruction, IsMinus, IsZero, + LoadConstant, RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, - Transfer, SlotToReg, Branch, SlotToReg, Syscall, - NilClass] + SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, + LoadConstant, OperatorInstruction, IsZero, LoadConstant, RegToSlot, + SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, + SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, + SlotToReg, Branch, Syscall, NilClass] assert_equal 2 , get_return end def test_exit - done = main_ticks(70) + done = main_ticks(68) assert_equal Syscall , done.class end end diff --git a/test/risc/interpreter/conditional/test_if_greater_or.rb b/test/risc/interpreter/conditional/test_if_greater_or.rb index 9b91554b..8a70a26e 100644 --- a/test/risc/interpreter/conditional/test_if_greater_or.rb +++ b/test/risc/interpreter/conditional/test_if_greater_or.rb @@ -13,23 +13,23 @@ module Risc #show_main_ticks # get output of what is in main check_main_chain [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, Branch, SlotToReg, - RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, - SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, Branch, FunctionCall, SlotToReg, - SlotToReg, SlotToReg, SlotToReg, SlotToReg, OperatorInstruction, - IsMinus, LoadConstant, Branch, RegToSlot, SlotToReg, - SlotToReg, Branch, RegToSlot, SlotToReg, SlotToReg, - SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, LoadConstant, OperatorInstruction, IsZero, - LoadConstant, OperatorInstruction, IsZero, LoadConstant, Branch, - RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, - Branch, SlotToReg, Syscall, NilClass] + RegToSlot, RegToSlot, SlotToReg, Branch, RegToSlot, + LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, + SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, + SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, + SlotToReg, SlotToReg, OperatorInstruction, IsMinus, LoadConstant, + Branch, RegToSlot, SlotToReg, SlotToReg, Branch, + 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] assert_equal 1 , get_return end def test_exit - done = main_ticks(73) + done = main_ticks(71) 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 03540047..0354796e 100644 --- a/test/risc/interpreter/conditional/test_if_smaller.rb +++ b/test/risc/interpreter/conditional/test_if_smaller.rb @@ -11,25 +11,24 @@ 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, SlotToReg, RegToSlot, Branch, SlotToReg, - RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, - SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, Branch, FunctionCall, SlotToReg, - SlotToReg, SlotToReg, SlotToReg, SlotToReg, OperatorInstruction, - IsMinus, IsZero, LoadConstant, RegToSlot, SlotToReg, - Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, LoadConstant, OperatorInstruction, IsZero, - LoadConstant, RegToSlot, SlotToReg, SlotToReg, Branch, + RegToSlot, RegToSlot, SlotToReg, Branch, RegToSlot, + LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, + SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, + SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, + SlotToReg, SlotToReg, OperatorInstruction, IsMinus, IsZero, + LoadConstant, RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, - Transfer, SlotToReg, Branch, SlotToReg, Syscall, - NilClass] + SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, + LoadConstant, OperatorInstruction, IsZero, LoadConstant, RegToSlot, + SlotToReg, SlotToReg, RegToSlot, Branch, SlotToReg, + SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, + SlotToReg, Branch, Syscall, NilClass] assert_equal 2 , get_return end def test_exit - done = main_ticks(70) + done = main_ticks(68) assert_equal Syscall , done.class end end diff --git a/test/risc/interpreter/conditional/test_if_smaller_or.rb b/test/risc/interpreter/conditional/test_if_smaller_or.rb index 2947b324..05afff9e 100644 --- a/test/risc/interpreter/conditional/test_if_smaller_or.rb +++ b/test/risc/interpreter/conditional/test_if_smaller_or.rb @@ -13,23 +13,23 @@ module Risc #show_main_ticks # get output of what is in main check_main_chain [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, Branch, SlotToReg, - RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant, - SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, Branch, FunctionCall, SlotToReg, - SlotToReg, SlotToReg, SlotToReg, SlotToReg, OperatorInstruction, - IsMinus, LoadConstant, Branch, RegToSlot, SlotToReg, - SlotToReg, Branch, RegToSlot, SlotToReg, SlotToReg, - SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, LoadConstant, OperatorInstruction, IsZero, - LoadConstant, OperatorInstruction, IsZero, LoadConstant, Branch, - RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, SlotToReg, FunctionReturn, Transfer, SlotToReg, - Branch, SlotToReg, Syscall, NilClass] + RegToSlot, RegToSlot, SlotToReg, Branch, RegToSlot, + LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, + SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, + SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, + SlotToReg, SlotToReg, OperatorInstruction, IsMinus, LoadConstant, + Branch, RegToSlot, SlotToReg, SlotToReg, Branch, + 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] assert_equal 1 , get_return end def test_exit - done = main_ticks(73) + done = main_ticks(71) 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 5d545d89..b478a959 100644 --- a/test/risc/interpreter/test_dynamic_call.rb +++ b/test/risc/interpreter/test_dynamic_call.rb @@ -29,24 +29,23 @@ module Risc OperatorInstruction, IsZero, RegToSlot, Branch, LoadConstant, SlotToReg, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, Branch, RegToSlot, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, SlotToReg, RegToSlot, - LoadConstant, SlotToReg, RegToSlot, SlotToReg, LoadConstant, - SlotToReg, Branch, DynamicJump, SlotToReg, SlotToReg, - LoadData, OperatorInstruction, LoadConstant, SlotToReg, SlotToReg, - RegToSlot, RegToSlot, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, Branch, SlotToReg, SlotToReg, SlotToReg, - FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, + RegToSlot, RegToSlot, Branch, SlotToReg, RegToSlot, + SlotToReg, SlotToReg, SlotToReg, RegToSlot, LoadConstant, + SlotToReg, RegToSlot, SlotToReg, LoadConstant, SlotToReg, + DynamicJump, SlotToReg, SlotToReg, LoadData, OperatorInstruction, + LoadConstant, SlotToReg, SlotToReg, RegToSlot, RegToSlot, + RegToSlot, SlotToReg, SlotToReg, RegToSlot, Branch, + SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, SlotToReg, Branch, FunctionReturn, - Transfer, SlotToReg, Branch, SlotToReg, Syscall, - NilClass] + SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, + SlotToReg, FunctionReturn, Transfer, SlotToReg, SlotToReg, + Branch, Syscall, NilClass] assert_equal Fixnum , get_return.class assert_equal 1 , get_return end def test_call_main - call_ins = ticks(26) + call_ins = ticks(25) assert_equal FunctionCall , call_ins.class assert_equal :main , call_ins.method.name end @@ -57,17 +56,17 @@ module Risc end def test_dyn - cal = main_ticks(108) + cal = main_ticks(106) assert_equal DynamicJump , cal.class end def test_return - ret = main_ticks(140) + ret = main_ticks(137) assert_equal FunctionReturn , ret.class link = @interpreter.get_register( ret.register ) assert_equal Fixnum , link.class end def test_sys - sys = main_ticks(145) + sys = main_ticks(142) assert_equal Syscall , sys.class end end diff --git a/test/risc/interpreter/test_events.rb b/test/risc/interpreter/test_events.rb index ea2aab2e..b4075c29 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 - 40 + 39 end def test_state_change @interpreter.register_event :state_changed , self @@ -42,12 +42,11 @@ module Risc check_chain [Branch, LoadConstant, SlotToReg, SlotToReg, RegToSlot, LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, Branch, - SlotToReg, RegToSlot, SlotToReg, RegToSlot, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, LoadConstant, RegToSlot, - FunctionCall, LoadConstant, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, - Transfer, SlotToReg, Branch, SlotToReg, Syscall, - NilClass] + 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] 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 d80144ca..584e1821 100644 --- a/test/risc/interpreter/test_return.rb +++ b/test/risc/interpreter/test_return.rb @@ -13,7 +13,7 @@ module Risc #show_main_ticks # get output of what is check_main_chain [LoadConstant, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, Transfer, - SlotToReg, Branch, SlotToReg, Syscall, NilClass] + SlotToReg, SlotToReg, Branch, Syscall, NilClass] assert_equal 5 , get_return end @@ -44,7 +44,7 @@ module Risc assert_equal 5 , save.index end def test_return_reduce - save = main_ticks(13) + save = main_ticks(12) assert_equal SlotToReg , save.class assert_equal :r0 , save.register.symbol assert_equal 2 , save.index diff --git a/test/risc/interpreter/while/test_while_cmp.rb b/test/risc/interpreter/while/test_while_cmp.rb index e7d66c69..cd51e7da 100644 --- a/test/risc/interpreter/while/test_while_cmp.rb +++ b/test/risc/interpreter/while/test_while_cmp.rb @@ -11,51 +11,50 @@ 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, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, Branch, SlotToReg, SlotToReg, + RegToSlot, SlotToReg, SlotToReg, RegToSlot, RegToSlot, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, - SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, - SlotToReg, SlotToReg, OperatorInstruction, IsMinus, LoadConstant, - Branch, RegToSlot, SlotToReg, SlotToReg, Branch, - RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, - SlotToReg, SlotToReg, RegToSlot, SlotToReg, Branch, - SlotToReg, LoadConstant, OperatorInstruction, IsZero, LoadConstant, - OperatorInstruction, IsZero, SlotToReg, SlotToReg, SlotToReg, - RegToSlot, LoadConstant, LoadConstant, Branch, SlotToReg, - RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, - SlotToReg, SlotToReg, RegToSlot, SlotToReg, RegToSlot, - SlotToReg, RegToSlot, Branch, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, + SlotToReg, SlotToReg, Branch, SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, SlotToReg, - SlotToReg, OperatorInstruction, LoadConstant, SlotToReg, SlotToReg, - RegToSlot, RegToSlot, RegToSlot, SlotToReg, Branch, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, - FunctionReturn, SlotToReg, SlotToReg, RegToSlot, Branch, - SlotToReg, SlotToReg, SlotToReg, RegToSlot, LoadConstant, - LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, - Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, SlotToReg, RegToSlot, - LoadConstant, SlotToReg, RegToSlot, SlotToReg, Branch, + SlotToReg, OperatorInstruction, IsMinus, LoadConstant, Branch, + RegToSlot, SlotToReg, SlotToReg, Branch, RegToSlot, + SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch, + LoadConstant, OperatorInstruction, IsZero, LoadConstant, OperatorInstruction, + IsZero, SlotToReg, SlotToReg, SlotToReg, RegToSlot, + LoadConstant, LoadConstant, SlotToReg, Branch, RegToSlot, + RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, + SlotToReg, RegToSlot, RegToSlot, SlotToReg, RegToSlot, + LoadConstant, SlotToReg, Branch, RegToSlot, SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, SlotToReg, SlotToReg, OperatorInstruction, - IsMinus, LoadConstant, RegToSlot, SlotToReg, SlotToReg, - Branch, RegToSlot, SlotToReg, SlotToReg, SlotToReg, - FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - Branch, SlotToReg, LoadConstant, OperatorInstruction, IsZero, - SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, SlotToReg, Branch, - FunctionReturn, Transfer, SlotToReg, Branch, SlotToReg, - Syscall, NilClass] + LoadConstant, SlotToReg, SlotToReg, RegToSlot, RegToSlot, + RegToSlot, SlotToReg, Branch, SlotToReg, RegToSlot, + SlotToReg, SlotToReg, SlotToReg, FunctionReturn, SlotToReg, + SlotToReg, Branch, RegToSlot, Branch, SlotToReg, + SlotToReg, SlotToReg, RegToSlot, LoadConstant, LoadConstant, + SlotToReg, RegToSlot, RegToSlot, SlotToReg, Branch, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, + RegToSlot, SlotToReg, RegToSlot, LoadConstant, SlotToReg, + RegToSlot, SlotToReg, SlotToReg, Branch, SlotToReg, + SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, + SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, + SlotToReg, SlotToReg, OperatorInstruction, IsMinus, LoadConstant, + RegToSlot, SlotToReg, SlotToReg, Branch, 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] assert_equal 1 , get_return end def test_exit - done = main_ticks(201) + done = main_ticks(198) 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 42628fb1..adf5d124 100644 --- a/test/risc/interpreter/while/test_while_count.rb +++ b/test/risc/interpreter/while/test_while_count.rb @@ -14,48 +14,48 @@ module Risc check_main_chain [LoadConstant, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, RegToSlot, LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, Branch, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, LoadConstant, SlotToReg, - RegToSlot, SlotToReg, Branch, SlotToReg, SlotToReg, + RegToSlot, SlotToReg, SlotToReg, RegToSlot, RegToSlot, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, - SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, - SlotToReg, SlotToReg, OperatorInstruction, IsMinus, IsZero, - LoadConstant, Branch, RegToSlot, SlotToReg, Branch, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, - FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - Branch, SlotToReg, LoadConstant, OperatorInstruction, IsZero, - LoadConstant, OperatorInstruction, IsZero, SlotToReg, SlotToReg, - SlotToReg, RegToSlot, LoadConstant, LoadConstant, Branch, - SlotToReg, RegToSlot, RegToSlot, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, - RegToSlot, SlotToReg, RegToSlot, Branch, LoadConstant, - SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, - SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, - SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, - SlotToReg, SlotToReg, OperatorInstruction, LoadConstant, SlotToReg, - SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg, - Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - SlotToReg, FunctionReturn, SlotToReg, SlotToReg, RegToSlot, - Branch, SlotToReg, SlotToReg, SlotToReg, RegToSlot, - LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot, - SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, RegToSlot, SlotToReg, RegToSlot, SlotToReg, + SlotToReg, SlotToReg, Branch, SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, SlotToReg, - Branch, SlotToReg, SlotToReg, SlotToReg, RegToSlot, + FunctionCall, SlotToReg, SlotToReg, SlotToReg, SlotToReg, + SlotToReg, OperatorInstruction, IsMinus, IsZero, LoadConstant, + Branch, RegToSlot, SlotToReg, Branch, SlotToReg, + RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, + SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, + Branch, LoadConstant, OperatorInstruction, IsZero, LoadConstant, + OperatorInstruction, IsZero, SlotToReg, SlotToReg, SlotToReg, + RegToSlot, LoadConstant, LoadConstant, SlotToReg, Branch, + RegToSlot, RegToSlot, SlotToReg, SlotToReg, RegToSlot, + SlotToReg, SlotToReg, RegToSlot, RegToSlot, SlotToReg, + RegToSlot, LoadConstant, SlotToReg, Branch, RegToSlot, + SlotToReg, SlotToReg, SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg, SlotToReg, SlotToReg, - OperatorInstruction, IsMinus, IsZero, LoadConstant, RegToSlot, - SlotToReg, Branch, SlotToReg, RegToSlot, SlotToReg, - SlotToReg, SlotToReg, FunctionReturn, SlotToReg, SlotToReg, - RegToSlot, SlotToReg, Branch, SlotToReg, LoadConstant, - OperatorInstruction, IsZero, SlotToReg, SlotToReg, RegToSlot, + OperatorInstruction, LoadConstant, SlotToReg, SlotToReg, RegToSlot, + RegToSlot, RegToSlot, SlotToReg, Branch, SlotToReg, + RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, + SlotToReg, SlotToReg, Branch, RegToSlot, Branch, + SlotToReg, SlotToReg, SlotToReg, RegToSlot, LoadConstant, + LoadConstant, SlotToReg, RegToSlot, RegToSlot, SlotToReg, + Branch, SlotToReg, RegToSlot, SlotToReg, SlotToReg, + RegToSlot, RegToSlot, SlotToReg, RegToSlot, LoadConstant, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, Branch, + SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg, + RegToSlot, SlotToReg, FunctionCall, SlotToReg, SlotToReg, + SlotToReg, SlotToReg, SlotToReg, OperatorInstruction, IsMinus, + IsZero, LoadConstant, RegToSlot, SlotToReg, Branch, + SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, + FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg, + SlotToReg, Branch, LoadConstant, OperatorInstruction, IsZero, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, - SlotToReg, Branch, FunctionReturn, Transfer, SlotToReg, - Branch, SlotToReg, Syscall, NilClass] + RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn, + Transfer, SlotToReg, SlotToReg, Branch, Syscall, + NilClass] assert_equal 0 , get_return end def test_exit - done = main_ticks(203) + done = main_ticks(200) 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 61dac379..2f6c5a90 100644 --- a/test/risc/interpreter/while/test_while_simple.rb +++ b/test/risc/interpreter/while/test_while_simple.rb @@ -17,7 +17,7 @@ module Risc Branch, SlotToReg, SlotToReg, LoadConstant, OperatorInstruction, IsZero, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg, - FunctionReturn, Transfer, SlotToReg, Branch, SlotToReg, + FunctionReturn, Transfer, SlotToReg, SlotToReg, Branch, Syscall, NilClass] assert_kind_of Parfait::NilClass , get_return end diff --git a/test/risc/test_interpreter.rb b/test/risc/test_interpreter.rb index 0efe5c28..27ed5177 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 22904 , @interpreter.pc + assert_equal 22968 , @interpreter.pc end def test_tick2 @interpreter.tick @@ -68,7 +68,7 @@ module Risc def test_pc2 @interpreter.tick @interpreter.tick - assert_equal 22908 , @interpreter.pc + assert_equal 22972 , @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 d5c3bf82..464de3bf 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 "0x682c" , Position.get(@linker.cpu_init.first).to_s + assert_equal "0x686c" , 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/ruby/test_ b/test/ruby/test_ deleted file mode 100644 index e69de29b..00000000 diff --git a/test/support/risc_interpreter.rb b/test/support/risc_interpreter.rb index 7d01a983..3ac49071 100644 --- a/test/support/risc_interpreter.rb +++ b/test/support/risc_interpreter.rb @@ -30,7 +30,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 diff --git a/test/vool/test_yield_statement.rb b/test/vool/test_yield_statement.rb index 51eff4e2..e202afd9 100644 --- a/test/vool/test_yield_statement.rb +++ b/test/vool/test_yield_statement.rb @@ -1,7 +1,7 @@ require_relative "helper" module Vool - class TestYieldArgsSendMom < MiniTest::Test + class TestYieldArgsSendMom #< MiniTest::Test include MomCompile include Mom