Commit 1387e722 authored by Eric Anholt's avatar Eric Anholt

vc4: Make sure that we don't overwrite the signal for PROG_END.

We should have already emitted a NOP due to the last instruction being a
TLB or VPM write.  However, if you disable dead code elimination then you
might get dead code at the end, and that dead code might have the signal
bits set to something non-default, at which point you die in assertion
failure.
parent 44de03b0
......@@ -510,6 +510,14 @@ vc4_generate_code(struct vc4_context *vc4, struct vc4_compile *c)
if (qpu_inst_is_tlb(c->qpu_insts[c->qpu_inst_count - 1]))
qpu_serialize_one_inst(c, qpu_NOP());
/* Make sure there's no existing signal set (like for a small
* immediate)
*/
if (QPU_GET_FIELD(c->qpu_insts[c->qpu_inst_count - 1],
QPU_SIG) != QPU_SIG_NONE) {
qpu_serialize_one_inst(c, qpu_NOP());
}
c->qpu_insts[c->qpu_inst_count - 1] =
qpu_set_sig(c->qpu_insts[c->qpu_inst_count - 1],
QPU_SIG_PROG_END);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment