protected boolean isBlockStart(Address addr) {
		// First check out the Block cache
		Object blocks[] = foundBlockMap.getObjects(addr);
		if (blocks.length > 0) {
			CodeBlock block = (CodeBlock) blocks[0];
			if (block.getFirstStartAddress().equals(addr)) {
				return true;
			}
		}

		// get instruction at address
		Instruction instr = listing.getInstructionAt(addr);

		if (instr != null) {
			return isBlockStart(instr);
		}

		Data data = listing.getDefinedDataAt(addr);
		return (data != null);
	}
Check if the instruction at the address is
the start of a basic block.

@param addr   Address to check
@return true - if the address starts a basic block
        false - otherwise
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/block/SimpleBlockModel.java