only set pinned state when not already pinned
authorMatthias Braun <matze@braunis.de>
Sun, 7 Oct 2007 18:11:11 +0000 (18:11 +0000)
committerMatthias Braun <matze@braunis.de>
Sun, 7 Oct 2007 18:11:11 +0000 (18:11 +0000)
[r16119]

ir/be/ia32/ia32_transform.c

index 807acef..d15ad67 100644 (file)
@@ -582,7 +582,9 @@ static void set_am_attributes(ir_node *node, ia32_address_mode_t *am)
 
        set_ia32_op_type(node, am->op_type);
        set_ia32_ls_mode(node, am->ls_mode);
-       set_irn_pinned(node, am->pinned);
+       if(am->pinned == op_pin_state_pinned && get_irn_pinned(node) != op_pin_state_pinned) {
+               set_irn_pinned(node, am->pinned);
+       }
        if(am->commutative)
                set_ia32_commutative(node);
 }