- if (arch_get_irn_reg_class_out(node) == regclass) {
- const arch_register_t *reg = arch_get_irn_register(node);
- if (reg == NULL) {
- ir_fprintf(stderr, "Verify warning: Node %+F in block %+F(%s) should have a register assigned\n",
- node, get_nodes_block(node), get_irg_dump_name(irg));
- problem_found = 1;
- } else if (!arch_register_type_is(reg, joker) && !arch_reg_out_is_allocatable(node, reg)) {
- ir_fprintf(stderr, "Verify warning: Register %s assigned as output of %+F not allowed (register constraint) in block %+F(%s)\n",
- reg->name, node, get_nodes_block(node), get_irg_dump_name(irg));
- problem_found = 1;
- }
+ const arch_register_req_t *req = arch_get_irn_register_req(node);
+ const arch_register_t *reg = arch_get_irn_register(node);
+ if (reg == NULL) {
+ ir_fprintf(stderr, "Verify warning: Node %+F in block %+F(%s) should have a register assigned\n",
+ node, get_nodes_block(node), get_irg_dump_name(irg));
+ problem_found = true;
+ } else if (!arch_reg_is_allocatable(req, reg)) {
+ ir_fprintf(stderr, "Verify warning: Register %s assigned as output of %+F not allowed (register constraint) in block %+F(%s)\n",
+ reg->name, node, get_nodes_block(node), get_irg_dump_name(irg));
+ problem_found = true;