fix register use in putstring
was off by one, the syscall is write and the first arg is file_descriptor ie 1 == stdout
This commit is contained in:
@ -35,9 +35,9 @@ module Risc
|
||||
|
||||
def test_pre_sys
|
||||
done = main_ticks(24)
|
||||
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)
|
||||
assert_equal Parfait::Word , @interpreter.get_register(@interpreter.std_reg(:syscall_2)).class
|
||||
assert_equal "Hello again" , @interpreter.get_register(@interpreter.std_reg(:syscall_2)).to_string
|
||||
assert_equal 11 , @interpreter.get_register(@interpreter.std_reg(:syscall_3))
|
||||
end
|
||||
|
||||
def test_sys
|
||||
|
@ -26,5 +26,10 @@ module Risc
|
||||
int = @builder.allocate_int
|
||||
assert_allocate
|
||||
end
|
||||
def test_compiler
|
||||
int = @builder.allocate_int
|
||||
assert int.compiler
|
||||
assert int.symbol.to_s.start_with?("id_fac")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -24,8 +24,8 @@ module SlotMachine
|
||||
assert_reg_to_slot s + 1 , "id_factory_.next_object" , :message , 5
|
||||
assert_slot_to_reg s + 2 ,:message , 2 , "message.receiver"
|
||||
assert_slot_to_reg s + 3 ,"message.receiver" , 1 , "id_factory_.next_object"
|
||||
assert_transfer s + 4 , :"message.receiver" , :syscall_1
|
||||
assert_transfer s + 5 , "id_factory_.next_object" , :syscall_2
|
||||
assert_transfer s + 4 , :"message.receiver" , :syscall_2
|
||||
assert_transfer s + 5 , "id_factory_.next_object" , :syscall_3
|
||||
assert_transfer s + 6 , :message , :saved_message
|
||||
assert_syscall s + 7 , :putstring
|
||||
assert_transfer s + 8 , :syscall_1 , :restore_integer_return
|
||||
|
Reference in New Issue
Block a user