Lots of preloading for tests

so many relied (implicitly( on some builtin function
after all can't do much in ruby without calling
Now all those dependencies are explicit
Small risc changes come because the macro version has a return label and unreachable label
This commit is contained in:
2019-09-13 14:07:12 +03:00
parent c9d7539479
commit 12b29285d7
52 changed files with 201 additions and 164 deletions

View File

@ -6,7 +6,7 @@ module Risc
def setup
@class_input = "def self.simple_return; return 1 ; end;"
@input = "return Test.simple_return"
@input = "return Space.simple_return"
@expect = [LoadConstant, RegToSlot, Branch]
end

View File

@ -9,13 +9,13 @@ module Mom
end
def test_mom_length
assert_equal :set_internal_byte , @method.callable.name
assert_equal 5 , @method.mom_instructions.length
assert_equal 7 , @method.mom_instructions.length
end
def test_compile
assert_equal Risc::MethodCompiler , @method.to_risc.class
end
def test_risc_length
assert_equal 17 , @method.to_risc.risc_instructions.length
assert_equal 20 , @method.to_risc.risc_instructions.length
end
end
end

View File

@ -5,7 +5,7 @@ module Risc
include Statements
def setup
@preload = "Integer.ge"
@preload = "Integer.gt"
@input = "while(5 > 0) ; @false_object = true; end;return"
@expect = [Label, LoadConstant, SlotToReg, RegToSlot, LoadConstant, #5
SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, #10