sparc: split Mulh node into SMulh and UMulh
[libfirm] / ir / be / amd64 / amd64_new_nodes.c
index c60ce69..5707b57 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
+ * Copyright (C) 1995-2011 University of Karlsruhe.  All right reserved.
  *
  * This file is part of libFirm.
  *
@@ -129,8 +129,8 @@ static void init_amd64_attributes(ir_node *node, arch_irn_flags_t flags,
        backend_info_t  *info;
        (void) execution_units;
 
-       arch_irn_set_flags(node, flags);
-       arch_set_in_register_reqs(node, in_reqs);
+       arch_set_irn_flags(node, flags);
+       arch_set_irn_register_reqs_in(node, in_reqs);
 
        info            = be_get_info(node);
        info->out_infos = NEW_ARR_D(reg_out_info_t, obst, n_res);
@@ -138,7 +138,7 @@ static void init_amd64_attributes(ir_node *node, arch_irn_flags_t flags,
 
        attr->data.ins_permuted = 0;
        attr->data.cmp_unsigned = 0;
-       attr->ext.pnc           = (pn_Cmp)0;
+       attr->ext.relation      = ir_relation_false;
        attr->ext.imm_value     = 0;
 }
 
@@ -153,7 +153,7 @@ static void init_amd64_SymConst_attributes(ir_node *node, ir_entity *entity)
 }
 
 /** Compare node attributes for SymConst. */
-static int cmp_amd64_attr_SymConst(ir_node *a, ir_node *b)
+static int cmp_amd64_attr_SymConst(const ir_node *a, const ir_node *b)
 {
        const amd64_SymConst_attr_t *attr_a = get_amd64_SymConst_attr_const(a);
        const amd64_SymConst_attr_t *attr_b = get_amd64_SymConst_attr_const(b);
@@ -166,7 +166,7 @@ static int cmp_amd64_attr_SymConst(ir_node *a, ir_node *b)
 }
 
 /** Compare common amd64 node attributes. */
-static int cmp_amd64_attr(ir_node *a, ir_node *b)
+static int cmp_amd64_attr(const ir_node *a, const ir_node *b)
 {
        const amd64_attr_t *attr_a = get_amd64_attr_const(a);
        const amd64_attr_t *attr_b = get_amd64_attr_const(b);
@@ -188,6 +188,7 @@ static void amd64_copy_attr(ir_graph *irg, const ir_node *old_node,
        memcpy(attr_new, attr_old, get_op_attr_size(get_irn_op(old_node)));
 
        /* copy out flags */
+       new_info->flags = old_info->flags;
        new_info->out_infos =
                DUP_ARR_D(reg_out_info_t, obst, old_info->out_infos);
        new_info->in_reqs = old_info->in_reqs;