public static int getMutabilityOfAddress(Address addr, Program program) {
		if (addr == null) {
			return MutabilitySettingsDefinition.NORMAL;
		}
		if (program.getLanguage().isVolatile(addr)) {
			return MutabilitySettingsDefinition.VOLATILE;
		}
		MemoryBlock block = program.getMemory().getBlock(addr);
		if (block != null) {
			if (block.isVolatile()) {
				return MutabilitySettingsDefinition.VOLATILE;
			}
			// if the block says read-only, check the refs to the variable
			if (!block.isWrite()) {
				ReferenceIterator refIter = program.getReferenceManager().getReferencesTo(addr);
				int count = 0;
				while (refIter.hasNext() && count < 100) {
					Reference ref = refIter.next();
					if (ref.getReferenceType().isWrite()) {
						return MutabilitySettingsDefinition.NORMAL;
					}
					count++;
				}
				return MutabilitySettingsDefinition.CONSTANT;
			}
		}
		return MutabilitySettingsDefinition.NORMAL;
	}
Get the underlying mutability setting of an Address based on the Program
configuration and the MemoryBlock.  Ignore any overrides of Data at the address. 
@param addr is the Address
@param program is the Program containing the Address
@return the mutability
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/MappedEntry.java