public ArrayList<RegisterValue> mergeToFutureFlowState(Address fromAddr, Address destAddr) {
		ArrayList<RegisterValue> collisionList = new ArrayList<RegisterValue>();
		if (destAddr.equals(currentAddress)) {
			return collisionList;
		}
		setRegisterValue(fromAddr, destAddr, programContext.getFlowValue(contextRegisterValue), false);

		Iterator<Register> it = registerStateMap.keySet().iterator();
		while (it.hasNext()) {
			Register reg = it.next();
			RegisterValue value = registerStateMap.get(reg);
			RegisterValue curValue = getRegisterValue(reg, fromAddr, destAddr);
			// check if there already is a value
			if (curValue != null && !value.equals(curValue)) {
				collisionList.add(value);
			}
			setRegisterValue(fromAddr, destAddr, value, false);
		}

		return collisionList;
	}
Saves the current processor state flowing from the fromAddr to the destAddr for when this context is later used.
If the address already has a value, return the value on a collision list!

@param fromAddr the address from which this flow originated
@param destAddr the address at which to save the current processor state.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/disassemble/DisassemblerContextImpl.java