private void startNewBlock(Instruction instr) {

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

		if (instrOffset == RESET_VECTOR_OFFSET) {
			// Power-on reset or interrupt condition
			bsrContext.setValueAt(instr, 0, true);
			fs32Context.setValueAt(instr, 0x3, true);
			fs10Context.setValueAt(instr, 0x3, true);
			pclathContext.setValueAt(instr, 0, true);
			wContext.setValueUnknown();
			return;
		}

		pclathContext.setValueAt(instr, instrAddr, true);
		bsrContext.setValueAt(instr, instrAddr, true);
		fs32Context.setValueAt(instr, instrAddr, true);
		fs10Context.setValueAt(instr, instrAddr, true);
		wContext.setValueAt(instr, instrAddr, true);

		Instruction fallFromInstr = getFallFrom(instr);
		if (fallFromInstr != null) {
			// Carry value down
			Address fallFrom = fallFromInstr.getMinAddress();
			pclathContext.setValueAt(instr, fallFrom, false);
			bsrContext.setValueAt(instr, fallFrom, false);
			fs32Context.setValueAt(instr, fallFrom, false);
			fs10Context.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) {
					pclathContext.setValueAt(instr, skipFromAddr, false);
					bsrContext.setValueAt(instr, skipFromAddr, false);
					fs32Context.setValueAt(instr, skipFromAddr, false);
					fs10Context.setValueAt(instr, skipFromAddr, false);
					wContext.setValueAt(instr, skipFromAddr, false);
				}
			}

		}

		// Find initial context for start of block
		ReferenceIterator refIter = refMgr.getReferencesTo(instrAddr);
		while ((!pclathContext.hasValue() || !bsrContext.hasValue() || !fs32Context.hasValue() ||
			!fs10Context.hasValue() || !wContext.hasValue()) && refIter.hasNext()) {
			Reference ref = refIter.next();
			Address fromAddr = ref.getFromAddress();
			if (isCodeAddress(fromAddr)) {
				pclathContext.setValueAt(instr, fromAddr, false);
				bsrContext.setValueAt(instr, fromAddr, false);
				fs32Context.setValueAt(instr, fromAddr, false);
				fs10Context.setValueAt(instr, fromAddr, false);
				wContext.setValueAt(instr, fromAddr, false);
				break;
			}
		}

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