typedef struct _TEMPLATE_register_req_t {
const arch_register_req_t req;
- int same_pos; /**<< in case of "should be same" we need to remember the pos to get the irn */
- int different_pos; /**<< in case of "should be different" we need to remember the pos to get the irn */
+ int same_pos; /**< in case of "should be same" we need to remember the pos to get the irn */
+ int different_pos; /**< in case of "should be different" we need to remember the pos to get the irn */
} TEMPLATE_register_req_t;
typedef struct _TEMPLATE_attr_t {
- arch_irn_flags_t flags; /**<< indicating if spillable, rematerializeable ... etc. */
- int n_res; /**<< number of results for this node */
+ arch_irn_flags_t flags; /**< indicating if spillable, rematerializeable ... etc. */
+ int n_res; /**< number of results for this node */
- const TEMPLATE_register_req_t **in_req; /**<< register requirements for arguments */
- const TEMPLATE_register_req_t **out_req; /**<< register requirements for results */
+ const TEMPLATE_register_req_t **in_req; /**< register requirements for arguments */
+ const TEMPLATE_register_req_t **out_req; /**< register requirements for results */
- const arch_register_t **slots; /**<< register slots for assigned registers */
+ /* must be last, dynamically allocated */
+ const arch_register_t *slots[1]; /**< register slots for assigned registers */
} TEMPLATE_attr_t;
#endif /* _TEMPLATE_NODES_ATTR_H_ */