public void encode(Encoder encoder) throws IOException {
		encoder.openElement(ELEM_PENTRY);
		encoder.writeSignedInteger(ATTRIB_MINSIZE, minsize);
		encoder.writeSignedInteger(ATTRIB_MAXSIZE, size);
		if (alignment != 0) {
			encoder.writeSignedInteger(ATTRIB_ALIGN, alignment);
		}
		if (type != StorageClass.GENERAL) {
			encoder.writeString(ATTRIB_STORAGE, type.toString());
		}
		String extString = null;
		if ((flags & SMALLSIZE_SEXT) != 0) {
			extString = "sign";
		}
		else if ((flags & SMALLSIZE_ZEXT) != 0) {
			extString = "zero";
		}
		else if ((flags & SMALLSIZE_INTTYPE) != 0) {
			extString = "inttype";
		}
		else if ((flags & SMALLSIZE_FLOAT) != 0) {
			extString = "float";
		}
		if (extString != null) {
			encoder.writeString(ATTRIB_EXTENSION, extString);
		}
		AddressXML addressSize;
		if (joinrec == null) {
			// Treat as unsized address with no size
			addressSize = new AddressXML(spaceid, addressbase, 0);
		}
		else {
			addressSize = new AddressXML(spaceid, addressbase, size, joinrec);
		}
		addressSize.encode(encoder);
		encoder.closeElement(ELEM_PENTRY);
	}
Search for overlap with any previous ParamEntry.  Reassign group and groupsize to
reflect this overlap.
@param curList is the list of previous ParamEntry
@throws XmlParseException if overlaps do not take the correct form
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/ParamEntry.java