summary refs log tree commit diff stats
path: root/tcg/optimize.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2016-06-22 19:42:31 -0700
committerRichard Henderson <rth@twiddle.net>2016-08-05 21:44:18 +0530
commitdcb8e75870e2de199db853697f8839cb603beefe (patch)
treebbf412371cc5e364c86fbd812b242e5411b1d751 /tcg/optimize.c
parenta1b3c48d2b23d6eaeb4529d3e1183d2648731bf8 (diff)
downloadfocaccia-qemu-dcb8e75870e2de199db853697f8839cb603beefe.tar.gz
focaccia-qemu-dcb8e75870e2de199db853697f8839cb603beefe.zip
tcg: Reorg TCGOp chaining
Instead of using -1 as end of chain, use 0, and link through the 0
entry as a fully circular double-linked list.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'tcg/optimize.c')
-rw-r--r--tcg/optimize.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/tcg/optimize.c b/tcg/optimize.c
index c0d975b3d9..8df7fc7f69 100644
--- a/tcg/optimize.c
+++ b/tcg/optimize.c
@@ -103,11 +103,7 @@ static TCGOp *insert_op_before(TCGContext *s, TCGOp *old_op,
         .prev = prev,
         .next = next
     };
-    if (prev >= 0) {
-        s->gen_op_buf[prev].next = oi;
-    } else {
-        s->gen_first_op_idx = oi;
-    }
+    s->gen_op_buf[prev].next = oi;
     old_op->prev = oi;
 
     return new_op;
@@ -583,7 +579,7 @@ void tcg_optimize(TCGContext *s)
     nb_globals = s->nb_globals;
     reset_all_temps(nb_temps);
 
-    for (oi = s->gen_first_op_idx; oi >= 0; oi = oi_next) {
+    for (oi = s->gen_op_buf[0].next; oi != 0; oi = oi_next) {
         tcg_target_ulong mask, partmask, affected;
         int nb_oargs, nb_iargs, i;
         TCGArg tmp;