aboutsummaryrefslogtreecommitdiffstats
path: root/src/intel/common
diff options
context:
space:
mode:
authorLionel Landwerlin <[email protected]>2017-09-26 00:54:49 +0100
committerLionel Landwerlin <[email protected]>2017-11-01 13:49:12 +0000
commit38f338c19a7803a218a9b3249c4d6b2600edd75a (patch)
tree8cb52dcba7159fcf21c5294feb498de060ad9312 /src/intel/common
parent279531672e39cb5a4ffd00bdbb8805d88a366334 (diff)
intel: decoder: extract instruction/structs length
Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Scott D Phillips <[email protected]>
Diffstat (limited to 'src/intel/common')
-rw-r--r--src/intel/common/gen_decoder.c7
-rw-r--r--src/intel/common/gen_decoder.h1
2 files changed, 8 insertions, 0 deletions
diff --git a/src/intel/common/gen_decoder.c b/src/intel/common/gen_decoder.c
index 97e54cd44ac..24c9fa79ad0 100644
--- a/src/intel/common/gen_decoder.c
+++ b/src/intel/common/gen_decoder.c
@@ -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,
diff --git a/src/intel/common/gen_decoder.h b/src/intel/common/gen_decoder.h
index 12d0c063ee9..5d5ce7825f4 100644
--- a/src/intel/common/gen_decoder.h
+++ b/src/intel/common/gen_decoder.h
@@ -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;