 			throw error(.unexpectedArgument)
 		}
 		
-		guard let regValue = registers[reg] else {
-			throw error(.unexpectedArgument)
-		}
+		let regValue = try getRegValue(for: reg)
 		
 		try push(regValue)
 		

				
				pc = try popFunctionInvoke()
				
			} else if let functionHeader = bytecode[pc] as? BytecodeFunctionHeader {

				guard let funcEndPc = functionEndMap[functionHeader.id] else {
					throw error(.unexpectedArgument)
				}
				
				pc = funcEndPc + 1
				

			throw error(.unexpectedArgument)
		}
		
		setRegValue(try pop(), for: reg)
		
		return pc + 1
	}
