public Instruction getInstructionAt(Address addr) {
		Instruction instr = instructionAtCache.get(addr);
		if (instr != null) {
			return instr;
		}
		if (instructionAtCache.containsKey(addr)) {
			return null;
		}
		
		instr = program.getListing().getInstructionAt(addr);
		cacheInstruction(addr, instr);
		return instr;
	}
Check that we haven't hit a run of the same exact instruction.
   Uses hashcodes in an attempt to be as fast as possible.
@param instr new instruction to check
@return true if we have hit the max number of exact same instructions.
Ghidra/Features/Base/src/main/java/ghidra/program/util/SymbolicPropogator.java