extended IN constraints with reference to out register
[libfirm] / ir / be / bearch.h
index c93ef30..a3b2a25 100644 (file)
@@ -155,14 +155,12 @@ typedef enum _arch_register_req_type_t {
   arch_register_req_type_limited = 2,     /**< Only a real subset of
                                                the class is allowed. */
 
-  arch_register_req_type_equal = 4,       /**< The register must equal
-                                               another one at the node. */
+  arch_register_req_type_should_be_same = 4,       /**< The register should be equal
+                                                        another one at the node. */
 
-  arch_register_req_type_unequal = 8,     /**< The register must be unequal
-                                               to some other at the node. */
+  arch_register_req_type_should_be_different = 8,  /**< The register must be unequal
+                                                        to some other at the node. */
 
-  arch_register_req_type_pair = 16        /**< The register is part of a
-                                               register pair. */
 } arch_register_req_type_t;
 
 #define arch_register_req_is_constr(x) \
@@ -329,7 +327,7 @@ arch_get_irn_reg_class(const arch_env_t *env, const ir_node *irn, int pos);
 
 /**
  * Get the register allocated at a certain output operand of a node.
- * @param env The arch nvironment.
+ * @param env The arch environment.
  * @param irn The node.
  * @return    The register allocated for this operand
  */
@@ -386,6 +384,16 @@ struct _arch_irn_handler_t {
  */
 struct _arch_code_generator_if_t {
 
+
+       /**
+        * Initialize the code generator.
+        * @param file The file to dump to.
+        * @param irg  The function to generate code for.
+        * @param env  The architecture environment.
+        * @return     A newly created code generator.
+        */
+       void *(*init)(FILE *file, ir_graph *irg, const arch_env_t *env);
+
        /**
         * Called, when the graph is being normalized.
         */
@@ -475,12 +483,11 @@ struct _arch_isa_if_t {
   const arch_irn_handler_t *(*get_irn_handler)(const void *self);
 
   /**
-   * Produce a new code generator.
+   * Get the code generator interface.
    * @param self The this pointer.
-   * @param irg  The graph for which code shall be generated.
-   * @return     A code generator.
+   * @return     Some code generator interface.
    */
-  arch_code_generator_t *(*make_code_generator)(void *self, ir_graph *irg);
+  const arch_code_generator_if_t *(*get_code_generator)(void *self);
 
   /**
    * Get the list scheduler to use.