shouldn't be here anymore
[libfirm] / ir / be / bearch.h
index e8b2b46..edbf7cf 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1995-2007 University of Karlsruhe.  All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
  *
  * This file is part of libFirm.
  *
@@ -29,6 +29,7 @@
 #include "firm_types.h"
 #include "bitset.h"
 #include "be.h"
+#include "obst.h"
 
 typedef struct arch_register_class_t     arch_register_class_t;
 typedef struct arch_register_req_t       arch_register_req_t;
@@ -60,8 +61,11 @@ typedef enum arch_register_type_t {
                                              in the called function. */
        arch_register_type_ignore       = 4,  /**< Do not consider this register when allocating. */
        arch_register_type_joker        = 8,  /**< The emitter can choose an arbitrary register */
-       arch_register_type_virtual      = 16, /**< This is just a virtual register  */
-       arch_register_type_state        = 32,
+       arch_register_type_virtual      = 16, /**< This is just a virtual register.Virtual registers have
+                                               nearly no constraints, it is a allowed to have multiple
+                                                                                          definition for the same register at a point) */
+       arch_register_type_state        = 32, /**< The register represents a state that should be handled by
+                                                  bestate code */
 } arch_register_type_t;
 
 /**
@@ -85,12 +89,11 @@ typedef enum arch_operand_type_t {
  * Different types of register allocation requirements.
  */
 typedef enum arch_register_req_type_t {
-       arch_register_req_type_none                         = 0,  /**< No register requirement. */
-       arch_register_req_type_normal                       = 1,  /**< All registers in the class are allowed. */
-       arch_register_req_type_limited                      = 2,  /**< Only a real subset of the class is allowed. */
-       arch_register_req_type_should_be_same               = 4,  /**< The register should be equal another one 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_should_be_different_from_all = 16, /**< The register must be different from all in's at the node */
+       arch_register_req_type_none                = 0,  /**< No register requirement. */
+       arch_register_req_type_normal              = 1,  /**< All registers in the class are allowed. */
+       arch_register_req_type_limited             = 2,  /**< Only a real subset of the class is allowed. */
+       arch_register_req_type_should_be_same      = 4,  /**< The register should be equal to another one at the node. */
+       arch_register_req_type_should_be_different = 8,  /**< The register must be unequal from some other at the node. */
 } arch_register_req_type_t;
 
 extern const arch_register_req_t *arch_no_register_req;