set label integer to position
This commit is contained in:
parent
8322fca7b3
commit
296617cbaf
@ -24,6 +24,7 @@ module Risc
|
|||||||
end
|
end
|
||||||
def init(at, binary)
|
def init(at, binary)
|
||||||
@binary = binary
|
@binary = binary
|
||||||
|
instruction.integer.set_value(at) if instruction.is_a?(Label)
|
||||||
return if at == 0 and binary.nil?
|
return if at == 0 and binary.nil?
|
||||||
raise "faux pas" if at < Position.get(binary).at
|
raise "faux pas" if at < Position.get(binary).at
|
||||||
return unless @instruction.next
|
return unless @instruction.next
|
||||||
|
@ -14,6 +14,15 @@ module Risc
|
|||||||
pos = Position.set( @label , 8 , @binary)
|
pos = Position.set( @label , 8 , @binary)
|
||||||
assert_equal InstructionPosition , pos.class
|
assert_equal InstructionPosition , pos.class
|
||||||
end
|
end
|
||||||
|
def test_label_set_int
|
||||||
|
Position.set( @label , 8 , @binary)
|
||||||
|
assert_equal 8 , @label.integer.value
|
||||||
|
end
|
||||||
|
def test_label_reset_int
|
||||||
|
Position.set( @label , 8 , @binary)
|
||||||
|
Position.set( @label , 18 , @binary)
|
||||||
|
assert_equal 18 , @label.integer.value
|
||||||
|
end
|
||||||
def test_ins_propagates
|
def test_ins_propagates
|
||||||
@label.set_next Arm::ArmMachine.b( @label)
|
@label.set_next Arm::ArmMachine.b( @label)
|
||||||
Position.set( @label , 8 , @binary)
|
Position.set( @label , 8 , @binary)
|
||||||
|
Loading…
Reference in New Issue
Block a user