added macro and irn class
arch_register_type_ignore /**< Do not consider this register when allocating. */
} arch_register_type_t;
arch_register_type_ignore /**< Do not consider this register when allocating. */
} arch_register_type_t;
+/**
+ * Convenience macro to check for register type.
+ * @param req A pointer to register.
+ * @param kind The kind of type to check for (see arch_register_type_t).
+ * @return 1, If register is of given kind, 0 if not.
+ */
+#define arch_register_type_is(reg, kind) \
+ ((reg)->type == arch_register_type_ ## kind)
+
arch_irn_class_reload,
arch_irn_class_copy,
arch_irn_class_perm,
arch_irn_class_reload,
arch_irn_class_copy,
arch_irn_class_perm,
+ arch_irn_class_branch,
+ arch_irn_class_call
* @return The list scheduler selector.
*/
const list_sched_selector_t *(*get_list_sched_selector)(const void *self);
* @return The list scheduler selector.
*/
const list_sched_selector_t *(*get_list_sched_selector)(const void *self);
+
+ /**
+ * Get the proj number assigned to the register.
+ * @param self The isa object.
+ * @param reg The register
+ * @return The proj number assigned to this register
+ */
+ long (*get_projnum_for_register)(const void *self, const arch_register_t *reg);
};
#define arch_isa_get_n_reg_class(isa) ((isa)->impl->get_n_reg_class(isa))
};
#define arch_isa_get_n_reg_class(isa) ((isa)->impl->get_n_reg_class(isa))