define and use syscall_XX registers

rather than use hardcoded r0 etc use syscall_X
change the syscalls and interpreter to use them
later use platform to map from syscall_X to actually used register (like r0 in arm)
This commit is contained in:
2020-03-16 17:31:14 +02:00
parent 3b50fee158
commit 17a7f29b0c
5 changed files with 19 additions and 9 deletions

View File

@ -257,12 +257,12 @@ module Risc
else
raise "un-implemented syscall #{name}"
end
set_register( :r0 , ret_value ) # syscalls return into r0 , usually some int
set_register( :syscall_1 , ret_value ) # syscalls return into syscall_1
true
end
def handle_putstring
str = get_register( :r1 ) # should test length, ie r2
str = get_register( :"syscall_1" ) # should test length, ie r2
case str
when Symbol
@stdout << str.to_s