private void processRegisterValues(Map<String, Object> result) {
		try {
			AddressSet set = getLocations(result, null);
			Address addr = set.getMinAddress();
			int len = (int) set.getMaxAddress().subtract(addr) + 1;
			String regName = (String) result.get("name");
			String valueStr = (String) result.get("value");
			if (valueStr.startsWith("0x") || valueStr.startsWith("0X")) {
				valueStr = valueStr.substring(2);
			}
			BigInteger value = new BigInteger(valueStr, 16);

			Register reg = context.getRegister(regName);
			if (reg == null) {
				if (undefinedRegisterNames.add(regName)) {
					log.appendMsg("REGISTER [" + regName + "] is not defined by " + program.getLanguageID()
							+ ", register values will be ignored");
				}
				return;
			}

			context.setValue(reg, addr, addr.addNoWrap(len - 1), value);
		} catch (Exception e) {
			log.appendException(e);
		}
	}
Returns list of unique registers which do not overlap any smaller registers.
Ghidra/Features/Sarif/src/main/java/sarif/managers/RegisterValuesSarifMgr.java