Module: Mesa
Branch: master
Commit: 3972a6f057e20ec9e8358f4487c3b4d51c499628
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3972a6f057e20ec9e8358f4487c3b4d51c499628

Author: Eric Anholt <e...@anholt.net>
Date:   Sun Aug 24 18:00:44 2014 -0700

vc4: Stop being so clever in CMP handling.

This kind of cleverness should be in a general merging-of-ADD-and-MUL
instruction scheduler, rather than individual opcodes.

---

 src/gallium/drivers/vc4/vc4_qpu_emit.c |   29 ++++++-----------------------
 1 file changed, 6 insertions(+), 23 deletions(-)

diff --git a/src/gallium/drivers/vc4/vc4_qpu_emit.c 
b/src/gallium/drivers/vc4/vc4_qpu_emit.c
index 9f5ccdb..4e28ff7 100644
--- a/src/gallium/drivers/vc4/vc4_qpu_emit.c
+++ b/src/gallium/drivers/vc4/vc4_qpu_emit.c
@@ -369,30 +369,13 @@ vc4_generate_code(struct qcompile *c)
                         queue(c, qpu_a_MOV(qpu_ra(QPU_W_NOP), src[0]));
                         *last_inst(c) |= QPU_SF;
 
-                        if (dst.mux <= QPU_MUX_R3) {
-                                fixup_raddr_conflict(c, src[1], &src[2]);
-                                queue(c, qpu_inst(qpu_a_MOV(dst, src[1]),
-                                                  qpu_m_MOV(dst, src[2])));
-                                *last_inst(c) = qpu_set_cond_add(*last_inst(c),
-                                                                 QPU_COND_NS);
-                                *last_inst(c) = qpu_set_cond_mul(*last_inst(c),
-                                                                 QPU_COND_NC);
-                        } else {
-                                if (dst.mux == src[1].mux &&
-                                    dst.addr == src[1].addr) {
-                                        queue(c, qpu_a_MOV(dst, src[1]));
-
-                                        queue(c, qpu_a_MOV(dst, src[2]));
-                                        *last_inst(c) = 
qpu_set_cond_add(*last_inst(c),
-                                                                         
QPU_COND_NC);
-                                } else {
-                                        queue(c, qpu_a_MOV(dst, src[2]));
+                        queue(c, qpu_a_MOV(dst, src[1]));
+                        *last_inst(c) = qpu_set_cond_add(*last_inst(c),
+                                                         QPU_COND_NS);
 
-                                        queue(c, qpu_a_MOV(dst, src[1]));
-                                        *last_inst(c) = 
qpu_set_cond_add(*last_inst(c),
-                                                                         
QPU_COND_NS);
-                                }
-                        }
+                        queue(c, qpu_a_MOV(dst, src[2]));
+                        *last_inst(c) = qpu_set_cond_add(*last_inst(c),
+                                                         QPU_COND_NC);
                         break;
 
                 case QOP_SEQ:

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to