rubyx/lib/risc/position/code_position.rb

33 lines
710 B
Ruby
Raw Normal View History

module Risc
module Position
# BinaryCodes form a linked list
#
# We want to keep all code for a method continous, so we propagate Positions
#
class CodePosition < ObjectPosition
attr_reader :code , :method
def initialize(code, pos , method)
super(pos,code)
@code = code
@method = method
end
def init(at)
next_pos = at + code.padded_length
if code.next
Position.set(code.next , next_pos, method)
else
Position.set(method , next_pos)
end
end
def reset_to(pos)
super(pos)
#puts "Reset (#{changed}) #{instruction}"
init(pos)
end
end
end
end