rubyx/lib/slot_machine/macro/putstring.rb

19 lines
625 B
Ruby
Raw Normal View History

2019-10-03 20:07:55 +02:00
module SlotMachine
2019-09-11 19:17:43 +02:00
class Putstring < Macro
2019-09-11 17:53:20 +02:00
def to_risc(compiler)
builder = compiler.builder(compiler.source)
2020-03-11 21:31:16 +01:00
integer = builder.prepare_int_return # makes integer_tmp variable as return
word = Risc.syscall_reg(1).set_compiler(compiler)
length = Risc.syscall_reg(2).set_compiler(compiler)
2019-09-11 17:53:20 +02:00
builder.build do
string = message[:receiver].to_reg.known_type(:Word)
integer << string[:char_length]
word << string # into right
length << integer # registers
2019-09-11 17:53:20 +02:00
end
2019-10-03 20:07:55 +02:00
SlotMachine::Macro.emit_syscall( builder , :putstring )
2019-09-11 17:53:20 +02:00
compiler
end
end
end