From a286e7dcdb4c41b2165c64fc85ed9eb021c08bc0 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Tue, 18 Sep 2007 15:06:49 +0000 Subject: [PATCH] never move around flag mofying nodes [r15864] --- ir/be/belower.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ir/be/belower.c b/ir/be/belower.c index 3cbeec92a..7ba31cfbe 100644 --- a/ir/be/belower.c +++ b/ir/be/belower.c @@ -940,6 +940,11 @@ found_front: bitset_set(keep, nr); if (!is_Proj(op) && get_nodes_block(op) == bl && (op == frontier || sched_comes_after(frontier, op))) { + /* don't move around nodes that modifies the flags */ + if (arch_irn_is(aenv, op, modify_flags)) { + continue; + } + for (i = get_irn_arity(op) - 1; i >= 0; --i) { ir_node *opop = get_irn_n(op, i); if (!arch_irn_consider_in_reg_alloc(aenv, cls, opop)) { -- 2.20.1