Mesa (master): intel/eu: print bytes instead of 32 bit hex value

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Aug 27 18:07:48 UTC 2018


Module: Mesa
Branch: master
Commit: a1e3305f7538562e99b6bb80e9f84c4baa1c43ae
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a1e3305f7538562e99b6bb80e9f84c4baa1c43ae

Author: Sagar Ghuge <sagar.ghuge at intel.com>
Date:   Mon Aug 27 10:23:19 2018 -0700

intel/eu: print bytes instead of 32 bit hex value

INTEL_DEBUG=hex prints 32 bit hex value and due to endianness of CPU
byte order is reversed. In order to disassemble binary files, print
each byte instead of 32 bit hex value.

v2: Print blank spaces in order to vertically align output of compacted
    instructions hex value with uncompacted instructions hex value.
    (Matt Turner)

v3: Fix line wrap at correct length

Signed-off-by: Sagar Ghuge <sagar.ghuge at intel.com>
Reviewed-by: Matt Turner <mattst88 at gmail.com>

---

 src/intel/compiler/brw_eu.c | 47 +++++++++++++++++++++++++++++----------------
 1 file changed, 30 insertions(+), 17 deletions(-)

diff --git a/src/intel/compiler/brw_eu.c b/src/intel/compiler/brw_eu.c
index 6ef0a6a577..3fb4e40507 100644
--- a/src/intel/compiler/brw_eu.c
+++ b/src/intel/compiler/brw_eu.c
@@ -364,24 +364,37 @@ brw_disassemble(const struct gen_device_info *devinfo,
 
       if (compacted) {
          brw_compact_inst *compacted = (void *)insn;
-	 if (dump_hex) {
-	    fprintf(out, "0x%08x 0x%08x                       ",
-		    ((uint32_t *)insn)[1],
-		    ((uint32_t *)insn)[0]);
-	 }
-
-	 brw_uncompact_instruction(devinfo, &uncompacted, compacted);
-	 insn = &uncompacted;
-	 offset += 8;
+         if (dump_hex) {
+            unsigned char * insn_ptr = ((unsigned char *)&insn[0]);
+            const unsigned int blank_spaces = 24;
+            for (int i = 0 ; i < 8; i = i + 4) {
+               fprintf(out, "%02x %02x %02x %02x ",
+                       insn_ptr[i],
+                       insn_ptr[i + 1],
+                       insn_ptr[i + 2],
+                       insn_ptr[i + 3]);
+            }
+            /* Make compacted instructions hex value output vertically aligned
+             * with uncompacted instructions hex value
+             */
+            fprintf(out, "%*c", blank_spaces, ' ');
+         }
+
+         brw_uncompact_instruction(devinfo, &uncompacted, compacted);
+         insn = &uncompacted;
+         offset += 8;
       } else {
-	 if (dump_hex) {
-	    fprintf(out, "0x%08x 0x%08x 0x%08x 0x%08x ",
-		    ((uint32_t *)insn)[3],
-		    ((uint32_t *)insn)[2],
-		    ((uint32_t *)insn)[1],
-		    ((uint32_t *)insn)[0]);
-	 }
-	 offset += 16;
+         if (dump_hex) {
+            unsigned char * insn_ptr = ((unsigned char *)&insn[0]);
+            for (int i = 0 ; i < 16; i = i + 4) {
+               fprintf(out, "%02x %02x %02x %02x ",
+                       insn_ptr[i],
+                       insn_ptr[i + 1],
+                       insn_ptr[i + 2],
+                       insn_ptr[i + 3]);
+            }
+         }
+         offset += 16;
       }
 
       brw_disassemble_inst(out, devinfo, insn, compacted);




More information about the mesa-commit mailing list