gallivm: add compile-time option to emit inst addrs and/or line numbers
authorBrian Paul <brianp@vmware.com>
Thu, 14 Oct 2010 22:21:32 +0000 (16:21 -0600)
committerBrian Paul <brianp@vmware.com>
Thu, 14 Oct 2010 23:28:24 +0000 (17:28 -0600)
Disabling address printing is helpful for diffing.

src/gallium/auxiliary/gallivm/lp_bld_debug.c

index 8c1df0d8e309dd8e4b203f43f997af9237ce18b2..93e56553d7b0a57f3b6fe5991544c0ac9cc98491 100644 (file)
@@ -57,6 +57,8 @@ lp_disassemble(const void* func)
 #ifdef HAVE_UDIS86
    ud_t ud_obj;
    uint64_t max_jmp_pc;
+   uint inst_no;
+   boolean emit_addrs = TRUE, emit_line_nos = FALSE;
 
    ud_init(&ud_obj);
 
@@ -76,13 +78,18 @@ lp_disassemble(const void* func)
 
    while (ud_disassemble(&ud_obj)) {
 
+      if (emit_addrs) {
 #ifdef PIPE_ARCH_X86
-      debug_printf("0x%08lx:\t", (unsigned long)ud_insn_off(&ud_obj));
+         debug_printf("0x%08lx:\t", (unsigned long)ud_insn_off(&ud_obj));
 #endif
 #ifdef PIPE_ARCH_X86_64
-      debug_printf("0x%016llx:\t", (unsigned long long)ud_insn_off(&ud_obj));
+         debug_printf("0x%016llx:\t", (unsigned long long)ud_insn_off(&ud_obj));
 #endif
-
+      }
+      else if (emit_line_nos) {
+         debug_printf("%6d:\t", inst_no);
+         inst_no++;
+      }
 #if 0
       debug_printf("%-16s ", ud_insn_hex(&ud_obj));
 #endif