public Address makeReference(VarnodeContext varnodeContext, Instruction instruction, int opIndex, Varnode vt, DataType dataType, RefType refType,
			int pcodeop, boolean knownReference, TaskMonitor monitor) {
		if (!vt.isAddress() && !varnodeContext.isExternalSpace(vt.getSpace())) {
			if (evaluator != null) {
				evaluator.evaluateSymbolicReference(varnodeContext, instruction, vt.getAddress());
			}
			return null;
		}

		// offset must be word based to compute the reference correctly
		return makeReference(varnodeContext, instruction, opIndex, vt.getSpace(), vt.getWordOffset(),
			 vt.getSize(), dataType, refType, pcodeop, knownReference, false, monitor);
	}
Make from the instruction to the reference based on the varnode passed in.

@param varnodeContext - context to use for any other infomation needed
@param instruction - instruction to place the reference on.
@param pcodeop - pcode op that caused the reference
@param opIndex - operand it should be placed on, or -1 if unknown
@param vt - place to reference, could be a full address, or just a constant
@param refType - type of reference
@param knownReference true if this is a know good address, speculative otherwise
@param monitor to cancel
@return address that was marked up, null otherwise
Ghidra/Features/Base/src/main/java/ghidra/program/util/SymbolicPropogator.java