private void startNewBlock(Instruction instr) {

		Address instrAddr = instr.getMinAddress();
		long instrOffset = instrAddr.getOffset();

		if (instrOffset == RESET_VECTOR_OFFSET) {
			// Power-on reset or interrupt condition
			fsrContext.setValueAt(instr, 0x60, true);
			paContext.setValueAt(instr, 0, true);
			wContext.setValueUnknown();
			return;
		}

		fsrContext.setValueAt(instr, instrAddr, true);
		paContext.setValueAt(instr, instrAddr, true);
		wContext.setValueAt(instr, instrAddr, true);

		Instruction fallFromInstr = getFallFrom(instr);
		if (fallFromInstr != null) {
			// Carry unknown values down if possible
			Address fallFrom = fallFromInstr.getMinAddress();
			fsrContext.setValueAt(instr, fallFrom, false);
			paContext.setValueAt(instr, fallFrom, false);
			wContext.setValueAt(instr, fallFrom, false);
		}

		else {

			// If a test w/ conditional skip was used to get here, carry down the context values
			if (instrOffset >= 4) {
				Address skipFromAddr = instrAddr.subtract(2 * INSTRUCTION_LENGTH);
				Reference ref = refMgr.getReference(skipFromAddr, instrAddr, Reference.MNEMONIC);
				if (ref != null && ref.getReferenceType() == RefType.CONDITIONAL_JUMP) {
					paContext.setValueAt(instr, skipFromAddr, false);
					fsrContext.setValueAt(instr, skipFromAddr, false);
					wContext.setValueAt(instr, skipFromAddr, false);
				}
			}

			// Assume we got here with CALL or GOTO using PCLATH, fall-through and skip case handled above
			if (!paContext.hasValue()) {
				paContext.setValueAt(instr, (instrOffset / INSTRUCTION_LENGTH) >> 9, true);
			}
		}

		// Find initial W and FSR for start of block
		ReferenceIterator refIter = refMgr.getReferencesTo(instrAddr);
		while ((!fsrContext.hasValue() || !wContext.hasValue()) && refIter.hasNext()) {
			Reference ref = refIter.next();
			Address fromAddr = ref.getFromAddress();
			if (isCodeAddress(fromAddr)) {
				fsrContext.setValueAt(instr, fromAddr, false);
				wContext.setValueAt(instr, fromAddr, false);
			}
		}

		if (!fsrContext.hasValue()) {
			Msg.warn(this, "Initial FSR unknown at: " + instrAddr);
		}

	}
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/Pic12Analyzer.java