/* Enums must be defined before they can be used.
    Allow them to be used in struct definitions, even though the enum must
    be defined elsewhere.
-   if CGEN_ARCH isn't defined, this file is being included by something other
-   than <arch>-cpu.h.  */
+   If CGEN_ARCH isn't defined, this file is being included by something other
+   than <arch>-desc.h.  */
 
-/* Prepend the arch name, defined in <arch>-cpu.h, and _cgen_ to symbol S.
+/* Prepend the arch name, defined in <arch>-desc.h, and _cgen_ to symbol S.
    The lack of spaces in the arg list is important for non-stdc systems.
-   This file is included by <arch>-cpu.h.
-   It can be included independently of <arch>-cpu.h, in which case the arch
+   This file is included by <arch>-desc.h.
+   It can be included independently of <arch>-desc.h, in which case the arch
    dependent portions will be declared as "unknown_cgen_foo".  */
 
 #ifndef CGEN_SYM
 enum cgen_operand_type;
 
 #define CGEN_OPERAND_INDEX(cd, operand) ((operand) - (cd)->operand_table)
-/* FIXME: Rename, cpu-cpu.h defines this as the typedef of the enum.  */
+/* FIXME: Rename, arch-desc.h defines this as the typedef of the enum.  */
 #define CGEN_OPERAND_TYPE(cd, operand) \
   ((enum cgen_operand_type) CGEN_OPERAND_INDEX ((cd), (operand)))
 #define CGEN_OPERAND_ENTRY(cd, n) (& (cd)->operand_table[n])
 #endif
 typedef CGEN_ATTR_TYPE (CGEN_INSN_NBOOL_ATTRS) CGEN_INSN_ATTR_TYPE;
 
+/* Enum of architecture independent attributes.  */
+
+#ifndef CGEN_ARCH
+/* ??? Numbers here are recorded in two places.  */
+typedef enum cgen_insn_attr {
+  CGEN_INSN_ALIAS = 32
+} CGEN_INSN_ATTR;
+#endif
+
 /* This struct defines each entry in the instruction table.  */
 
 typedef struct