i965: Fix disassembly of data port writes on Ivybridge.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 18 Jan 2012 08:55:12 +0000 (00:55 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 18 Jan 2012 22:42:04 +0000 (14:42 -0800)
msg_type moved by a bit, so the message type was being disassembled
incorrectly.  In particular, render target writes were showing up as
"OWORD block write".

NOTE: This is a candidate for stable release branches.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_disasm.c

index 02fa14cb598d23db3e313604d0052f94f34097f6..a86c8f28edb2e3c274a723567749480d0290d9a3 100644 (file)
@@ -1029,7 +1029,18 @@ int brw_disasm (FILE *file, struct brw_instruction *inst, int gen)
            break;
 
        case BRW_SFID_DATAPORT_WRITE:
-           if (gen >= 6) {
+           if (gen >= 7) {
+               format (file, " (");
+
+               err |= control (file, "DP rc message type",
+                               dp_rc_msg_type_gen6,
+                               inst->bits3.gen7_dp.msg_type, &space);
+
+               format (file, ", %d, %d, %d)",
+                       inst->bits3.gen7_dp.binding_table_index,
+                       inst->bits3.gen7_dp.msg_control,
+                       inst->bits3.gen7_dp.msg_type);
+           } else if (gen == 6) {
                format (file, " (");
 
                err |= control (file, "DP rc message type",