From: Eric Anholt Date: Mon, 25 Aug 2014 00:43:02 +0000 (-0700) Subject: vc4: Ignore WADDRs from the other half of the instruction when merging. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1a7035f386c4402b07e7a2073daf914f95bd0a02;p=mesa.git vc4: Ignore WADDRs from the other half of the instruction when merging. This allows setting the opposite-side WADDR to NOP (a non-zero value) in qpu_* helpers, so that we don't need to qpu_inst() merge them with NOPs all the time just to get the waddr set. --- diff --git a/src/gallium/drivers/vc4/vc4_qpu.c b/src/gallium/drivers/vc4/vc4_qpu.c index d74dee5689e..35c65dc2eb3 100644 --- a/src/gallium/drivers/vc4/vc4_qpu.c +++ b/src/gallium/drivers/vc4/vc4_qpu.c @@ -192,7 +192,8 @@ qpu_m_alu2(enum qpu_op_mul op, uint64_t qpu_inst(uint64_t add, uint64_t mul) { - uint64_t merge = add | mul; + uint64_t merge = ((add & ~QPU_WADDR_MUL_MASK) | + (mul & ~QPU_WADDR_ADD_MASK)); /* If either one has no signal field, then use the other's signal field. * (since QPU_SIG_NONE != 0).