Mesa (master): intel/tools: Disassemble WAIT's argument as a destination

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Sep 2 17:23:35 UTC 2020


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

Author: Matt Turner <mattst88 at gmail.com>
Date:   Tue Sep  1 12:09:16 2020 -0700

intel/tools: Disassemble WAIT's argument as a destination

WAIT takes a notification register as a destination and a src0 argument.
Since the same notification register is specified in both fields, we
treat it as a special case and disassemble it only once.

If we disassemble it as if it is a source register, its scalar region
will be printed as <0,1,0>. This causes difficulties round-tripping
through the assembler <-> disassembler because that is not an acceptable
destination region. If we instead disassemble the destination, we
instead get a <1> region which is an acceptable and equivalent region
for source and destination.

The test .asm files are regenerated by round-tripping them through the
assembler/disassembler. Note that the <0> region in the tests was a
harmless mistake: the compiler translated it to a <0,1,0> source region
and a <1> destination region, since <0> isn't valid.

Reviewed-by: Sagar Ghuge <sagar.ghuge at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6543>

---

 src/intel/compiler/brw_eu.cpp         | 2 +-
 src/intel/tools/tests/gen7.5/wait.asm | 6 +++---
 src/intel/tools/tests/gen7/wait.asm   | 6 +++---
 src/intel/tools/tests/gen8/wait.asm   | 6 +++---
 src/intel/tools/tests/gen9/wait.asm   | 6 +++---
 5 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/intel/compiler/brw_eu.cpp b/src/intel/compiler/brw_eu.cpp
index 51ae8cdc221..0027b0a3965 100644
--- a/src/intel/compiler/brw_eu.cpp
+++ b/src/intel/compiler/brw_eu.cpp
@@ -650,7 +650,7 @@ static const struct opcode_desc opcode_descs[] = {
    { BRW_OPCODE_FORK,     46,  "fork",    0,    0,    GEN6 },
    { BRW_OPCODE_GOTO,     46,  "goto",    0,    0,    GEN_GE(GEN8) },
    { BRW_OPCODE_POP,      47,  "pop",     2,    0,    GEN_LE(GEN5) },
-   { BRW_OPCODE_WAIT,     48,  "wait",    1,    0,    GEN_LT(GEN12) },
+   { BRW_OPCODE_WAIT,     48,  "wait",    0,    1,    GEN_LT(GEN12) },
    { BRW_OPCODE_SEND,     49,  "send",    1,    1,    GEN_LT(GEN12) },
    { BRW_OPCODE_SENDC,    50,  "sendc",   1,    1,    GEN_LT(GEN12) },
    { BRW_OPCODE_SEND,     49,  "send",    2,    1,    GEN_GE(GEN12) },
diff --git a/src/intel/tools/tests/gen7.5/wait.asm b/src/intel/tools/tests/gen7.5/wait.asm
index f94845cd8a1..7f81fcd2253 100644
--- a/src/intel/tools/tests/gen7.5/wait.asm
+++ b/src/intel/tools/tests/gen7.5/wait.asm
@@ -1,3 +1,3 @@
-wait(1)                         n0<0>.xUD                       { align16 WE_all 1N };
-wait(1)                         n0<0>.yUD                       { align16 WE_all 1N };
-wait(1)                         n0<0>.zUD                       { align16 WE_all 1N };
+wait(1)         n0<1>.xUD                                       { align16 WE_all 1N };
+wait(1)         n0<1>.yUD                                       { align16 WE_all 1N };
+wait(1)         n0<1>.zUD                                       { align16 WE_all 1N };
diff --git a/src/intel/tools/tests/gen7/wait.asm b/src/intel/tools/tests/gen7/wait.asm
index f94845cd8a1..7f81fcd2253 100644
--- a/src/intel/tools/tests/gen7/wait.asm
+++ b/src/intel/tools/tests/gen7/wait.asm
@@ -1,3 +1,3 @@
-wait(1)                         n0<0>.xUD                       { align16 WE_all 1N };
-wait(1)                         n0<0>.yUD                       { align16 WE_all 1N };
-wait(1)                         n0<0>.zUD                       { align16 WE_all 1N };
+wait(1)         n0<1>.xUD                                       { align16 WE_all 1N };
+wait(1)         n0<1>.yUD                                       { align16 WE_all 1N };
+wait(1)         n0<1>.zUD                                       { align16 WE_all 1N };
diff --git a/src/intel/tools/tests/gen8/wait.asm b/src/intel/tools/tests/gen8/wait.asm
index 14c0b678e64..864acd0a8e0 100644
--- a/src/intel/tools/tests/gen8/wait.asm
+++ b/src/intel/tools/tests/gen8/wait.asm
@@ -1,3 +1,3 @@
-wait(1)                         n0.0<0>UD                       { align1 WE_all 1N };
-wait(1)                         n0.1<0>UD                       { align1 WE_all 1N };
-wait(1)                         n0.2<0>UD                       { align1 WE_all 1N };
+wait(1)         n0<1>UD                                         { align1 WE_all 1N };
+wait(1)         n0.1<1>UD                                       { align1 WE_all 1N };
+wait(1)         n0.2<1>UD                                       { align1 WE_all 1N };
diff --git a/src/intel/tools/tests/gen9/wait.asm b/src/intel/tools/tests/gen9/wait.asm
index 14c0b678e64..864acd0a8e0 100644
--- a/src/intel/tools/tests/gen9/wait.asm
+++ b/src/intel/tools/tests/gen9/wait.asm
@@ -1,3 +1,3 @@
-wait(1)                         n0.0<0>UD                       { align1 WE_all 1N };
-wait(1)                         n0.1<0>UD                       { align1 WE_all 1N };
-wait(1)                         n0.2<0>UD                       { align1 WE_all 1N };
+wait(1)         n0<1>UD                                         { align1 WE_all 1N };
+wait(1)         n0.1<1>UD                                       { align1 WE_all 1N };
+wait(1)         n0.2<1>UD                                       { align1 WE_all 1N };



More information about the mesa-commit mailing list