private boolean passesFilter(Program program, Address funcStart,
			ContextRegisterFilter cRegFilter) {
		Map<String, BigInteger> valueMap = cRegFilter.getValueMap();
		for (String register : valueMap.keySet()) {
			BigInteger value = valueMap.get(register);
			if (value != null) {
				Register reg = program.getRegister(register);
				RegisterValue regValue =
					program.getProgramContext().getNonDefaultValue(reg, funcStart);
				if (regValue == null) {
					//don't report conflict if the register has a non-default value
					//TODO: is this correct?
					return true;
				}
				BigInteger existingValue = regValue.getUnsignedValue();
				if (!value.equals(existingValue)) {
					return false;
				}
			}
		}
		return true;
	}
Evaluate a set of patterns
@param rows patterns to evaluate
@return statistics about the pattern matches
Ghidra/Features/BytePatterns/src/main/java/ghidra/bitpatterns/gui/ClipboardPanel.java