to_s for reg instructions
This commit is contained in:
parent
fa552bf751
commit
139b0174d8
@ -11,7 +11,7 @@ module Register
|
|||||||
attr_reader :block
|
attr_reader :block
|
||||||
|
|
||||||
def to_s
|
def to_s
|
||||||
"Branch(to: #{block.name})"
|
"Branch(block: #{block.name})"
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -8,5 +8,10 @@ module Register
|
|||||||
@method = method
|
@method = method
|
||||||
end
|
end
|
||||||
attr_reader :method
|
attr_reader :method
|
||||||
|
|
||||||
|
def to_s
|
||||||
|
"FunctionCall(#{method.name})"
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
@ -9,5 +9,10 @@ module Register
|
|||||||
@index = index
|
@index = index
|
||||||
end
|
end
|
||||||
attr_reader :register , :index
|
attr_reader :register , :index
|
||||||
|
|
||||||
|
def to_s
|
||||||
|
"FunctionReturn(#{register}: #{index})"
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
@ -27,6 +27,11 @@ module Register
|
|||||||
raise "Not register #{array}" unless Register::RegisterReference.look_like_reg(array)
|
raise "Not register #{array}" unless Register::RegisterReference.look_like_reg(array)
|
||||||
end
|
end
|
||||||
attr_accessor :register , :array , :index
|
attr_accessor :register , :array , :index
|
||||||
|
|
||||||
|
def to_s
|
||||||
|
"GetSlot(#{register}: #{array}[#{index}])"
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Produce a GetSlot instruction.
|
# Produce a GetSlot instruction.
|
||||||
|
@ -10,5 +10,10 @@ module Register
|
|||||||
@constant = constant
|
@constant = constant
|
||||||
end
|
end
|
||||||
attr_accessor :register , :constant
|
attr_accessor :register , :constant
|
||||||
|
|
||||||
|
def to_s
|
||||||
|
"LoadConstant(#{register}: #{constant})"
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -21,5 +21,10 @@ module Register
|
|||||||
@to = wrap_register(to)
|
@to = wrap_register(to)
|
||||||
end
|
end
|
||||||
attr_reader :from, :to
|
attr_reader :from, :to
|
||||||
|
|
||||||
|
def to_s
|
||||||
|
"RegisterTransfer(#{from} -> #{to})"
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -12,6 +12,11 @@ module Register
|
|||||||
@index = index
|
@index = index
|
||||||
end
|
end
|
||||||
attr_reader :register , :index
|
attr_reader :register , :index
|
||||||
|
|
||||||
|
def to_s
|
||||||
|
"SaveReturn(#{register}[#{index}])"
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Produce a SaveReturn instruction.
|
# Produce a SaveReturn instruction.
|
||||||
|
@ -26,6 +26,10 @@ module Register
|
|||||||
raise "Not register #{array}" unless Register::RegisterReference.look_like_reg(array)
|
raise "Not register #{array}" unless Register::RegisterReference.look_like_reg(array)
|
||||||
end
|
end
|
||||||
attr_accessor :register , :array , :index
|
attr_accessor :register , :array , :index
|
||||||
|
def to_s
|
||||||
|
"SetSlot(#{register}: #{array}[#{index}])"
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Produce a SetSlot instruction.
|
# Produce a SetSlot instruction.
|
||||||
|
@ -13,5 +13,10 @@ module Register
|
|||||||
@name = name
|
@name = name
|
||||||
end
|
end
|
||||||
attr_reader :name
|
attr_reader :name
|
||||||
|
|
||||||
|
def to_s
|
||||||
|
"Syscall(#{name})"
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -17,6 +17,9 @@ module Register
|
|||||||
@symbol = r
|
@symbol = r
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def to_s
|
||||||
|
symbol.to_s
|
||||||
|
end
|
||||||
def self.convert something
|
def self.convert something
|
||||||
return something unless something.is_a? Symbol
|
return something unless something.is_a? Symbol
|
||||||
return something unless look_like_reg(something)
|
return something unless look_like_reg(something)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user