i965: Add disasm for dataport reads (register unspilling).
authorEric Anholt <eric@anholt.net>
Wed, 21 Jul 2010 18:19:52 +0000 (11:19 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 22 Jul 2010 03:17:24 +0000 (20:17 -0700)
src/mesa/drivers/dri/i965/brw_disasm.c

index 23095d912a227c80e4fa2de6bd658d2144616cfa..52865c7028df8deea55e2ee3a2f20b3ca0c1fafa 100644 (file)
@@ -870,6 +870,27 @@ int brw_disasm (FILE *file, struct brw_instruction *inst, int gen)
                            inst->bits3.sampler.return_format, NULL);
            string (file, ")");
            break;
+       case BRW_MESSAGE_TARGET_DATAPORT_READ:
+           if (gen >= 6) {
+               format (file, " (%d, %d, %d, %d, %d, %d)",
+                       inst->bits3.dp_render_cache.binding_table_index,
+                       inst->bits3.dp_render_cache.msg_control,
+                       inst->bits3.dp_render_cache.msg_type,
+                       inst->bits3.dp_render_cache.send_commit_msg,
+                       inst->bits3.dp_render_cache.msg_length,
+                       inst->bits3.dp_render_cache.response_length);
+           } else if (gen >= 5) {
+               format (file, " (%d, %d, %d)",
+                       inst->bits3.dp_read_gen5.binding_table_index,
+                       inst->bits3.dp_read_gen5.msg_control,
+                       inst->bits3.dp_read_gen5.msg_type);
+           } else {
+               format (file, " (%d, %d, %d)",
+                       inst->bits3.dp_read.binding_table_index,
+                       inst->bits3.dp_read.msg_control,
+                       inst->bits3.dp_read.msg_type);
+           }
+           break;
        case BRW_MESSAGE_TARGET_DATAPORT_WRITE:
            if (gen >= 6) {
                format (file, " (%d, %d, %d, %d, %d, %d)",
@@ -912,7 +933,7 @@ int brw_disasm (FILE *file, struct brw_instruction *inst, int gen)
        case BRW_MESSAGE_TARGET_THREAD_SPAWNER:
            break;
        default:
-           format (file, "unsupported target %d", inst->bits3.generic.msg_target);
+           format (file, "unsupported target %d", target);
            break;
        }
        if (space)