private boolean isUsedForCalculation(Instruction instr, Address targetValue) {
		PcodeOp[] pcode = instr.getPcode();
		Varnode target = null;
		for (PcodeOp element : pcode) {
			int op = element.getOpcode();
			switch (op) {
				case PcodeOp.LOAD:
				case PcodeOp.STORE:
					// is the target varnode the target out/in location
					if (element.getInput(1).equals(target)) {
						return true;
					}
			}
			// is the value of the target varnode one of the inputs
			//     then the target becomes the output varnode
			Varnode[] inputs = element.getInputs();
			for (Varnode input : inputs) {
				if ((target != null && target.equals(input)) ||
					(input.isConstant() && input.getOffset() == targetValue.getUnsignedOffset())) {
					if (op == PcodeOp.LOAD || op == PcodeOp.STORE) {
						continue;
					}
					if (op != PcodeOp.COPY) {
						return true;
					}
					Varnode pt = element.getOutput();
					if (pt != null) {
						target = pt;
					}
				}
			}
		}
		return false;
	}
Check for any jumps to Externals (manufactured labels).
Any externals directly jumped to should be looked at as a call.

Note: this shouldn't affect jumps in thunks, but beware...
@param monitor
@throws CancelledException
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/OperandReferenceAnalyzer.java