public void setContextRegisterValue(RegisterValue value, Address fromAddr, Address toAddr) {
		if (value == null) {
			return;
		}
		Register baseReg = value.getRegister().getBaseRegister();
		if (!baseReg.isProcessorContext() || baseReg != contextRegister) {
			throw new IllegalArgumentException("Invalid processor context register value");
		}
		if (isFlowActive() && currentAddress.equals(toAddr)) {
			contextRegisterValue = contextRegisterValue.combineValues(value);
			return;
		}
		setRegisterValue(fromAddr, toAddr, value, true);
	}
Modify the current context register value at the specified address.  If current 
disassembly toAddr address equals specified address the current disassembly context 
will be changed, otherwise the future flow state flowing from the fromAddr will be changed.
This differs from {@link #setValue(Register, Address, BigInteger)} in that is can
affect the current context state at the current address in a non-delayed fashion.

@param value register value
@param fromAddr the address from which this flow originated
@param toAddr the future flow address to save the value.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/disassemble/DisassemblerContextImpl.java