diff --git a/lib/arm/instructions/stack_instruction.rb b/lib/arm/instructions/stack_instruction.rb index 491f65e1..4b8079a8 100644 --- a/lib/arm/instructions/stack_instruction.rb +++ b/lib/arm/instructions/stack_instruction.rb @@ -57,7 +57,7 @@ module Arm end def to_s - "#{opcode} [#{@first.join(',') }] #{super}" + "#{opcode} [#{@first.join(', ') }] #{super}" end end diff --git a/lib/mom/instruction/slot_definition.rb b/lib/mom/instruction/slot_definition.rb index a8167836..9a3a3770 100644 --- a/lib/mom/instruction/slot_definition.rb +++ b/lib/mom/instruction/slot_definition.rb @@ -30,7 +30,7 @@ module Mom def to_s names = [known_name] + @slots - "[#{names.join(',')}]" + "[#{names.join(', ')}]" end def known_name diff --git a/lib/risc/instructions/branch.rb b/lib/risc/instructions/branch.rb index 4c9f53e5..0b534537 100644 --- a/lib/risc/instructions/branch.rb +++ b/lib/risc/instructions/branch.rb @@ -16,6 +16,7 @@ module Risc str = label.name when Parfait::BinaryCode str = "Code" + str += ":#{Position.get(label)}" if Position.set?(label) else str = "(no label)" end diff --git a/lib/risc/interpreter.rb b/lib/risc/interpreter.rb index 33355899..8d2c375e 100644 --- a/lib/risc/interpreter.rb +++ b/lib/risc/interpreter.rb @@ -32,7 +32,8 @@ module Risc @linker = linker end - def start_program + def start_program(linker = nil) + @linker = linker || @linker initialize(@linker) init = @linker.cpu_init set_state(:running) @@ -115,14 +116,15 @@ module Risc # Instruction interpretation starts here def execute_DynamicJump method = get_register(@instruction.register) - set_pc( Position.get(method.cpu_instructions).at ) + pos = Position.get(method.binary).at + Parfait::BinaryCode.byte_offset + set_pc( pos ) false end def execute_Branch label = @instruction.label pos = Position.get(label).at pos += Parfait::BinaryCode.byte_offset if label.is_a?(Parfait::BinaryCode) - set_pc pos + set_pc( pos ) false end diff --git a/lib/vool/send_statement.rb b/lib/vool/send_statement.rb index 53c2a955..337972a9 100644 --- a/lib/vool/send_statement.rb +++ b/lib/vool/send_statement.rb @@ -52,7 +52,7 @@ module Vool end def to_s - "#{receiver}.#{name}(#{arguments.join(',')})" + "#{receiver}.#{name}(#{arguments.join(', ')})" end def each(&block) block.call(self) diff --git a/lib/vool/yield_statement.rb b/lib/vool/yield_statement.rb index 2ef145dc..48ced6ad 100644 --- a/lib/vool/yield_statement.rb +++ b/lib/vool/yield_statement.rb @@ -33,7 +33,7 @@ module Vool end def to_s - "#{receiver}.#{name}(#{arguments.join(',')})" + "#{receiver}.#{name}(#{arguments.join(', ')})" end def each(&block) block.call(self)