- C99 feature removed
[libfirm] / ir / be / beabi.c
index 52e9f21..4755c5a 100644 (file)
@@ -1110,7 +1110,9 @@ static int cmp_call_dependency(const void *c1, const void *c2)
        if (dependent_on(n2, n1))
                return 1;
 
-       return 0;
+       /* The nodes have no depth order, but we need a total order because qsort()
+        * is not stable. */
+       return get_irn_idx(n1) - get_irn_idx(n2);
 }
 
 /**
@@ -2041,7 +2043,7 @@ static void modify_irg(be_abi_irg_t *env)
                                        repl = new_r_Proj(irg, reg_params_bl, load, load_mode, pn_Load_res);
 
                                        if (mode != load_mode) {
-                                               repl = new_r_Conv(irg, reg_params_bl, repl, mode, 0);
+                                               repl = new_r_Conv(irg, reg_params_bl, repl, mode);
                                        }
                                } else {
                                        /* The stack parameter is not primitive (it is a struct or array),
@@ -2057,7 +2059,7 @@ static void modify_irg(be_abi_irg_t *env)
                           which may be wrong. Add Conv's then. */
                        mode = get_irn_mode(args[i]);
                        if (mode != get_irn_mode(repl)) {
-                               repl = new_r_Conv(irg, get_irn_n(repl, -1), repl, mode, 0);
+                               repl = new_r_Conv(irg, get_irn_n(repl, -1), repl, mode);
                        }
                        exchange(args[i], repl);
                }