test and fix arg passing offset too

This commit is contained in:
Torsten Ruger 2015-10-22 11:32:37 +03:00
parent 13b8d0645f
commit 4ca15449be
2 changed files with 7 additions and 4 deletions

View File

@ -28,8 +28,9 @@ module Phisol
# processing should return the register with the value
val = process( arg)
raise "Not register #{val}" unless val.is_a?(Register::RegisterValue)
# which we load int the new_message at the argument's index
@method.source.add_code Register.set_slot( statement , val , :new_message , i + 1)
# which we load int the new_message at the argument's index (the one comes from c index)
set = Register.set_slot( statement , val , :new_message , i + 1 + Parfait::Message.offset)
@method.source.add_code set
end
# now we have to resolve the method name (+ receiver) into a callable method

View File

@ -97,8 +97,10 @@ HERE
@expect = [ [SaveReturn , GetSlot,GetSlot,SetSlot,LoadConstant,SetSlot,LoadConstant,
SetSlot,RegisterTransfer,FunctionCall,GetSlot],
[RegisterTransfer,GetSlot,FunctionReturn]]
check
was = check
set = was[0].codes[7]
assert_equal SetSlot , set.class
assert_equal 8, set.index , "Set to message must be offset, not #{set.index}"
end
end
end