intel: decoder: extract instruction/structs length
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Mon, 25 Sep 2017 23:54:49 +0000 (00:54 +0100)
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>
Wed, 1 Nov 2017 13:49:12 +0000 (13:49 +0000)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Scott D Phillips <scott.d.phillips@intel.com>
src/intel/common/gen_decoder.c
src/intel/common/gen_decoder.h

index 97e54cd44ac6a8124b44428947b2f456c26bb0f3..24c9fa79ad0008fadfcbbe7237f57fd99f3694a5 100644 (file)
@@ -162,6 +162,13 @@ create_group(struct parser_context *ctx,
    group->spec = ctx->spec;
    group->variable = false;
 
+   for (int i = 0; atts[i]; i += 2) {
+      char *p;
+      if (strcmp(atts[i], "length") == 0) {
+         group->dw_length = strtoul(atts[i + 1], &p, 0);
+      }
+   }
+
    if (parent) {
       group->parent = parent;
       get_group_offset_count(atts,
index 12d0c063ee9b1d1ec0d9607c59bd1a5c1582371d..5d5ce7825f429f93b279e8e78ad3adab140d5265 100644 (file)
@@ -87,6 +87,7 @@ struct gen_group {
 
    struct gen_field *fields; /* linked list of fields */
 
+   uint32_t dw_length;
    uint32_t group_offset, group_count;
    uint32_t group_size;
    bool variable;