protected Flow nextInstructionsWithDelays(Flow flow) throws CancelledException {
			Instruction instruction = nextInstruction(flow, false);
			if (instruction == null) {
				return null;
			}
			boolean hasFallthrough = instruction.hasFallthrough();
			try {
				flow = Flow.fallThrough(instruction);
				block.addInstruction(instruction);
				processInstruction(instruction);
				disassemblerContext.flowToAddress(flow.to);
				int remainingBytes = instruction.getPrototype().getDelaySlotByteCount();
				while (remainingBytes > 0) {
					instruction = nextInstruction(flow, true);
					if (instruction == null) {
						return null;
					}
					flow = Flow.fallThrough(instruction);
					block.addInstruction(instruction);
					processInstruction(instruction);
					remainingBytes -= instruction.getLength();
				}
				return hasFallthrough ? flow : null;
			}
			catch (AddressOverflowException e) {
				block.setInstructionMemoryError(flow.to, flow.from,
					"Failed to properly process delay slot at end of address space");
				return null;
			}
		}
Parse the next instructions, including delay-slotted ones

@param flow the {@link Flow}
@return the if the first instruction has fall-through, the flow out from the last
        instruction parsed. Without delay slots, the first instruction is the last
        instruction.
@throws CancelledException
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/disassemble/ReDisassembler.java