@Override
				public boolean evaluateReference(VarnodeContext context, Instruction instr,
						int pcodeop, Address address, int size, DataType dataType, RefType refType) {
					if (refType.isJump() && refType.isComputed() &&
						program.getMemory().contains(address) && address.getOffset() != 0) {
						if (instr.getMnemonicString().startsWith("tb")) {
							return false;
						}
						doArmThumbDisassembly(program, instr, context, address, instr.getFlowType(),
							true, monitor);
						super.evaluateReference(context, instr, pcodeop, address, size, dataType, refType);
						return !symEval.encounteredBranch();
					}
					if (refType.isData() && program.getMemory().contains(address)) {
						if (refType.isRead() || refType.isWrite()) {
							int numOperands = instr.getNumOperands();
							// if two operands, then all read/write refs go on the 2nd operand
							createData(program, address, size);
							if (numOperands <= 2) {
								instr.addOperandReference(instr.getNumOperands() - 1, address, refType,
									SourceType.ANALYSIS);
								return false;
							}
							return true;
						}
					}
					else if (refType.isCall() && refType.isComputed() && !address.isExternalAddress()) {
						// must disassemble right now, because TB flag could get set back at end of blx
						doArmThumbDisassembly(program, instr, context, address, instr.getFlowType(),
							true, monitor);
					}

					return super.evaluateReference(context, instr, pcodeop, address, size, dataType, refType);
				}
Check if there are any data references to this location.
@param program
@param addr
@return true if there are any data references to addr
Ghidra/Processors/ARM/src/main/java/ghidra/app/plugin/core/analysis/ArmAnalyzer.java