broadcom/vc5: Add support for QPU pack/unpack/disasm of small immediates.
[mesa.git] / src / broadcom / qpu / qpu_disasm.c
index 73b43f8c3d63b5d13a5b8c83b51f9bddb45645e4..32e7ba12a4c51e00627e400806d87b0e324ede81 100644 (file)
@@ -62,7 +62,21 @@ v3d_qpu_disasm_raddr(struct disasm_state *disasm,
         if (mux == V3D_QPU_MUX_A) {
                 append(disasm, "rf%d", instr->raddr_a);
         } else if (mux == V3D_QPU_MUX_B) {
-                append(disasm, "rf%d", instr->raddr_b);
+                if (instr->sig.small_imm) {
+                        uint32_t val;
+                        MAYBE_UNUSED bool ok =
+                                v3d_qpu_small_imm_unpack(disasm->devinfo,
+                                                         instr->raddr_b,
+                                                         &val);
+
+                        if ((int)val >= -16 && (int)val <= 15)
+                                append(disasm, "%d", val);
+                        else
+                                append(disasm, "0x%08x", val);
+                        assert(ok);
+                } else {
+                        append(disasm, "rf%d", instr->raddr_b);
+                }
         } else {
                 append(disasm, "r%d", mux);
         }