ilo: make toy_compiler_disassemble() more useful
authorChia-I Wu <olvaffe@gmail.com>
Fri, 5 Sep 2014 04:01:34 +0000 (12:01 +0800)
committerChia-I Wu <olvaffe@gmail.com>
Tue, 9 Sep 2014 05:31:30 +0000 (13:31 +0800)
Do not require a toy_compiler so that it can be used in other places, such as
state dumping.  Add a bool to control whether the raw instruction words are
shown.

src/gallium/drivers/ilo/shader/ilo_shader_fs.c
src/gallium/drivers/ilo/shader/ilo_shader_gs.c
src/gallium/drivers/ilo/shader/ilo_shader_vs.c
src/gallium/drivers/ilo/shader/toy_compiler.h
src/gallium/drivers/ilo/shader/toy_compiler_disasm.c

index c7a6ff9faa6c738cec00e162a8a7c9bd6ee699e2..c5bdf753b0b02ca06a932932f45f338c64108320 100644 (file)
@@ -1425,7 +1425,7 @@ fs_compile(struct fs_compile_context *fcc)
 
    if (ilo_debug & ILO_DEBUG_FS) {
       ilo_printf("disassembly:\n");
-      toy_compiler_disassemble(tc, sh->kernel, sh->kernel_size);
+      toy_compiler_disassemble(tc->dev, sh->kernel, sh->kernel_size, false);
       ilo_printf("\n");
    }
 
index 91c300bae9eb2e144a383ed0c07f3547b602cfd9..2814662043af079b8a37f76d8e6da930e742e23a 100644 (file)
@@ -902,7 +902,7 @@ gs_compile(struct gs_compile_context *gcc)
 
    if (ilo_debug & ILO_DEBUG_GS) {
       ilo_printf("disassembly:\n");
-      toy_compiler_disassemble(tc, sh->kernel, sh->kernel_size);
+      toy_compiler_disassemble(tc->dev, sh->kernel, sh->kernel_size, false);
       ilo_printf("\n");
    }
 
@@ -986,7 +986,7 @@ gs_compile_passthrough(struct gs_compile_context *gcc)
 
    if (ilo_debug & ILO_DEBUG_GS) {
       ilo_printf("disassembly:\n");
-      toy_compiler_disassemble(tc, sh->kernel, sh->kernel_size);
+      toy_compiler_disassemble(tc->dev, sh->kernel, sh->kernel_size, false);
       ilo_printf("\n");
    }
 
index c8a59e4d2d41b8eb9231cad5077256e00671000f..838a29e8d4b62541cd7f5885d16ce165e2cd53a9 100644 (file)
@@ -789,7 +789,7 @@ vs_compile(struct vs_compile_context *vcc)
 
    if (ilo_debug & ILO_DEBUG_VS) {
       ilo_printf("disassembly:\n");
-      toy_compiler_disassemble(tc, sh->kernel, sh->kernel_size);
+      toy_compiler_disassemble(tc->dev, sh->kernel, sh->kernel_size, false);
       ilo_printf("\n");
    }
 
index c23d7fc88a9dceddd99bbc2879ce9c7927338a93..74004edd5e28897030b06f6edebacc127b2e83f4 100644 (file)
@@ -470,6 +470,8 @@ void *
 toy_compiler_assemble(struct toy_compiler *tc, int *size);
 
 void
-toy_compiler_disassemble(struct toy_compiler *tc, const void *kernel, int size);
+toy_compiler_disassemble(const struct ilo_dev_info *dev,
+                         const void *kernel, int size,
+                         bool dump_hex);
 
 #endif /* TOY_COMPILER_H */
index 0a90c3d0919666adb41778c92d08d6b719761f1f..1028940fbc44caeefea355c6adedb8f828416c2e 100644 (file)
@@ -40,10 +40,10 @@ static int brw_disasm (FILE *file, struct brw_instruction *inst, int gen);
 #include "toy_compiler.h"
 
 void
-toy_compiler_disassemble(struct toy_compiler *tc, const void *kernel, int size)
+toy_compiler_disassemble(const struct ilo_dev_info *dev,
+                         const void *kernel, int size,
+                         bool dump_hex)
 {
-   /* set this to true to dump the hex */
-   const bool dump_hex = false;
    const struct brw_instruction *instructions = kernel;
    int i;
 
@@ -55,7 +55,7 @@ toy_compiler_disassemble(struct toy_compiler *tc, const void *kernel, int size)
       }
 
       brw_disasm(stderr, (struct brw_instruction *) &instructions[i],
-            ILO_GEN_GET_MAJOR(tc->dev->gen));
+            ILO_GEN_GET_MAJOR(dev->gen));
    }
 }