move all position setting into position
Position and subclasses handle the logic, external to the classes, so it can be swapped out later (at runtime positions can’t change)
This commit is contained in:
@ -82,22 +82,22 @@ module Arm
|
||||
end
|
||||
def test_too_big_add
|
||||
code = @machine.add :r1 , :r1, 0x222
|
||||
code.set_position(0,0)
|
||||
Risc::Position.set(0,0)
|
||||
# add 0x02 (first instruction) and then 0x220 shifted
|
||||
assert_code code , :add , [0x02,0x1c,0x91,0xe2] #e2 91 1e 02
|
||||
# added extra instruction to add "extra"
|
||||
assert_code code.next , :add , [0x22,0x10,0x91,0xe2] #e2 91 10 22
|
||||
end
|
||||
|
||||
def label pos = 0x22 + 8
|
||||
def label( pos = 0x22 + 8)
|
||||
l = Risc.label("some" , "Label")
|
||||
l.set_position pos
|
||||
Risc::Position.set(l,pos , 1)
|
||||
l
|
||||
end
|
||||
|
||||
def test_move_object
|
||||
code = @machine.add( :r1 , label)
|
||||
code.set_position(0,0)
|
||||
Risc::Position.set(code,0,0)
|
||||
assert_code code , :add , [0x22,0x10,0x9f,0xe2] #e2 9f 10 22
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user