X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbespillslots.c;h=8932c16b4c631a3ed580c07d55ab371096841e2b;hb=21a385ac3f6da2d3097c751e0942fe0858af5774;hp=8db1ace2516503365c77f9e127722d91cb8ab340;hpb=4c26efa686e60c5b9eccb6482acfc312a3f07c64;p=libfirm diff --git a/ir/be/bespillslots.c b/ir/be/bespillslots.c index 8db1ace25..8932c16b4 100644 --- a/ir/be/bespillslots.c +++ b/ir/be/bespillslots.c @@ -585,12 +585,14 @@ static void assign_spillslots(ss_env_t *env) { be_set_frame_entity(node, slot->entity); } else { int i, arity; + ir_node *block = get_nodes_block(node); // should be a PhiM assert(is_Phi(node)); for(i = 0, arity = get_irn_arity(node); i < arity; ++i) { ir_node *arg = get_irn_n(node, i); + ir_node *predblock = get_Block_cfgpred_block(block, i); spill_t *argspill; int argslotid; @@ -606,7 +608,7 @@ static void assign_spillslots(ss_env_t *env) { create_stack_entity(env, argslot); } - memperm = get_memperm(env, get_nodes_block(arg)); + memperm = get_memperm(env, predblock); entry = obstack_alloc(&env->obst, sizeof(entry[0])); entry->node = node;