+ if (a_attr->ent != b_attr->ent || a_attr->offset != b_attr->offset)
+ return 1;
+
+ return _node_cmp_attr((be_node_attr_t*) a_attr, (be_node_attr_t*) b_attr);
+}
+
+static int Return_cmp_attr(ir_node *a, ir_node *b) {
+ be_return_attr_t *a_attr = get_irn_attr(a);
+ be_return_attr_t *b_attr = get_irn_attr(b);
+
+ if (a_attr->num_ret_vals != b_attr->num_ret_vals)
+ return 1;
+
+ return _node_cmp_attr((be_node_attr_t*) a_attr, (be_node_attr_t*) b_attr);
+}
+
+static int Stack_cmp_attr(ir_node *a, ir_node *b) {
+ be_stack_attr_t *a_attr = get_irn_attr(a);
+ be_stack_attr_t *b_attr = get_irn_attr(b);
+
+ if (a_attr->offset != b_attr->offset)
+ return 1;
+
+ return _node_cmp_attr((be_node_attr_t*) a_attr, (be_node_attr_t*) b_attr);
+}
+
+static int Call_cmp_attr(ir_node *a, ir_node *b) {
+ be_call_attr_t *a_attr = get_irn_attr(a);
+ be_call_attr_t *b_attr = get_irn_attr(b);
+
+ if (a_attr->ent != b_attr->ent ||
+ a_attr->call_tp != b_attr->call_tp)
+ return 1;
+
+ return _node_cmp_attr((be_node_attr_t*) a_attr, (be_node_attr_t*) b_attr);