module Arm class GetImplementation def run block block.codes.dup.each do |code| next unless code.is_a? Register::GetSlot # times 4 because arm works in bytes, but vm in words # + 1 because of the type word load = ArmMachine.ldr( code.register , code.array , 4 * (code.index + 1) ) block.replace(code , load ) end end end Virtual.machine.add_pass "Arm::GetImplementation" end