vc4: Don't make a temporary for setting flags.
authorEric Anholt <eric@anholt.net>
Wed, 16 Mar 2016 01:58:43 +0000 (18:58 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 16 Mar 2016 18:28:34 +0000 (11:28 -0700)
The register allocator doesn't really do anything about the temp, so it
doesn't seem like it should matter.  However, the scheduler would think
that a new def is being created.

This doesn't change anything yet, but it avoids a bunch of regressions in
the next commit.

src/gallium/drivers/vc4/vc4_qir.c

index fd1192f..125a952 100644 (file)
@@ -495,7 +495,8 @@ qir_SF(struct vc4_compile *c, struct qreg src)
             !c->defs[src.index] ||
             last_inst != c->defs[src.index] ||
             qir_is_multi_instruction(last_inst)) {
-                src = qir_MOV(c, src);
+                struct qreg null = { QFILE_NULL, 0 };
+                last_inst = qir_MOV_dest(c, null, src);
                 last_inst = (struct qinst *)c->instructions.prev;
         }
         last_inst->sf = true;