From 4ef31ba460f563b22d29abf203e31b83d8a6cf2a Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Mon, 4 Oct 2021 13:07:35 +0200 Subject: [PATCH] broadcom/qpu: fix packing/unpacking of fmov variants for v71 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Alejandro PiƱeiro Part-of: --- src/broadcom/qpu/qpu_pack.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/broadcom/qpu/qpu_pack.c b/src/broadcom/qpu/qpu_pack.c index a158c77f26a..5169de22914 100644 --- a/src/broadcom/qpu/qpu_pack.c +++ b/src/broadcom/qpu/qpu_pack.c @@ -1408,9 +1408,9 @@ v3d71_qpu_mul_unpack(const struct v3d_device_info *devinfo, uint64_t packed_inst break; case V3D_QPU_M_FMOV: - instr->alu.mul.output_pack = (raddr_d >> 2) & 1; + instr->alu.mul.output_pack = raddr_d & 0x3; - if (!v3d_qpu_float32_unpack_unpack(raddr_d & 0x3, + if (!v3d_qpu_float32_unpack_unpack((raddr_d >> 2) & 0x7, &instr->alu.mul.a.unpack)) { return false; } @@ -2049,14 +2049,13 @@ v3d71_qpu_mul_pack(const struct v3d_device_info *devinfo, &packed)) { return false; } - opcode |= (packed >> 1) & 1; - raddr_d = (packed & 1) << 2; + raddr_d |= packed; if (!v3d_qpu_float32_unpack_pack(instr->alu.mul.a.unpack, &packed)) { return false; } - raddr_d |= packed; + raddr_d |= packed << 2; break; }