i965g: disassemble each instruction as generated
authorKeith Whitwell <keithw@vmware.com>
Fri, 6 Nov 2009 11:21:48 +0000 (11:21 +0000)
committerKeith Whitwell <keithw@vmware.com>
Fri, 6 Nov 2009 11:45:01 +0000 (11:45 +0000)
src/gallium/drivers/i965/brw_context.h
src/gallium/drivers/i965/brw_debug.h
src/gallium/drivers/i965/brw_disasm.c
src/gallium/drivers/i965/brw_eu_emit.c
src/gallium/drivers/i965/brw_screen.c

index b81dff0aa058af0fd9d7ee0ab75b12b92aa2bfaf..05fc9d45b568b0d87c66de0f19f3a0788a8138ee 100644 (file)
@@ -788,6 +788,7 @@ int brw_upload_urb_fence(struct brw_context *brw);
 int brw_upload_cs_urb_state(struct brw_context *brw);
 
 /* brw_disasm.c */
+int brw_disasm_insn (FILE *file, const struct brw_instruction *inst);
 int brw_disasm (FILE *file, 
                 const struct brw_instruction *inst,
                 unsigned count);
index ea3c87218be0c5db82e97a031efd434fa5ca9a7f..0deddbf977076565f76b167cd0a3c32691f9bf5c 100644 (file)
@@ -16,7 +16,7 @@
 #define DEBUG_PIXEL             0x100
 #define DEBUG_BUFMGR            0x200
 #define DEBUG_MIN_URB           0x400
-#define DEBUG_unused2           0x800
+#define DEBUG_DISASSEM           0x800
 #define DEBUG_unused3           0x1000
 #define DEBUG_SYNC             0x2000
 #define DEBUG_PRIMS            0x4000
index df0c7b9a2b83a21521430dfc9fa5fcb1ed417974..4100f11d48f135bb48515cd896db1751b5ca059c 100644 (file)
@@ -770,7 +770,7 @@ static int src1 (FILE *file, const struct brw_instruction *inst)
     }
 }
 
-static int brw_disasm_insn (FILE *file, const struct brw_instruction *inst)
+int brw_disasm_insn (FILE *file, const struct brw_instruction *inst)
 {
     int        err = 0;
     int space = 0;
index f7fa520348825911498ae45de3fd9516ca873fde..7776b4f9655d951833533c1a91799fdf2fce22f7 100644 (file)
@@ -33,6 +33,7 @@
 #include "brw_context.h"
 #include "brw_defines.h"
 #include "brw_eu.h"
+#include "brw_debug.h"
 
 
 
@@ -473,6 +474,12 @@ static struct brw_instruction *next_insn( struct brw_compile *p,
 {
    struct brw_instruction *insn;
 
+   if (0 && (BRW_DEBUG & DEBUG_DISASSEM))
+   {
+      if (p->nr_insn) 
+         brw_disasm_insn(stderr, &p->store[p->nr_insn-1]);
+   }
+
    assert(p->nr_insn + 1 < BRW_EU_MAX_INSN);
 
    insn = &p->store[p->nr_insn++];
index 275ff0959f94cb535e14bdb53d3a2cbca3d00fc8..9d8066442be96780ac206f5d358d76796a280293 100644 (file)
@@ -49,6 +49,7 @@ static const struct debug_named_value debug_names[] = {
    { "pix",   DEBUG_PIXEL},
    { "buf",   DEBUG_BUFMGR},
    { "min",   DEBUG_MIN_URB},
+   { "dis",   DEBUG_DISASSEM},
    { "sync",  DEBUG_SYNC},
    { "prim",  DEBUG_PRIMS },
    { "vert",  DEBUG_VERTS },