-int arch_reg_is_allocatable(const ir_node *irn, int pos,
- const arch_register_t *reg)
-{
- const arch_register_req_t *req = arch_get_register_req(irn, pos);
-
- if (req->type == arch_register_req_type_none)
- return 0;
-
- if (arch_register_req_is(req, limited)) {
- if (arch_register_get_class(reg) != req->cls)
- return 0;
- return rbitset_is_set(req->limited, arch_register_get_index(reg));
- }
-
- return req->cls == reg->reg_class;
-}
-
-const arch_register_class_t *arch_get_irn_reg_class(const ir_node *irn, int pos)
-{
- const arch_register_req_t *req = arch_get_register_req(irn, pos);
-
- assert(req->type != arch_register_req_type_none || req->cls == NULL);
-
- return req->cls;
-}
-
-static inline reg_out_info_t *get_out_info(const ir_node *node)
-{
- size_t pos = 0;
- const backend_info_t *info;
-
- assert(get_irn_mode(node) != mode_T);
- if (is_Proj(node)) {
- pos = get_Proj_proj(node);
- node = get_Proj_pred(node);
- }
-
- info = be_get_info(node);
- assert(pos < ARR_LEN(info->out_infos));
- return &info->out_infos[pos];
-}
-
-
-static inline reg_out_info_t *get_out_info_n(const ir_node *node, int pos)