stop pinning self and frame

before: r0-message , r1-self , r2-frame , r3-new_message , r4 + tmps
now: r0-message , r1-new_message , r2 + tmps
programs got smaller, less fuss
also fix in return implementation that got the address from the wrong
message
This commit is contained in:
Torsten Ruger
2015-10-18 17:20:19 +03:00
parent da5502e301
commit 6c7e4c0fe2
19 changed files with 98 additions and 94 deletions

View File

@ -51,7 +51,7 @@ HERE
Virtual.machine.boot
syntax = Parser::Salama.new.parse_with_debug(@string_input)
parts = Parser::Transform.new.apply(syntax)
puts parts.inspect
#puts parts.inspect
Phisol::Compiler.compile( parts )
# statements = Virtual.machine.boot.parse_and_compile @string_input
@ -59,16 +59,18 @@ HERE
Virtual.machine.run_before "Register::CallImplementation"
@interpreter = Interpreter::Interpreter.new
@interpreter.start Virtual.machine.init
#show_ticks # get output of what is
["Branch","LoadConstant","GetSlot","SetSlot","RegisterTransfer",
"GetSlot","FunctionCall","SaveReturn","LoadConstant","GetSlot",
"SetSlot","LoadConstant","SetSlot","RegisterTransfer","GetSlot",
"FunctionCall","SaveReturn","GetSlot","LoadConstant","SetSlot",
"GetSlot","SetSlot","LoadConstant","SetSlot","GetSlot",
"SetSlot","RegisterTransfer","GetSlot","FunctionCall","SaveReturn",
"GetSlot","LoadConstant","OperatorInstruction","SetSlot","GetSlot",
"OperatorInstruction","SetSlot","GetSlot","LoadConstant","OperatorInstruction",
"IsZeroBranch","GetSlot","SetSlot","LoadConstant","SetSlot",
"GetSlot","SetSlot","RegisterTransfer","GetSlot","FunctionCall",
"LoadConstant","SetSlot","RegisterTransfer","FunctionCall","SaveReturn",
"LoadConstant","GetSlot","SetSlot","GetSlot","GetSlot",
"SetSlot","LoadConstant","SetSlot","GetSlot","GetSlot",
"SetSlot","RegisterTransfer","FunctionCall","SaveReturn","GetSlot",
"LoadConstant","OperatorInstruction","GetSlot","SetSlot","GetSlot",
"GetSlot","GetSlot","OperatorInstruction","GetSlot","SetSlot",
"GetSlot","GetSlot","LoadConstant","OperatorInstruction","IsZeroBranch",
"GetSlot","GetSlot","SetSlot","LoadConstant","SetSlot",
"GetSlot","GetSlot","SetSlot","RegisterTransfer","FunctionCall",
"SaveReturn","GetSlot","LoadConstant","OperatorInstruction","IsZeroBranch",
"LoadConstant","GetSlot","LoadConstant","OperatorInstruction","IsZeroBranch",
"LoadConstant","GetSlot","LoadConstant","OperatorInstruction","IsZeroBranch",