protected Instruction doExtendPreceding(Address address, Instruction protoInstr)
				throws AddressOverflowException, CodeUnitInsertionException {
			if (!lifespan.minIsFinite()) {
				return null;
			}
			DBTraceInstruction prec = getAt(lifespan.lmin() - 1, address);
			if (prec == null || prec.getLength() != protoInstr.getLength()) {
				return null;
			}
			if (!isSuitable(prec, protoInstr)) {
				return null;
			}
			AddressRange range =
				new AddressRangeImpl(protoInstr.getAddress(), protoInstr.getLength());
			long endSnap = computeTruncatedMax(lifespan, prec, range);
			if (!lifespan.contains(endSnap)) {
				// We can't extend it far enough
				return null;
			}
			prec.setEndSnap(endSnap);
			return prec;
		}
Check the preceding unit and see if it can be extended to "create" the desired one

<p>
For overwrite, the caller should first use
{@link #doAdjustExisting(Address, InstructionPrototype, Instruction)}.

@param address the starting address of the instruction
@param protoInstr the prototype instruction
@return the extended instruction, if it was a match
@throws AddressOverflowException should never
@throws CodeUnitInsertionException if there's no room to extend the preceding unit
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/listing/DBTraceInstructionsView.java