 			throw error(.unexpectedArgument)
 		}
 		
-		registers[reg] = try pop()
+		setRegValue(try pop(), for: reg)
 		
 		return pc + 1
 	}

			throw error(.unexpectedArgument)
		}
		
		registers.removeValue(forKey: reg)
		
		return pc + 1
	}

	fileprivate var functionEndMap = [String : Int]()

	fileprivate var functionInvokeStack = [Int]()
	
	fileprivate var functionDepth = 0

	/// Manual stack size counting for performance
	fileprivate var functionInvokeStackSize = 0
