From: Michael Beck Date: Mon, 23 Jun 2008 12:46:39 +0000 (+0000) Subject: BugFix: cannot change the pin state of already pinned nodes X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=6620841773640dd1c02058d39aa2e13d5358ade1;p=libfirm BugFix: cannot change the pin state of already pinned nodes [r20215] --- diff --git a/ir/be/ia32/ia32_transform.c b/ir/be/ia32/ia32_transform.c index ef307471c..acb3a8412 100644 --- a/ir/be/ia32/ia32_transform.c +++ b/ir/be/ia32/ia32_transform.c @@ -720,7 +720,9 @@ static void set_am_attributes(ir_node *node, const ia32_address_mode_t *am) set_ia32_op_type(node, am->op_type); set_ia32_ls_mode(node, am->ls_mode); if (am->pinned == op_pin_state_pinned) { - set_irn_pinned(node, am->pinned); + /* beware: some nodes are already pinned and did not allow to change the state */ + if (get_irn_pinned(node) != op_pin_state_pinned) + set_irn_pinned(node, op_pin_state_pinned); } if (am->commutative) set_ia32_commutative(node);