- Split bearch.h correctly into bearch.h and bearch_t.h
[libfirm] / ir / be / beinsn_t.h
index 777a122..69700e5 100644 (file)
@@ -9,32 +9,33 @@
 
 #include "bitset.h"
 
-#include "bearch.h"
+#include "bearch_t.h"
 
 typedef struct _be_operand_t  be_operand_t;
 typedef struct _be_insn_t     be_insn_t;
 typedef struct _be_insn_env_t be_insn_env_t;
 
 struct _be_operand_t {
-       ir_node *irn;
-       ir_node *carrier;
-       be_operand_t *partner;
-       bitset_t *regs;
-       int pos;
-       arch_register_req_t req;
-       unsigned has_constraints : 1;
+       ir_node *irn;                   /**< firm node of the insn this operand blongs to */
+       ir_node *carrier;               /**< node representing the operand value (proj or the node itself for defs, the value itself for uses */
+       be_operand_t *partner;          /**< used in bechordal later... (TODO what does it do?) */
+       bitset_t *regs;                 /**< admissible register bitset */
+       int pos;                        /**< pos of the operand (0 to n are inputs, -1 to -n are outputs) */
+       const arch_register_req_t *req; /**< register constraints for the carrier node */
+       unsigned has_constraints : 1;   /**< the carrier node has register constraints (the constraint type is limited) */
 };
 
 struct _be_insn_t {
-       be_operand_t *ops;
-       int n_ops;
-       int use_start;
-       ir_node *next_insn;
-       ir_node *irn;
-       unsigned in_constraints  : 1;
-       unsigned out_constraints : 1;
-       unsigned has_constraints : 1;
-       unsigned pre_colored     : 1;
+       be_operand_t *ops;             /**< the values used and defined by the insn */
+       int n_ops;                     /**< length of the ops array */
+       int use_start;                 /**< entries [0-use_start) in ops are defs,
+                                           [use_start-n_ops) uses */
+       ir_node *next_insn;            /**< next instruction in schedule */
+       ir_node *irn;                  /**< ir_node of the instruction */
+       unsigned in_constraints  : 1;  /**< instruction has input contraints */
+       unsigned out_constraints : 1;  /**< instruction has output constraints */
+       unsigned has_constraints : 1;  /**< in_constraints or out_constraints true */
+       unsigned pre_colored     : 1;  /**< all defined values already have a register assigned */
 };
 
 struct _be_insn_env_t {