private void readJoinXML(XmlElement el, CompilerSpec cspec) throws XmlParseException {
		ArrayList<Varnode> pieces = new ArrayList<>();
		int sizesum = 0;
		int pos = 0;
		for (;;) {
			String attrName = "piece" + Integer.toString(pos + 1);
			String attrVal = el.getAttribute(attrName);
			if (attrVal == null) {
				break;
			}
			int offpos = attrVal.indexOf(':');
			Varnode newvn;
			if (offpos == -1) {
				Register register = cspec.getLanguage().getRegister(attrVal);
				if (register == null) {
					throw new XmlParseException("Unknown pentry register: " + attrVal);
				}
				newvn = new Varnode(register.getAddress(), register.getBitLength() / 8);
			}
			else {
				int szpos = attrVal.indexOf(':', offpos + 1);
				if (szpos == -1) {
					throw new XmlParseException("join address piece attribute is malformed");
				}
				String spcname = attrVal.substring(0, offpos);
				AddressSpace spc = cspec.getAddressSpace(spcname);
				long off = SpecXmlUtils.decodeLong(attrVal.substring(offpos + 1, szpos));
				long sz = SpecXmlUtils.decodeLong(attrVal.substring(szpos + 1));
				newvn = new Varnode(spc.getAddress(off), (int) sz);
			}
			pieces.add(newvn);
			sizesum += newvn.getSize();
			pos += 1;
		}
		offset = 0;		// This should be the offset assigned by the join space
		size = sizesum;	// Size is sum unless explicit attribute overwrites this with logical size
		joinRecord = new Varnode[pieces.size()];
		pieces.toArray(joinRecord);
	}
Construct a logical memory range, representing multiple ranges pieced together.
The logical range is assigned an address in the JOIN address space.
The physical pieces making up the logical range are passed in as a sequence of
Varnodes representing, in order, the most significant through the least significant
portions of the value.
@param spc is the JOIN address space (must have a type of AddressSpace.TYPE_JOIN)
@param off is the offset of the logical value within the JOIN space
@param sz is the number of bytes in the logical value
@param pieces is the array of 1 or more physical pieces
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/AddressXML.java