getting instruction repositioning right

big bug hunt, involving complicated maths (%)
This commit is contained in:
Torsten Ruger
2018-05-24 14:27:53 +03:00
parent 0293320bb8
commit 8d510c2e7e
8 changed files with 62 additions and 44 deletions

View File

@ -23,15 +23,15 @@ module Risc
second = Arm::ArmMachine.b( @label)
@label.set_next(second)
Position.set( @label , 8 , @binary)
Position.set(second , 2 , @binary)
Position.set(second , 12 , @binary)
Position.set( @label , 8 , @binary)
assert_equal 8 , Position.get(@label.next).at
end
def test_label_at
branch = Branch.new("b" , @label)
Position.set(@label , 4 , @binary)
Position.set(branch , 4 , @binary)
at_4 = Position.at(4)
Position.set(@label , 8 , @binary)
Position.set(branch , 8 , @binary)
at_4 = Position.at(8)
assert_equal InstructionPosition , at_4.class
assert_equal Branch , at_4.instruction.class
end

View File

@ -29,10 +29,10 @@ module Risc
assert_equal 0 , Position.get(@machine.cpu_init).at
end
def test_cpu_at
assert_equal "0x5bd8" , Position.get(@machine.cpu_init.first).to_s
assert_equal "0x5714" , Position.get(@machine.cpu_init.first).to_s
end
def test_cpu_bin
assert_equal "0x5bcc" , Position.get(Position.get(@machine.cpu_init.first).binary).to_s
assert_equal "0x570c" , Position.get(Position.get(@machine.cpu_init.first).binary).to_s
end
def test_cpu_label
assert_equal Position::InstructionPosition , Position.get(@machine.cpu_init.first).class