@Override
	public PseudoInstruction decodeInstruction(Address address, RegisterValue context) {
		lastMsg = DEFAULT_ERROR;
		if (!useCachedInstruction(address, context)) {
			parseNewBlock(address, context);
		}
		lengthWithDelays = computeLength();
		return instruction;
	}
Parse as few instructions as possible. If more are returned, it's because they form a
parallel instruction group. In that case, I should not have to worry self-modifying code
within that group, so no need to re-disassemble after each is executed.
Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/SleighInstructionDecoder.java