private RefType getStaticOperandRefType(Varnode var, PcodeOp[] pcode) {
		if (var.isConstant()) {
			return RefType.DATA;
		}
		boolean isRead = false;
		boolean isWrite = false;
		for (PcodeOp element : pcode) {
			Varnode[] inputs = element.getInputs();
			switch (element.getOpcode()) {

				case PcodeOp.BRANCHIND:
				case PcodeOp.CALLIND:
				case PcodeOp.RETURN:
					if (inputs[0].equals(var)) {
						return RefType.INDIRECTION;
					}
					break;

				case PcodeOp.BRANCH:
					if (inputs[0].equals(var)) {
						return RefType.UNCONDITIONAL_JUMP;
					}
					break;

				case PcodeOp.CBRANCH:
					if (inputs[0].equals(var)) {
						return RefType.CONDITIONAL_JUMP;
					}
					break;

				case PcodeOp.CALL:
					if (inputs[0].equals(var)) {
						return RefType.UNCONDITIONAL_CALL;
					}
					break;

			}
			if (!var.isUnique()) {
				if (var.equals(element.getOutput())) {
					isWrite = true;
				}
				for (Varnode input : element.getInputs()) {
					if (var.equals(input)) {
						isRead = true;
					}
				}
			}
		}
		if (isRead && isWrite) {
			return RefType.READ_WRITE;
		}
		if (isRead) {
			return RefType.READ;
		}
		if (isWrite) {
			return RefType.WRITE;
		}
		return RefType.DATA;
	}
Gather all the flow records (perhaps across multiple InstructionPrototypes via crossbuilds)
and convert to Addresses

@param res is the resulting flow Addresses
@param parsecontext is the parsing context for the current instruction
@param context is the context for the particular address so crossbuilds can be resolved
@throws MemoryAccessException if a memory error occurred while resolving instruction details
@throws UnknownContextException if the gather encounters an instruction not previously parsed
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/SleighInstructionPrototype.java