@Override
	public void encode(Encoder encoder) throws IOException {
		encoder.openElement(ELEM_JOIN);
		if (resource.getEntry(0).isBigEndian() != justifyRight) {
			encoder.writeBool(ATTRIB_REVERSEJUSTIFY, true);
		}
		if (resourceType != StorageClass.GENERAL) {
			encoder.writeString(ATTRIB_STORAGE, resourceType.toString());
		}
		encoder.writeBool(ATTRIB_ALIGN, enforceAlignment);
		encoder.writeBool(ATTRIB_STACKSPILL, consumeFromStack);
		encoder.writeBool(ATTRIB_BACKFILL, allowBackfill);
		encoder.closeElement(ELEM_JOIN);
	}
Test if a data-type of the given size will fit starting at a particular entry within
the resource list.  If necessary, check
   1)  If the type will be properly aligned
   2)  If there are enough remaining registers, up to the end of the resource list, to
       cover the data-type and that have not been consumed.
@param iter is the first resource entry to use for the data-type
@param sizeLeft initially holds the size of the data-type to cover in bytes
@param align is the alignment requirement for the data-type
@param resourcesConsumed is the number of bytes in resources already consumed/skipped
@param tmpStatus is the current consumption status for the resource list
@return true if the data-type will fit
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/protorules/MultiSlotAssign.java