i965: Add sensible disasm for the JMPI instruction.
authorEric Anholt <eric@anholt.net>
Mon, 19 Dec 2011 18:52:31 +0000 (10:52 -0800)
committerEric Anholt <eric@anholt.net>
Fri, 6 Jan 2012 17:48:32 +0000 (09:48 -0800)
We care about the jump distance, not that the first src is always the
ip register.

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

index 23ad3de71df838a011b9099e1f7aec4df878d6c2..cfea1a30ecc94ce34803c9d30aeeb90bfc4a0660 100644 (file)
@@ -74,7 +74,7 @@ struct {
     [BRW_OPCODE_SEND] = { .name = "send", .nsrc = 1, .ndst = 1 },
     [BRW_OPCODE_SENDC] = { .name = "sendc", .nsrc = 1, .ndst = 1 },
     [BRW_OPCODE_NOP] = { .name = "nop", .nsrc = 0, .ndst = 0 },
-    [BRW_OPCODE_JMPI] = { .name = "jmpi", .nsrc = 1, .ndst = 0 },
+    [BRW_OPCODE_JMPI] = { .name = "jmpi", .nsrc = 0, .ndst = 0 },
     [BRW_OPCODE_IF] = { .name = "if", .nsrc = 2, .ndst = 0 },
     [BRW_OPCODE_IFF] = { .name = "iff", .nsrc = 2, .ndst = 1 },
     [BRW_OPCODE_WHILE] = { .name = "while", .nsrc = 2, .ndst = 0 },
@@ -932,6 +932,8 @@ int brw_disasm (FILE *file, struct brw_instruction *inst, int gen)
                            inst->header.opcode == BRW_OPCODE_ENDIF ||
                            inst->header.opcode == BRW_OPCODE_WHILE)) {
        format (file, " %d", inst->bits1.branch_gen6.jump_count);
+    } else if (inst->header.opcode == BRW_OPCODE_JMPI) {
+       format (file, " %d", inst->bits3.d);
     }
 
     if (opcode[inst->header.opcode].nsrc > 0) {