Address flowISA(Program program, Instruction instruction, VarnodeContext context,
			Address target) {
		if (target == null) {
			return null;
		}

		Address addr = instruction.getMinAddress().getNewAddress(target.getOffset() & 0xfffffffe);

		Listing listing = program.getListing();

		if (isamode != null && listing.getUndefinedDataAt(addr) != null) {
			boolean inM16Mode = false;
			RegisterValue curvalue = context.getRegisterValue(isamode);
			if (curvalue != null && curvalue.hasValue()) {
				inM16Mode = (curvalue.getUnsignedValue().intValue() == 1);
			}
			// if the ISM bit is set, that trumps any mode we are tracking
			RegisterValue tbvalue = context.getRegisterValue(ismbit);
			if (tbvalue != null && tbvalue.hasValue()) {
				inM16Mode = (tbvalue.getUnsignedValue().intValue() == 1);
			}
			BigInteger m16ModeValue = BigInteger.valueOf(inM16Mode ? 1 : 0);
			try {
				program.getProgramContext().setValue(isamode, addr, addr, m16ModeValue);
			}
			catch (ContextChangeException e) {
				throw new AssertException("Unexpected Exception", e);
			}
			return addr;
		}

		// instruction already there
		return null;
	}
Check for a global GP register symbol or discovered symbol
@param set
Ghidra/Processors/MIPS/src/main/java/ghidra/app/plugin/core/analysis/MipsAddressAnalyzer.java