private boolean startNewBlock(Instruction instr) {

		Address addr = instr.getMinAddress();

		if (addr.getOffset() == RESET_VECTOR_OFFSET ||
			addr.getOffset() == HIGH_INTERRUPT_VECTOR_OFFSET ||
			addr.getOffset() == LOW_INTERRUPT_VECTOR_OFFSET) {
			// Power-on reset or interrupt
			// If this is a wrong assumption for interrupts, the interrupt handler
			// should save and set BSR properly
			bsrContext.setValueAt(instr, 0, true);
			return true;
		}

		if (bsrContext.setValueAt(instr, addr, true)) {
			return true;
		}

		// Check for fall-through
		Address fallFromAddr = instr.getFallFrom();
		if (fallFromAddr != null) {
			if (bsrContext.setValueAt(instr, fallFromAddr, true)) {
				return true;
			}
		}

		// Find initial BSR for start of block
		ReferenceIterator refIter = refMgr.getReferencesTo(addr);
		while (refIter.hasNext()) {
			Reference ref = refIter.next();
			Address fromAddr = ref.getFromAddress();
			if (isCodeAddress(fromAddr)) {
				if (bsrContext.setValueAt(instr, fromAddr, true)) {
					return true;
				}
			}
		}
		return false;
	}
Attempt to markup FReg access instruction with register reference.

@param instr
@return register name if identified, else null
Ghidra/Processors/PIC/src/main/java/ghidra/app/plugin/core/analysis/Pic18Analyzer.java