[Beignet] [PATCH] Refine the shared function ID define.

junyan.he at inbox.com junyan.he at inbox.com
Fri Oct 10 22:25:19 PDT 2014


From: Junyan He <junyan.he at linux.intel.com>

The old sfid define is obsolete and confusing.
Correct the names and delete the invalid ones.
The math shared function is no longer included in sfid,
and some modification for disasm to print the math
related infomation correctly.

Signed-off-by: Junyan He <junyan.he at linux.intel.com>
---
 backend/src/backend/gen/gen_mesa_disasm.c |   54 ++++++++++++++---------------
 backend/src/backend/gen75_encoder.cpp     |    6 ++--
 backend/src/backend/gen8_encoder.cpp      |    6 ++--
 backend/src/backend/gen_defs.hpp          |   16 ++++-----
 backend/src/backend/gen_encoder.cpp       |   16 ++++-----
 5 files changed, 49 insertions(+), 49 deletions(-)

diff --git a/backend/src/backend/gen/gen_mesa_disasm.c b/backend/src/backend/gen/gen_mesa_disasm.c
index 1a53310..1348260 100644
--- a/backend/src/backend/gen/gen_mesa_disasm.c
+++ b/backend/src/backend/gen/gen_mesa_disasm.c
@@ -310,29 +310,33 @@ static const char *end_of_thread[2] = {
 
 static const char *target_function_gen6[16] = {
   [GEN_SFID_NULL] = "null",
-  [GEN_SFID_MATH] = "math",
+  [GEN_SFID_RESERVED] = NULL,
   [GEN_SFID_SAMPLER] = "sampler",
   [GEN_SFID_MESSAGE_GATEWAY] = "gateway",
+  [GEN_SFID_DATAPORT_SAMPLER] = "dataport_sampler",
+  [GEN_SFID_DATAPORT_RENDER] = "render",
   [GEN_SFID_URB] = "urb",
   [GEN_SFID_THREAD_SPAWNER] = "thread_spawner",
-  [GEN6_SFID_DATAPORT_SAMPLER_CACHE] = "sampler",
-  [GEN6_SFID_DATAPORT_RENDER_CACHE] = "render",
-  [GEN6_SFID_DATAPORT_CONSTANT_CACHE] = "const",
-  [GEN_SFID_DATAPORT_DATA_CACHE] = "data"
+  [GEN_SFID_VIDEO_MOTION_EST] = "video_motion_estimation",
+  [GEN_SFID_DATAPORT_CONSTANT] = "const",
+  [GEN_SFID_DATAPORT_DATA] = "data",
+  [GEN_SFID_PIXEL_INTERPOLATOR] = "pix_interpolator",
 };
 
 static const char *target_function_gen75[16] = {
   [GEN_SFID_NULL] = "null",
-  [GEN_SFID_MATH] = "math",
+  [GEN_SFID_RESERVED] = NULL,
   [GEN_SFID_SAMPLER] = "sampler",
   [GEN_SFID_MESSAGE_GATEWAY] = "gateway",
+  [GEN_SFID_DATAPORT_SAMPLER] = "dataport_sampler",
+  [GEN_SFID_DATAPORT_RENDER] = "render",
   [GEN_SFID_URB] = "urb",
   [GEN_SFID_THREAD_SPAWNER] = "thread_spawner",
-  [GEN6_SFID_DATAPORT_SAMPLER_CACHE] = "sampler",
-  [GEN6_SFID_DATAPORT_RENDER_CACHE] = "render",
-  [GEN6_SFID_DATAPORT_CONSTANT_CACHE] = "const",
-  [GEN_SFID_DATAPORT_DATA_CACHE] = "data (0)",
-  [GEN_SFID_DATAPORT1_DATA_CACHE] = "data (1)"
+  [GEN_SFID_VIDEO_MOTION_EST] = "video_motion_estimation",
+  [GEN_SFID_DATAPORT_CONSTANT] = "const",
+  [GEN_SFID_DATAPORT_DATA] = "data (0)",
+  [GEN_SFID_PIXEL_INTERPOLATOR] = "pix_interpolator",
+  [GEN_SFID_DATAPORT1_DATA] = "data (1)",
 };
 
 static const char *gateway_sub_function[8] = {
@@ -1128,7 +1132,15 @@ int gen_disasm (FILE *file, const void *opaque_insn, uint32_t deviceID, uint32_t
   if (inst->header.opcode == GEN_OPCODE_MATH) {
     string (file, " ");
     err |= control (file, "function", math_function,
-        inst->header.destreg_or_condmod, NULL);
+                    inst->header.destreg_or_condmod, &space);
+    err |= control (file, "math saturate", math_saturate,
+                    inst->bits3.math_gen5.saturate, &space);
+    err |= control (file, "math signed", math_signed,
+                    inst->bits3.math_gen5.int_type, &space);
+    err |= control (file, "math scalar", math_scalar,
+                    inst->bits3.math_gen5.data_type, &space);
+    err |= control (file, "math precision", math_precision,
+                    inst->bits3.math_gen5.precision, &space);
   } else if (inst->header.opcode != GEN_OPCODE_SEND &&
       inst->header.opcode != GEN_OPCODE_SENDC) {
     err |= control (file, "conditional modifier", conditional_modifier,
@@ -1207,18 +1219,6 @@ int gen_disasm (FILE *file, const void *opaque_insn, uint32_t deviceID, uint32_t
     }
 
     switch (target) {
-      case GEN_SFID_MATH:
-        err |= control (file, "math function", math_function,
-            inst->bits3.math_gen5.function, &space);
-        err |= control (file, "math saturate", math_saturate,
-            inst->bits3.math_gen5.saturate, &space);
-        err |= control (file, "math signed", math_signed,
-            inst->bits3.math_gen5.int_type, &space);
-        err |= control (file, "math scalar", math_scalar,
-            inst->bits3.math_gen5.data_type, &space);
-        err |= control (file, "math precision", math_precision,
-            inst->bits3.math_gen5.precision, &space);
-        break;
       case GEN_SFID_SAMPLER:
         format (file, " (%d, %d, %d, %d)",
                 inst->bits3.sampler_gen7.bti,
@@ -1226,7 +1226,7 @@ int gen_disasm (FILE *file, const void *opaque_insn, uint32_t deviceID, uint32_t
                 inst->bits3.sampler_gen7.msg_type,
                 inst->bits3.sampler_gen7.simd_mode);
         break;
-      case GEN_SFID_DATAPORT_DATA_CACHE:
+      case GEN_SFID_DATAPORT_DATA:
         if(inst->bits3.gen7_untyped_rw.category == 0) {
           format (file, " (bti: %d, rgba: %d, %s, %s, %s)",
                   inst->bits3.gen7_untyped_rw.bti,
@@ -1243,7 +1243,7 @@ int gen_disasm (FILE *file, const void *opaque_insn, uint32_t deviceID, uint32_t
                   data_port_scratch_msg_type[inst->bits3.gen7_scratch_rw.msg_type]);
         }
         break;
-      case GEN_SFID_DATAPORT1_DATA_CACHE:
+      case GEN_SFID_DATAPORT1_DATA:
         format (file, " (bti: %d, rgba: %d, %s, %s, %s)",
                 inst->bits3.gen7_untyped_rw.bti,
                 inst->bits3.gen7_untyped_rw.rgba,
@@ -1251,7 +1251,7 @@ int gen_disasm (FILE *file, const void *opaque_insn, uint32_t deviceID, uint32_t
                 data_port_data_cache_category[inst->bits3.gen7_untyped_rw.category],
                 data_port1_data_cache_msg_type[inst->bits3.gen7_untyped_rw.msg_type]);
         break;
-      case GEN6_SFID_DATAPORT_CONSTANT_CACHE:
+      case GEN_SFID_DATAPORT_CONSTANT:
         format (file, " (bti: %d, %s)",
                 inst->bits3.gen7_dword_rw.bti,
                 data_port_data_cache_msg_type[inst->bits3.gen7_dword_rw.msg_type]);
diff --git a/backend/src/backend/gen75_encoder.cpp b/backend/src/backend/gen75_encoder.cpp
index 10a9b5c..b9ac986 100644
--- a/backend/src/backend/gen75_encoder.cpp
+++ b/backend/src/backend/gen75_encoder.cpp
@@ -70,7 +70,7 @@ namespace gbe
                                     uint32_t response_length)
   {
     Gen7NativeInstruction *gen7_insn = &insn->gen7_insn;
-    const GenMessageTarget sfid = GEN_SFID_DATAPORT1_DATA_CACHE;
+    const GenMessageTarget sfid = GEN_SFID_DATAPORT1_DATA;
     setMessageDescriptor(insn, sfid, msg_length, response_length);
     gen7_insn->bits3.gen7_untyped_rw.msg_type = msg_type;
     gen7_insn->bits3.gen7_untyped_rw.bti = bti;
@@ -87,7 +87,7 @@ namespace gbe
                                           unsigned char msg_type, uint32_t msg_length, bool header_present)
   {
     Gen7NativeInstruction *gen7_insn = &insn->gen7_insn;
-    const GenMessageTarget sfid = GEN_SFID_DATAPORT1_DATA_CACHE;
+    const GenMessageTarget sfid = GEN_SFID_DATAPORT1_DATA;
     setMessageDescriptor(insn, sfid, msg_length, 0, header_present);
     gen7_insn->bits3.gen7_typed_rw.bti = bti;
     gen7_insn->bits3.gen7_typed_rw.msg_type = msg_type;
@@ -116,7 +116,7 @@ namespace gbe
     this->setSrc0(insn, GenRegister::ud8grf(src.nr, 0));
     this->setSrc1(insn, GenRegister::immud(0));
 
-    const GenMessageTarget sfid = GEN_SFID_DATAPORT1_DATA_CACHE;
+    const GenMessageTarget sfid = GEN_SFID_DATAPORT1_DATA;
     setMessageDescriptor(insn, sfid, msg_length, response_length);
     gen7_insn->bits3.gen7_atomic_op.msg_type = GEN75_P1_UNTYPED_ATOMIC_OP;
     gen7_insn->bits3.gen7_atomic_op.bti = bti;
diff --git a/backend/src/backend/gen8_encoder.cpp b/backend/src/backend/gen8_encoder.cpp
index 6cb6e70..4ca900d 100644
--- a/backend/src/backend/gen8_encoder.cpp
+++ b/backend/src/backend/gen8_encoder.cpp
@@ -70,7 +70,7 @@ namespace gbe
                                     uint32_t response_length)
   {
     Gen8NativeInstruction *gen8_insn = &insn->gen8_insn;
-    const GenMessageTarget sfid = GEN_SFID_DATAPORT1_DATA_CACHE;
+    const GenMessageTarget sfid = GEN_SFID_DATAPORT1_DATA;
     setMessageDescriptor(insn, sfid, msg_length, response_length);
     gen8_insn->bits3.gen7_untyped_rw.msg_type = msg_type;
     gen8_insn->bits3.gen7_untyped_rw.bti = bti;
@@ -87,7 +87,7 @@ namespace gbe
                                           unsigned char msg_type, uint32_t msg_length, bool header_present)
   {
     Gen8NativeInstruction *gen8_insn = &insn->gen8_insn;
-    const GenMessageTarget sfid = GEN_SFID_DATAPORT1_DATA_CACHE;
+    const GenMessageTarget sfid = GEN_SFID_DATAPORT1_DATA;
     setMessageDescriptor(insn, sfid, msg_length, 0, header_present);
     gen8_insn->bits3.gen7_typed_rw.bti = bti;
     gen8_insn->bits3.gen7_typed_rw.msg_type = msg_type;
@@ -116,7 +116,7 @@ namespace gbe
     this->setSrc0(insn, GenRegister::ud8grf(src.nr, 0));
     this->setSrc1(insn, GenRegister::immud(0));
 
-    const GenMessageTarget sfid = GEN_SFID_DATAPORT1_DATA_CACHE;
+    const GenMessageTarget sfid = GEN_SFID_DATAPORT1_DATA;
     setMessageDescriptor(insn, sfid, msg_length, response_length);
     gen8_insn->bits3.gen7_atomic_op.msg_type = GEN75_P1_UNTYPED_ATOMIC_OP;
     gen8_insn->bits3.gen7_atomic_op.bti = bti;
diff --git a/backend/src/backend/gen_defs.hpp b/backend/src/backend/gen_defs.hpp
index 9b9dcb8..b40096d 100644
--- a/backend/src/backend/gen_defs.hpp
+++ b/backend/src/backend/gen_defs.hpp
@@ -201,18 +201,18 @@ enum GenAtomicOpCode {
 /*! Gen SFID */
 enum GenMessageTarget {
   GEN_SFID_NULL                     = 0,
-  GEN_SFID_MATH                     = 1,
+  GEN_SFID_RESERVED                 = 1,
   GEN_SFID_SAMPLER                  = 2,
   GEN_SFID_MESSAGE_GATEWAY          = 3,
-  GEN_SFID_DATAPORT_READ            = 4,
-  GEN_SFID_DATAPORT_WRITE           = 5,
+  GEN_SFID_DATAPORT_SAMPLER         = 4,
+  GEN_SFID_DATAPORT_RENDER          = 5,
   GEN_SFID_URB                      = 6,
   GEN_SFID_THREAD_SPAWNER           = 7,
-  GEN6_SFID_DATAPORT_SAMPLER_CACHE  = 4,
-  GEN6_SFID_DATAPORT_RENDER_CACHE   = 5,
-  GEN6_SFID_DATAPORT_CONSTANT_CACHE = 9,
-  GEN_SFID_DATAPORT_DATA_CACHE      = 10,
-  GEN_SFID_DATAPORT1_DATA_CACHE     = 12,
+  GEN_SFID_VIDEO_MOTION_EST         = 8,
+  GEN_SFID_DATAPORT_CONSTANT        = 9,
+  GEN_SFID_DATAPORT_DATA            = 10,
+  GEN_SFID_PIXEL_INTERPOLATOR       = 11,
+  GEN_SFID_DATAPORT1_DATA           = 12, /* New for HSW and BDW. */
 };
 
 #define GEN_PREDICATE_NONE                    0
diff --git a/backend/src/backend/gen_encoder.cpp b/backend/src/backend/gen_encoder.cpp
index 29bc806..f799ad7 100644
--- a/backend/src/backend/gen_encoder.cpp
+++ b/backend/src/backend/gen_encoder.cpp
@@ -115,7 +115,7 @@ namespace gbe
                                         unsigned char msg_type, uint32_t msg_length,
                                         bool header_present)
   {
-    const GenMessageTarget sfid = GEN6_SFID_DATAPORT_RENDER_CACHE;
+    const GenMessageTarget sfid = GEN_SFID_DATAPORT_RENDER;
     setMessageDescriptor(insn, sfid, msg_length, 0, header_present);
     insn->bits3.gen7_typed_rw.bti = bti;
     insn->bits3.gen7_typed_rw.msg_type = msg_type;
@@ -125,7 +125,7 @@ namespace gbe
                                   uint32_t rgba, uint32_t msg_type,
                                   uint32_t msg_length, uint32_t response_length)
   {
-    const GenMessageTarget sfid = GEN_SFID_DATAPORT_DATA_CACHE;
+    const GenMessageTarget sfid = GEN_SFID_DATAPORT_DATA;
     setMessageDescriptor(insn, sfid, msg_length, response_length);
     insn->bits3.gen7_untyped_rw.msg_type = msg_type;
     insn->bits3.gen7_untyped_rw.bti = bti;
@@ -146,7 +146,7 @@ namespace gbe
                                      uint32_t msg_length,
                                      uint32_t response_length)
   {
-    const GenMessageTarget sfid = GEN_SFID_DATAPORT_DATA_CACHE;
+    const GenMessageTarget sfid = GEN_SFID_DATAPORT_DATA;
     p->setMessageDescriptor(insn, sfid, msg_length, response_length);
     insn->bits3.gen7_byte_rw.msg_type = msg_type;
     insn->bits3.gen7_byte_rw.bti = bti;
@@ -167,7 +167,7 @@ namespace gbe
                           uint32_t msg_length,
                           uint32_t response_length)
   {
-    const GenMessageTarget sfid = GEN_SFID_DATAPORT_DATA_CACHE;
+    const GenMessageTarget sfid = GEN_SFID_DATAPORT_DATA;
     p->setMessageDescriptor(insn, sfid, msg_length, response_length);
     assert(size == 2 || size == 4);
     insn->bits3.gen7_oblock_rw.msg_type = msg_type;
@@ -208,7 +208,7 @@ namespace gbe
     // message causes a hang at unit test case compiler_global_constant.
     // We workaround it to use DATA CACHE instead.
     const GenMessageTarget sfid = (p->deviceID == PCI_CHIP_BAYTRAIL_T) ?
-                                 GEN_SFID_DATAPORT_DATA_CACHE : GEN6_SFID_DATAPORT_CONSTANT_CACHE;
+                                 GEN_SFID_DATAPORT_DATA : GEN_SFID_DATAPORT_CONSTANT;
     p->setMessageDescriptor(insn, sfid, msg_length, response_length);
     insn->bits3.gen7_dword_rw.msg_type = msg_type;
     insn->bits3.gen7_dword_rw.bti = bti;
@@ -399,7 +399,7 @@ namespace gbe
     this->setSrc0(insn, GenRegister::ud8grf(src.nr, 0));
     this->setSrc1(insn, GenRegister::immud(0));
 
-    const GenMessageTarget sfid = GEN_SFID_DATAPORT_DATA_CACHE;
+    const GenMessageTarget sfid = GEN_SFID_DATAPORT_DATA;
     setMessageDescriptor(insn, sfid, msg_length, response_length);
     insn->bits3.gen7_atomic_op.msg_type = GEN7_UNTYPED_ATOMIC_READ;
     insn->bits3.gen7_atomic_op.bti = bti;
@@ -791,7 +791,7 @@ namespace gbe
     this->setHeader(insn);
     this->setDst(insn, dst);
     this->setSrc0(insn, dst);
-    setMessageDescriptor(insn, GEN_SFID_DATAPORT_DATA_CACHE, 1, 1, 1);
+    setMessageDescriptor(insn, GEN_SFID_DATAPORT_DATA, 1, 1, 1);
     insn->bits3.gen7_memory_fence.msg_type = GEN_MEM_FENCE;
     insn->bits3.gen7_memory_fence.commit_enable = 0x1;
   }
@@ -1055,7 +1055,7 @@ namespace gbe
                                    uint32_t msg_length,
                                    uint32_t response_length)
   {
-     const GenMessageTarget sfid = GEN_SFID_DATAPORT_DATA_CACHE;
+     const GenMessageTarget sfid = GEN_SFID_DATAPORT_DATA;
      p->setMessageDescriptor(insn, sfid, msg_length, response_length, true);
      insn->bits3.gen7_scratch_rw.block_size = block_size;
      insn->bits3.gen7_scratch_rw.msg_type = msg_type;
-- 
1.7.9.5



More information about the Beignet mailing list