From 02c0f9233f451698a689250540f90274f3cc52b8 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Mon, 9 Aug 2010 14:53:02 +0000 Subject: [PATCH] correctly use wide values in automatic phi register requirement determination [r27907] --- ir/be/benode.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/ir/be/benode.c b/ir/be/benode.c index decfa0ea5..f636cc58f 100644 --- a/ir/be/benode.c +++ b/ir/be/benode.c @@ -1220,7 +1220,17 @@ static const arch_register_req_t *phi_get_irn_reg_req(const ir_node *node, req = get_Phi_reg_req_recursive(node, &visited); assert(req->cls != NULL); - req = req->cls->class_req; + if (req->width > 1) { + arch_register_req_t *new_req = allocate_reg_req(node); + new_req->type = arch_register_req_type_normal; + new_req->cls = req->cls; + new_req->other_same = 0; + new_req->other_different = 0; + new_req->width = req->width; + req = new_req; + } else { + req = req->cls->class_req; + } if (visited != NULL) del_pset(visited); -- 2.20.1