+/**
+ * The attributes for immediates.
+ */
+typedef struct ia32_immediate_attr_t ia32_immediate_attr_t;
+struct ia32_immediate_attr_t {
+ ia32_attr_t attr; /**< generic attribute */
+ ir_entity *symconst; /**< An entity if any. */
+ long offset; /**< An offset if any. */
+ unsigned sc_sign:1; /**< The sign bit of the symconst. */
+};
+
+/**
+ * The attributes for x87 nodes.
+ */
+typedef struct ia32_x87_attr_t ia32_x87_attr_t;
+struct ia32_x87_attr_t {
+ ia32_attr_t attr; /**< the generic attribute */
+ const arch_register_t *x87[3]; /**< register slots for x87 register */
+};
+
+typedef struct ia32_asm_reg_t ia32_asm_reg_t;
+struct ia32_asm_reg_t {
+ unsigned use_input : 1; /* use input or output pos */
+ unsigned valid : 1;
+ unsigned memory : 1;
+ unsigned dummy_fill : 13;
+ unsigned inout_pos : 16; /* in/out pos where the
+ register is assigned */
+ const ir_mode *mode;
+};
+
+/**
+ * The attributes for ASM nodes.
+ */
+typedef struct ia32_asm_attr_t ia32_asm_attr_t;
+struct ia32_asm_attr_t {
+ ia32_x87_attr_t x87_attr;
+ ident *asm_text;
+ const ia32_asm_reg_t *register_map;
+};