remove unused methods

and a whole lot more index fixes
This commit is contained in:
Torsten Ruger
2018-05-14 20:50:52 +03:00
parent 5d3c70da89
commit e237bc625a
10 changed files with 25 additions and 44 deletions

View File

@ -38,7 +38,6 @@ module Parfait
101.times { @next_integer = Integer.new(0,@next_integer) }
50.times do
@first_message = Message.new message
#puts "INIT caller #{message.object_id} to #{@first_message.object_id}"
message.set_caller @first_message
message = @first_message
end

View File

@ -65,8 +65,7 @@ module Parfait
# determine if method has a local variable or tmp (anonymous local) by given name
def has_local( name )
raise "has_local #{name}.#{name.class}" unless name.is_a? Symbol
index = frame_type.variable_index( name )
index ? (index - 1) : index
frame_type.variable_index( name )
end
def add_local( name , type )
@ -75,18 +74,6 @@ module Parfait
@frame_type = @frame_type.add_instance_variable(name,type)
end
def frame_length
frame_type.instance_length - 1
end
def locals_name( index )
frame_type.names.get(index + 1)
end
def locals_type( index )
frame_type.types.get(index + 1)
end
def rxf_reference_name
"Method: " + @name.to_s
end

View File

@ -129,7 +129,7 @@ module Risc
{ Word: {char_length: :Integer} ,
List: {indexed_length: :Integer} ,
Message: { next_message: :Message, receiver: :Object, frame: :NamedList ,
return_address: :Integer, return_value: :Integer,
return_address: :Integer, return_value: :Object,
caller: :Message , name: :Word , arguments: :NamedList },
Integer: {next_integer: :Integer},
DataObject: {},

View File

@ -4,7 +4,7 @@ module Risc
module CompileHelper
def compiler_for( type , method_name , arguments , locals = {})
frame = Parfait::NamedList.type_for( locals ) #TODO fix locals passing/ using in builtin
frame = Parfait::NamedList.type_for( locals )
args = Parfait::NamedList.type_for( arguments )
Risc::MethodCompiler.create_method(type , method_name , args, frame )
end

View File

@ -22,7 +22,7 @@ module Risc
@array = array
@index = index
@register = register
raise "index 0 " if index == 0
raise "index #{index}" if index.is_a?(Numeric) and index < 0
raise "Not integer or reg #{index}" unless index.is_a?(Numeric) or RiscValue.look_like_reg(index)
raise "Not register #{register}" unless RiscValue.look_like_reg(register)
raise "Not register #{array}" unless RiscValue.look_like_reg(array)

View File

@ -18,14 +18,9 @@ module Risc
# (which are precisely the symbols :message or :new_message. or a register)
# index resolves with resolve_to_index.
def self.reg_to_slot( source , from_reg , to , index )
no_rec = index != :receiver
puts "FROM #{from_reg}"
puts "TO #{to}"
puts "IN #{index}"
from = resolve_to_register from_reg
index = resolve_to_index( to , index)
to = resolve_to_register to
# raise "HALLO " if index == 2 and no_rec
RegToSlot.new( source, from , to , index)
end