add initial jump instruction

This commit is contained in:
Torsten Ruger
2014-10-06 19:57:44 +03:00
parent e1aa3fd843
commit 5c90ad83e0
5 changed files with 32 additions and 1 deletions

View File

@ -41,7 +41,7 @@ module Register
link
@stream = StringIO.new
mid , main = @objects.find{|k,objekt| objekt.is_a?(Virtual::CompiledMethod) and (objekt.name == :__init__ )}
initial_jump = RegisterMachine.instance.b( main )
initial_jump = RegisterMain.new( main )
initial_jump.set_position( 0)
initial_jump.assemble( @stream )
@objects.each_value do |objekt|

View File

@ -37,3 +37,4 @@ require_relative "instructions/function_call"
require_relative "instructions/function_return"
require_relative "instructions/save_return"
require_relative "instructions/register_transfer"
require_relative "instructions/register_main"

View File

@ -0,0 +1,14 @@
module Register
# This starts the register machine machine at the given function.
# The implementation is most likely a jump/branch , but since we have the extra layer
# we make good use of it, ie give things descriptive names (what they do, not how)
class RegisterMain < Instruction
def initialize method
@method = method
end
attr_reader :method
end
end