From 3972a6f057e20ec9e8358f4487c3b4d51c499628 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Sun, 24 Aug 2014 18:00:44 -0700 Subject: [PATCH] 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 9f5ccdb0cf6..4e28ff7c3b8 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: -- 2.30.2