+ /*
+ * Problem with .align
+ *
+ * When the loader constructs an executable file from
+ * a number of objects, it effectively concatnates
+ * together all of the text segments from all objects,
+ * and then all of the data segments.
+ *
+ * If we do an align by a large value, we can align
+ * within the a.out this assembly produces, but
+ * after the loader concatnates, the alignment can't
+ * be guaranteed if the objects preceding this one
+ * in the load are also aligned to the same size.
+ *
+ * Currently, the loader guarantees full word alignment.
+ * So, ridiculous aligns are caught here and converted
+ * to a .align 2, if possible.
+ */
+ if ( (xp->e_xtype != XABS)
+ || (xp->e_xvalue < 0)
+ || (xp->e_xvalue > 16)
+ ) {