- reg_node = registers[reg->index];
- if (reg_node != NULL && reg_node != node) {
- ir_fprintf(stderr, "Verify warning: Register %s assigned more than once in block %+F(%s) (nodes %+F %+F)\n",
- reg->name, block, get_irg_dump_name(irg),
- node, reg_node);
- problem_found = 1;
+ req = arch_get_irn_register_req(node);
+ assert(req->width > 0);
+ idx = reg->global_index;
+ for (i = 0; i < req->width; ++i) {
+ const ir_node *reg_node = registers[idx+i];
+ if (reg_node != NULL && reg_node != node) {
+ const arch_register_t *realreg = &arch_env->registers[idx+i];
+ ir_fprintf(stderr, "Verify warning: Register %s assigned more than once in block %+F(%s) (nodes %+F %+F)\n",
+ realreg->name, block, get_irg_dump_name(irg),
+ node, reg_node);
+ problem_found = true;
+ }
+ registers[idx+i] = node;