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;
/**
* 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;