rename register to risc
seems to fit the layer much better as we really have a very reduced instruction set
This commit is contained in:
@ -1,3 +1,3 @@
|
||||
require_relative "../helper"
|
||||
|
||||
Register.machine.boot unless Register.machine.booted
|
||||
Risc.machine.boot unless Risc.machine.booted
|
||||
|
@ -1,6 +1,6 @@
|
||||
require_relative '../helper'
|
||||
|
||||
module Register
|
||||
module Risc
|
||||
module SpaceHack
|
||||
# test hack to in place change object type
|
||||
def add_space_field(name,type)
|
||||
@ -12,7 +12,7 @@ module Register
|
||||
include SpaceHack
|
||||
|
||||
def check
|
||||
Register.machine.boot unless Register.machine.booted
|
||||
Risc.machine.boot unless Risc.machine.booted
|
||||
compiler = Vm::MethodCompiler.new Parfait.object_space.get_main
|
||||
code = Vm.ast_to_code @input
|
||||
assert code.to_s , @input
|
||||
@ -30,7 +30,7 @@ module Register
|
||||
include SpaceHack
|
||||
|
||||
def setup
|
||||
Register.machine.boot # force boot to reset main
|
||||
Risc.machine.boot # force boot to reset main
|
||||
end
|
||||
|
||||
def preamble
|
||||
@ -71,7 +71,7 @@ module Register
|
||||
def should( all )
|
||||
#preamble.each {all.shift}
|
||||
#postamble.each {all.pop}
|
||||
str = all.to_s.gsub("Register::","")
|
||||
str = all.to_s.gsub("Risc::","")
|
||||
ret = ""
|
||||
str.split(",").each_slice(6).each do |line|
|
||||
ret += " " + line.join(",") + " ,\n"
|
||||
|
@ -1,6 +1,6 @@
|
||||
require_relative 'helper'
|
||||
|
||||
module Register
|
||||
module Risc
|
||||
class TestAssignStatement < MiniTest::Test
|
||||
include Statements
|
||||
|
||||
@ -44,8 +44,8 @@ module Register
|
||||
Parfait.object_space.get_main.add_local(:r , :Object)
|
||||
@input = s(:statements, s(:l_assignment, s(:local, :r), s(:call, :main, s(:arguments))))
|
||||
@expect = [Label, SlotToReg, SlotToReg, RegToSlot, LoadConstant, RegToSlot ,
|
||||
LoadConstant, SlotToReg, RegToSlot, LoadConstant, RegToSlot, RegisterTransfer ,
|
||||
FunctionCall, Label, RegisterTransfer, SlotToReg, SlotToReg, SlotToReg ,
|
||||
LoadConstant, SlotToReg, RegToSlot, LoadConstant, RegToSlot, RiscTransfer ,
|
||||
FunctionCall, Label, RiscTransfer, SlotToReg, SlotToReg, SlotToReg ,
|
||||
RegToSlot, LoadConstant, SlotToReg, RegToSlot, Label, FunctionReturn]
|
||||
assert_nil msg = check_nil , msg
|
||||
end
|
||||
|
@ -1,14 +1,14 @@
|
||||
require_relative "helper"
|
||||
|
||||
module Register
|
||||
module Risc
|
||||
|
||||
class TestBasic < MiniTest::Test
|
||||
include ExpressionHelper
|
||||
include AST::Sexp
|
||||
|
||||
def setup
|
||||
Register.machine.boot
|
||||
@output = Register::RegisterValue
|
||||
Risc.machine.boot
|
||||
@output = Risc::RiscValue
|
||||
end
|
||||
|
||||
def test_number
|
||||
|
@ -1,13 +1,13 @@
|
||||
require_relative "helper"
|
||||
|
||||
module Register
|
||||
module Risc
|
||||
class TestCall < MiniTest::Test
|
||||
include ExpressionHelper
|
||||
include AST::Sexp
|
||||
|
||||
def setup
|
||||
Register.machine.boot
|
||||
@output = Register::RegisterValue
|
||||
Risc.machine.boot
|
||||
@output = Risc::RiscValue
|
||||
end
|
||||
|
||||
def test_call_main_plain
|
||||
|
@ -1,7 +1,7 @@
|
||||
require_relative 'helper'
|
||||
require_relative "test_call_expression"
|
||||
|
||||
module Register
|
||||
module Risc
|
||||
class TestCallStatement < MiniTest::Test
|
||||
include Statements
|
||||
|
||||
@ -9,8 +9,8 @@ module Register
|
||||
clean_compile :Integer, :puti, {}, s(:statements, s(:return, s(:int, 1)))
|
||||
@input = s(:call, :puti , s(:arguments), s(:receiver, s(:int, 42)))
|
||||
@expect = [Label, SlotToReg, LoadConstant, RegToSlot, LoadConstant, RegToSlot, LoadConstant ,
|
||||
SlotToReg, RegToSlot, LoadConstant, RegToSlot, RegisterTransfer, FunctionCall, Label ,
|
||||
RegisterTransfer, SlotToReg, SlotToReg, LoadConstant, SlotToReg, RegToSlot, Label ,
|
||||
SlotToReg, RegToSlot, LoadConstant, RegToSlot, RiscTransfer, FunctionCall, Label ,
|
||||
RiscTransfer, SlotToReg, SlotToReg, LoadConstant, SlotToReg, RegToSlot, Label ,
|
||||
FunctionReturn]
|
||||
assert_nil msg = check_nil , msg
|
||||
end
|
||||
@ -21,8 +21,8 @@ module Register
|
||||
|
||||
@input =s(:call, :putstr, s(:arguments), s(:receiver, s(:string, "Hello")))
|
||||
@expect = [Label, SlotToReg, LoadConstant, RegToSlot, LoadConstant, RegToSlot, LoadConstant ,
|
||||
SlotToReg, RegToSlot, LoadConstant, RegToSlot, RegisterTransfer, FunctionCall, Label ,
|
||||
RegisterTransfer, SlotToReg, SlotToReg, LoadConstant, SlotToReg, RegToSlot, Label ,
|
||||
SlotToReg, RegToSlot, LoadConstant, RegToSlot, RiscTransfer, FunctionCall, Label ,
|
||||
RiscTransfer, SlotToReg, SlotToReg, LoadConstant, SlotToReg, RegToSlot, Label ,
|
||||
FunctionReturn]
|
||||
assert_nil msg = check_nil , msg
|
||||
end
|
||||
@ -34,7 +34,7 @@ module Register
|
||||
|
||||
@expect = [Label, LoadConstant, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg ,
|
||||
RegToSlot, LoadConstant, RegToSlot, LoadConstant, SlotToReg, RegToSlot, LoadConstant ,
|
||||
RegToSlot, RegisterTransfer, FunctionCall, Label, RegisterTransfer, SlotToReg, SlotToReg ,
|
||||
RegToSlot, RiscTransfer, FunctionCall, Label, RiscTransfer, SlotToReg, SlotToReg ,
|
||||
LoadConstant, SlotToReg, RegToSlot, Label, FunctionReturn]
|
||||
assert_nil msg = check_nil , msg
|
||||
end
|
||||
@ -45,8 +45,8 @@ module Register
|
||||
|
||||
@input =s(:statements, s(:call, :add, s(:arguments), s(:receiver, s(:local, :test_l))))
|
||||
@expect = [Label, SlotToReg, SlotToReg, SlotToReg, RegToSlot, LoadConstant, RegToSlot ,
|
||||
LoadConstant, SlotToReg, RegToSlot, LoadConstant, RegToSlot, RegisterTransfer, FunctionCall ,
|
||||
Label, RegisterTransfer, SlotToReg, SlotToReg, LoadConstant, SlotToReg, RegToSlot ,
|
||||
LoadConstant, SlotToReg, RegToSlot, LoadConstant, RegToSlot, RiscTransfer, FunctionCall ,
|
||||
Label, RiscTransfer, SlotToReg, SlotToReg, LoadConstant, SlotToReg, RegToSlot ,
|
||||
Label, FunctionReturn]
|
||||
assert_nil msg = check_nil , msg
|
||||
end
|
||||
@ -56,7 +56,7 @@ module Register
|
||||
@input =s(:call, :putstr , s(:arguments, s(:string, "Hello") ) )
|
||||
@expect = [Label, SlotToReg, SlotToReg, RegToSlot, LoadConstant, RegToSlot ,
|
||||
LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot ,
|
||||
LoadConstant, RegToSlot, RegisterTransfer, FunctionCall, Label, RegisterTransfer ,
|
||||
LoadConstant, RegToSlot, RiscTransfer, FunctionCall, Label, RiscTransfer ,
|
||||
SlotToReg, SlotToReg, LoadConstant, SlotToReg, RegToSlot, Label ,
|
||||
FunctionReturn]
|
||||
was = check_return
|
||||
|
@ -1,12 +1,12 @@
|
||||
require_relative "helper"
|
||||
|
||||
module Register
|
||||
module Risc
|
||||
class TestFields < MiniTest::Test
|
||||
include ExpressionHelper
|
||||
include AST::Sexp
|
||||
|
||||
def setup
|
||||
Register.machine.boot
|
||||
Risc.machine.boot
|
||||
end
|
||||
|
||||
def test_field_not_defined
|
||||
@ -26,7 +26,7 @@ module Register
|
||||
add_space_field(:bro,:Object)
|
||||
@root = :field_access
|
||||
@input = s(:field_access,s(:receiver, s(:known, :self)),s(:field,s(:ivar, :bro)))
|
||||
@output = Register::RegisterValue
|
||||
@output = Risc::RiscValue
|
||||
check
|
||||
end
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
require_relative 'helper'
|
||||
|
||||
|
||||
module Register
|
||||
module Risc
|
||||
class TestFieldStatement < MiniTest::Test
|
||||
include Statements
|
||||
|
||||
@ -23,8 +23,8 @@ module Register
|
||||
|
||||
@expect = [Label, SlotToReg, SlotToReg, RegToSlot, LoadConstant, RegToSlot ,
|
||||
LoadConstant, SlotToReg, RegToSlot, SlotToReg, SlotToReg, SlotToReg ,
|
||||
RegToSlot, LoadConstant, RegToSlot, RegisterTransfer, FunctionCall, Label ,
|
||||
RegisterTransfer, SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg ,
|
||||
RegToSlot, LoadConstant, RegToSlot, RiscTransfer, FunctionCall, Label ,
|
||||
RiscTransfer, SlotToReg, SlotToReg, RegToSlot, LoadConstant, SlotToReg ,
|
||||
RegToSlot, Label, FunctionReturn]
|
||||
assert_nil msg = check_nil , msg
|
||||
end
|
||||
@ -33,7 +33,7 @@ module Register
|
||||
Parfait.object_space.get_main.add_local(:name , :Word)
|
||||
@input = s(:statements, s(:l_assignment, s(:local, :name), s(:field_access, s(:receiver, s(:known, :message)), s(:field, s(:ivar, :name)))), s(:return, s(:local, :name)))
|
||||
|
||||
@expect = [Label, RegisterTransfer, SlotToReg, SlotToReg, RegToSlot, SlotToReg ,
|
||||
@expect = [Label, RiscTransfer, SlotToReg, SlotToReg, RegToSlot, SlotToReg ,
|
||||
SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot, Label ,
|
||||
FunctionReturn]
|
||||
assert_nil msg = check_nil , msg
|
||||
|
@ -1,6 +1,6 @@
|
||||
require_relative 'helper'
|
||||
|
||||
module Register
|
||||
module Risc
|
||||
class TestIfStatement < MiniTest::Test
|
||||
include Statements
|
||||
|
||||
|
@ -1,32 +1,32 @@
|
||||
require_relative "helper"
|
||||
|
||||
module Register
|
||||
module Risc
|
||||
class TestFields < MiniTest::Test
|
||||
include ExpressionHelper
|
||||
include AST::Sexp
|
||||
|
||||
def setup
|
||||
Register.machine.boot
|
||||
Risc.machine.boot
|
||||
end
|
||||
|
||||
def test_local
|
||||
Parfait.object_space.get_main.add_local(:bar , :Integer)
|
||||
@input = s(:local, :bar)
|
||||
@output = Register::RegisterValue
|
||||
@output = Risc::RiscValue
|
||||
check
|
||||
end
|
||||
|
||||
def test_space
|
||||
@root = :name
|
||||
@input = s(:known, :space)
|
||||
@output = Register::RegisterValue
|
||||
@output = Risc::RiscValue
|
||||
check
|
||||
end
|
||||
|
||||
def test_args
|
||||
Parfait.object_space.get_main.add_argument(:bar , :Integer)
|
||||
@input = s(:arg, :bar)
|
||||
@output = Register::RegisterValue
|
||||
@output = Risc::RiscValue
|
||||
check
|
||||
end
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
require_relative "helper"
|
||||
|
||||
module Register
|
||||
module Risc
|
||||
class TestOps < MiniTest::Test
|
||||
include ExpressionHelper
|
||||
include AST::Sexp
|
||||
|
||||
def setup
|
||||
Register.machine.boot
|
||||
Risc.machine.boot
|
||||
@root = :operator_value
|
||||
@output = Register::RegisterValue
|
||||
@output = Risc::RiscValue
|
||||
end
|
||||
|
||||
def operators
|
||||
|
@ -1,6 +1,6 @@
|
||||
require_relative 'helper'
|
||||
|
||||
module Register
|
||||
module Risc
|
||||
class TestReturnStatement < MiniTest::Test
|
||||
include Statements
|
||||
|
||||
@ -30,8 +30,8 @@ module Register
|
||||
def test_return_call
|
||||
@input =s(:statements, s(:return, s(:call, :main, s(:arguments))))
|
||||
@expect = [Label, SlotToReg, SlotToReg, RegToSlot, LoadConstant, RegToSlot ,
|
||||
LoadConstant, SlotToReg, RegToSlot, LoadConstant, RegToSlot, RegisterTransfer ,
|
||||
FunctionCall, Label, RegisterTransfer, SlotToReg, SlotToReg, RegToSlot ,
|
||||
LoadConstant, SlotToReg, RegToSlot, LoadConstant, RegToSlot, RiscTransfer ,
|
||||
FunctionCall, Label, RiscTransfer, SlotToReg, SlotToReg, RegToSlot ,
|
||||
LoadConstant, SlotToReg, RegToSlot, Label, FunctionReturn]
|
||||
assert_nil msg = check_nil , msg
|
||||
end
|
||||
|
@ -1,6 +1,6 @@
|
||||
require_relative 'helper'
|
||||
|
||||
module Register
|
||||
module Risc
|
||||
class TestWhile < MiniTest::Test
|
||||
include Statements
|
||||
|
||||
|
@ -3,7 +3,7 @@ require_relative "../helper"
|
||||
class BasicType < MiniTest::Test
|
||||
|
||||
def setup
|
||||
Register.machine.boot
|
||||
Risc.machine.boot
|
||||
@space = Parfait.object_space
|
||||
@mess = @space.first_message
|
||||
assert @mess
|
||||
@ -58,7 +58,7 @@ class BasicType < MiniTest::Test
|
||||
|
||||
# not really parfait test, but related and no other place currently
|
||||
def test_reg_index
|
||||
message_ind = Register.resolve_to_index( :message , :receiver )
|
||||
message_ind = Risc.resolve_to_index( :message , :receiver )
|
||||
assert_equal 3 , message_ind
|
||||
@mess.set_receiver( 55)
|
||||
assert_equal 55 , @mess.get_internal_word(message_ind)
|
||||
|
@ -3,7 +3,7 @@ require_relative "../helper"
|
||||
class TypeHash < MiniTest::Test
|
||||
|
||||
def setup
|
||||
Register.machine.boot
|
||||
Risc.machine.boot
|
||||
@space = Parfait.object_space
|
||||
@types = @space.instance_variable_get("@types")
|
||||
@first = @types.values.first
|
||||
|
@ -3,7 +3,7 @@ require_relative "../helper"
|
||||
class TypeMessages < MiniTest::Test
|
||||
|
||||
def setup
|
||||
Register.machine.boot
|
||||
Risc.machine.boot
|
||||
@space = Parfait.object_space
|
||||
@mess = @space.first_message
|
||||
end
|
||||
|
@ -3,7 +3,7 @@ require_relative "../helper"
|
||||
class TestMethodApi < MiniTest::Test
|
||||
|
||||
def setup
|
||||
Register.machine.boot
|
||||
Risc.machine.boot
|
||||
@space = Parfait.object_space
|
||||
@try_class = @space.create_class( :Try )
|
||||
@try_type = @try_class.instance_type
|
||||
|
@ -3,7 +3,7 @@ require_relative "../helper"
|
||||
class TypeApi < MiniTest::Test
|
||||
|
||||
def setup
|
||||
Register.machine.boot
|
||||
Risc.machine.boot
|
||||
@space = Parfait.object_space
|
||||
tc = @space.get_class_by_name( :NamedList )
|
||||
@type = tc.instance_type
|
||||
|
Reference in New Issue
Block a user