void setInstruction(PseudoInstruction instruction) {
		this.instruction = instruction;
		if (at.rvCtx == null || instruction == null ||
			instruction instanceof DecodeErrorInstruction) {
			this.flow = at.rvCtx;
		}
		else {
			Register contextreg = stride.decoder.contextreg;
			ProgramContext defaultContext = stride.decoder.defaultContext;
			this.flow = new RegisterValue(contextreg, BigInteger.ZERO)
					.combineValues(defaultContext.getDefaultValue(contextreg, at.address))
					.combineValues(defaultContext.getFlowValue(at.rvCtx));
			processContextChanges();
		}
	}
Set the current instruction.

<p>
This also pre-computes the resulting "flow" context from the given instruction. That is, the
input context for the next decode instruction, not accounting for {@code globalset}. It is
computed by taking the given instruction's input context and resetting non-flowing bits to
the language's defaults. When a branch is encountered or fall through is considered, we
account for {@code globalset} and derive the target context for the target address.

@param instruction the instruction
Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/jit/decode/DecoderExecutor.java