protected void doSet(NavigableMap<Long, JitVal> map, Varnode varnode, JitVal val) {
			doClear(map, varnode);

			if (val instanceof JitOutVar out) {
				if (out.definition() instanceof JitCatenateOp cat) {
					int cursor = 0;
					for (JitVal part : cat.iterParts(language.isBigEndian())) {
						/**
						 * NOTE: Do not filter phi nodes here. Perhaps if we're certain its for the
						 * same varnode we could, but not sure there's any benefit to doing so.
						 * TODO: Determine whether there's any benefit. NOTE: While the phi nodes
						 * are linked after the fact, they are generated (but empty) during p-code
						 * interpretation.
						 */
						map.put(varnode.getOffset() + cursor, part);
						cursor += part.size();
					}
					/**
					 * Can't necessarily unlink cat here. Something else may use it. May need to
					 * prune afterward.
					 */
					return;
				}
			}

			map.put(varnode.getOffset(), val);
		}
The implementation of {@link #set(Varnode, JitVal)} for a given address space

@param map the map to modify for the given space
@param varnode the varnode whose value to define
@param val the varnode's new definition
Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/jit/analysis/JitDataFlowState.java