public static Address getStartOfDelaySlots(Instruction instr) {
		Listing listing = instr.getProgram().getListing();
		Instruction prevInstr = instr;
		Address minAddr = prevInstr.getMinAddress();
		try {
			while (prevInstr != null && prevInstr.isInDelaySlot()) {
				minAddr = prevInstr.getMinAddress();
				prevInstr = listing.getInstructionContaining(minAddr.subtractNoWrap(1));
			}
			if (prevInstr != null) {
				minAddr = prevInstr.getMinAddress();
			}
		}
		catch (AddressOverflowException e) {
			// ignore
		}
		return minAddr;
	}
Convert a varnode from the specified program to a comparable varnode in the
specified otherProgram.  Certain varnode addresses spaces (UNIQUE, HASH) will
always produce a null return varnode.
@param program program which contains the specified address instance
@param varnode varnode in program
@param otherProgram other program
@return varnode for otherProgram or null if varnode can not be mapped to other program
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/util/SimpleDiffUtility.java