private void processRegisterValues(XmlElement element, XmlPullParser parser) {
		try {
			String regName = element.getAttribute("REGISTER");
			if (regName == null) {
				throw new XmlAttributeException("REGISTER attribute missing for REGISTER_VALUE_RANGE element");
			}
			String valueStr = element.getAttribute("VALUE");
			if (valueStr.startsWith("0x") || valueStr.startsWith("0X")) {
				valueStr = valueStr.substring(2);
			}
			BigInteger value = new BigInteger(valueStr, 16);
			String startAddrStr = element.getAttribute("START_ADDRESS");
			if (startAddrStr == null) {
				throw new XmlAttributeException("START_ADDRESS attribute missing for REGISTER_VALUE_RANGE element");
			}
			Address startAddr = XmlProgramUtilities.parseAddress(factory, startAddrStr);
			if (startAddr == null) {
				throw new AddressFormatException("Incompatible Register Address: " + startAddrStr);
			}
			long len = XmlUtilities.parseLong(element.getAttribute("LENGTH"));
			if (len < 1) {
				throw new XmlAttributeException("LENGTH [" + len + "] is illegal for REGISTER_VALUE_RANGE element");
			}

			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, startAddr, startAddr.addNoWrap(len - 1), value);
		} 
		catch (Exception e) {
			log.appendException(e);
		}
	}
Write out the XML for the Equates.
@param writer writer for XML
@param set address set that is either the entire program or a selection
@param monitor monitor that can be canceled
should be written
@throws IOException
Ghidra/Features/Base/src/main/java/ghidra/app/util/xml/RegisterValuesXmlMgr.java