vc4: Fix use of r3 as a temp in 8-bit unpacking.
We're actually allocating out of r3 now, and I missed it because I'd typed this one as qpu_rn(3) instead of qpu_r3().
This commit is contained in:
parent
8e678de761
commit
1fa1ee56a0
|
@ -471,26 +471,23 @@ vc4_generate_code(struct vc4_context *vc4, struct vc4_compile *c)
|
|||
case QOP_UNPACK_8A_F:
|
||||
case QOP_UNPACK_8B_F:
|
||||
case QOP_UNPACK_8C_F:
|
||||
case QOP_UNPACK_8D_F: {
|
||||
case QOP_UNPACK_8D_F:
|
||||
assert(src[0].mux == QPU_MUX_A);
|
||||
|
||||
/* And, since we're setting the pack bits, if the
|
||||
/* Since we're setting the pack bits, if the
|
||||
* destination is in A it would get re-packed.
|
||||
*/
|
||||
struct qpu_reg orig_dst = dst;
|
||||
if (orig_dst.mux == QPU_MUX_A)
|
||||
dst = qpu_rn(3);
|
||||
|
||||
queue(c, qpu_a_FMAX(dst, src[0], src[0]));
|
||||
queue(c, qpu_a_FMAX((dst.mux == QPU_MUX_A ?
|
||||
qpu_rb(31) : dst),
|
||||
src[0], src[0]));
|
||||
*last_inst(c) |= QPU_SET_FIELD(QPU_UNPACK_8A +
|
||||
(qinst->op -
|
||||
QOP_UNPACK_8A_F),
|
||||
QPU_UNPACK);
|
||||
|
||||
if (orig_dst.mux == QPU_MUX_A) {
|
||||
queue(c, qpu_a_MOV(orig_dst, dst));
|
||||
if (dst.mux == QPU_MUX_A) {
|
||||
queue(c, qpu_a_MOV(dst, qpu_rb(31)));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
Loading…
Reference in New Issue