move message to stack_pointer
changing a bunch of register names some of which get names now
This commit is contained in:
@ -28,17 +28,17 @@ module Risc
|
||||
end
|
||||
|
||||
def test_load_factory
|
||||
assert_load( 15 , Parfait::Factory , :r1)
|
||||
assert_load( 15 , Parfait::Factory , :r0)
|
||||
assert_equal :next_integer , @instruction.constant.attribute_name
|
||||
end
|
||||
def test_load_nil
|
||||
assert_load( 16 , Parfait::NilClass , :r2)
|
||||
assert_load( 16 , Parfait::NilClass , :r1)
|
||||
end
|
||||
def test_slot_receiver #load next_object from factory
|
||||
assert_slot_to_reg( 17 , :r1 , 2 , :r3)
|
||||
assert_slot_to_reg( 17 , :r0 , 2 , :r2)
|
||||
end
|
||||
def test_nil_check
|
||||
assert_operator 18 , :- , :r2 , :r3 , :r4
|
||||
assert_operator 18 , :- , :r1 , :r2 , :r3
|
||||
value = @interpreter.get_register(@instruction.result)
|
||||
assert_equal ::Integer , value.class
|
||||
assert 0 != value
|
||||
@ -47,10 +47,10 @@ module Risc
|
||||
assert_not_zero 19 , "cont_label"
|
||||
end
|
||||
def test_load_next_int
|
||||
assert_slot_to_reg( 20 , :r3 , 1 , :r2)
|
||||
assert_slot_to_reg( 20 , :r2 , 1 , :r1)
|
||||
end
|
||||
def test_move_next_back_to_factory
|
||||
assert_reg_to_slot( 21 , :r2 , :r1 , 2)
|
||||
assert_reg_to_slot( 21 , :r1 , :r0 , 2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -26,15 +26,15 @@ module Risc
|
||||
assert_equal 1 , get_return
|
||||
end
|
||||
def test_op
|
||||
assert_operator 26 , :- , :r2 , :r4 , :r1
|
||||
assert_operator 26 , :- , :r1 , :r3 , :r0
|
||||
assert_equal 1 , @interpreter.get_register(@instruction.result)
|
||||
assert_equal 6 , @interpreter.get_register(:r2)
|
||||
assert_equal 5 , @interpreter.get_register(:r4)
|
||||
assert_equal 6 , @interpreter.get_register(:r1)
|
||||
assert_equal 5 , @interpreter.get_register(:r3)
|
||||
end
|
||||
def test_return
|
||||
ret = main_ticks(46)
|
||||
assert_equal FunctionReturn , ret.class
|
||||
assert_equal :r1 , ret.register.symbol
|
||||
assert_equal :r0 , ret.register.symbol
|
||||
assert_equal 36540 , @interpreter.get_register(ret.register).value
|
||||
end
|
||||
end
|
||||
|
@ -26,9 +26,9 @@ module Risc
|
||||
end
|
||||
|
||||
def test_op
|
||||
assert_operator 22 , :>>, :r2 , :r1 , :r4
|
||||
assert_equal 2 , @interpreter.get_register(:r1)
|
||||
assert_equal 9 , @interpreter.get_register(:r2)
|
||||
assert_operator 22 , :>>, :r1 , :r0 , :r3
|
||||
assert_equal 2 , @interpreter.get_register(:r0)
|
||||
assert_equal 9 , @interpreter.get_register(:r1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -30,9 +30,9 @@ module Risc
|
||||
assert @interpreter.flags[:zero]
|
||||
end
|
||||
def test_op
|
||||
assert_operator 26 , :*, :r2 , :r4 , :r1
|
||||
assert_equal 2147483648 , @interpreter.get_register(:r4)
|
||||
assert_equal 2147483648 , @interpreter.get_register(:r2)
|
||||
assert_operator 26 , :*, :r1 , :r3 , :r0
|
||||
assert_equal 2147483648 , @interpreter.get_register(:r3)
|
||||
assert_equal 2147483648 , @interpreter.get_register(:r1)
|
||||
end
|
||||
def test_overflow
|
||||
main_ticks( 26 )
|
||||
|
@ -26,14 +26,14 @@ module Risc
|
||||
assert_equal 10 , get_return
|
||||
end
|
||||
def test_op
|
||||
assert_operator 26, :+ , :r2 , :r4 , :r1
|
||||
assert_operator 26, :+ , :r1 , :r3 , :r0
|
||||
assert_equal 10 , @interpreter.get_register(@instruction.result.symbol)
|
||||
end
|
||||
def test_move_res_to_int
|
||||
assert_reg_to_slot( 27 , :r1 , :r3 , 2)
|
||||
assert_reg_to_slot( 27 , :r0 , :r2 , 2)
|
||||
end
|
||||
def test_move_int_to_reg
|
||||
assert_reg_to_slot( 28 , :r3 , :r0 , 5)
|
||||
assert_reg_to_slot( 28 , :r2 , :r13 , 5)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -11,7 +11,7 @@ module Risc
|
||||
end
|
||||
|
||||
def test_chain
|
||||
show_main_ticks # get output of what is
|
||||
#show_main_ticks # get output of what is
|
||||
check_main_chain [LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, #5
|
||||
RegToSlot, LoadConstant, SlotToReg, RegToSlot, SlotToReg, #10
|
||||
FunctionCall, LoadConstant, LoadConstant, SlotToReg, OperatorInstruction, #15
|
||||
@ -25,7 +25,7 @@ module Risc
|
||||
SlotToReg, Transfer, Syscall, NilClass,] #55
|
||||
assert_equal "Hello again" , @interpreter.stdout
|
||||
assert_equal Integer , get_return.class
|
||||
assert_equal 11 , get_return #bytes written
|
||||
assert_equal 11 , get_return.to_string #bytes written
|
||||
end
|
||||
def test_call
|
||||
cal = main_ticks(11)
|
||||
@ -35,9 +35,9 @@ module Risc
|
||||
|
||||
def test_pre_sys
|
||||
done = main_ticks(24)
|
||||
assert_equal Parfait::Word , @interpreter.get_register(:syscall_1).class
|
||||
assert_equal "Hello again" , @interpreter.get_register(:syscall_1).to_string
|
||||
assert_equal 11 , @interpreter.get_register(:syscall_2)
|
||||
assert_equal Parfait::Word , @interpreter.get_register(:r0).class
|
||||
assert_equal "Hello again" , @interpreter.get_register(:r0).to_string
|
||||
assert_equal 11 , @interpreter.get_register(:r1)
|
||||
end
|
||||
|
||||
def test_sys
|
||||
@ -52,8 +52,8 @@ module Risc
|
||||
assert_equal 11 , @interpreter.get_register(:integer_tmp)
|
||||
end
|
||||
def test_restore_message
|
||||
assert_transfer(27, :saved_message ,:message)
|
||||
assert_equal Parfait::Message , @interpreter.get_register(:message).class
|
||||
assert_transfer(27, :r14 ,:r13)
|
||||
assert_equal Parfait::Message , @interpreter.get_register(:r13).class
|
||||
end
|
||||
def test_return
|
||||
done = main_ticks(48)
|
||||
|
Reference in New Issue
Block a user