Mesa (master): intel: decoder: simplify field_is_header()
Lionel Landwerlin
llandwerlin at kemper.freedesktop.org
Wed Nov 1 17:24:21 UTC 2017
Module: Mesa
Branch: master
Commit: 20156931bf456932a4b53ad6685da42a7ad33ec2
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=20156931bf456932a4b53ad6685da42a7ad33ec2
Author: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Date: Thu Sep 28 02:36:30 2017 +0100
intel: decoder: simplify field_is_header()
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Reviewed-by: Scott D Phillips <scott.d.phillips at intel.com>
---
src/intel/common/gen_decoder.c | 7 ++++---
src/intel/common/gen_decoder.h | 3 ++-
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/intel/common/gen_decoder.c b/src/intel/common/gen_decoder.c
index c0a46e5212..760a8769c5 100644
--- a/src/intel/common/gen_decoder.c
+++ b/src/intel/common/gen_decoder.c
@@ -288,6 +288,7 @@ create_field(struct parser_context *ctx, const char **atts)
struct gen_field *field;
field = rzalloc(ctx->group, struct gen_field);
+ field->parent = ctx->group;
for (int i = 0; atts[i]; i += 2) {
char *p;
@@ -960,7 +961,7 @@ print_dword_header(FILE *outfile,
}
bool
-gen_group_header_is_header(struct gen_group *group, struct gen_field *field)
+gen_field_is_header(struct gen_field *field)
{
uint32_t bits;
@@ -970,7 +971,7 @@ gen_group_header_is_header(struct gen_group *group, struct gen_field *field)
bits = (1U << (field->end - field->start + 1)) - 1;
bits <<= field->start;
- return (group->opcode_mask & bits) != 0;
+ return (field->parent->opcode_mask & bits) != 0;
}
void
@@ -987,7 +988,7 @@ gen_print_group(FILE *outfile, struct gen_group *group,
print_dword_header(outfile, &iter, offset, i);
last_dword = iter.dword;
}
- if (!gen_group_header_is_header(group, iter.field)) {
+ if (!gen_field_is_header(iter.field)) {
fprintf(outfile, " %s: %s\n", iter.name, iter.value);
if (iter.struct_desc) {
uint64_t struct_offset = offset + 4 * iter.dword;
diff --git a/src/intel/common/gen_decoder.h b/src/intel/common/gen_decoder.h
index f2291f43e9..9ee5fb51c2 100644
--- a/src/intel/common/gen_decoder.h
+++ b/src/intel/common/gen_decoder.h
@@ -56,7 +56,7 @@ int gen_group_get_length(struct gen_group *group, const uint32_t *p);
const char *gen_group_get_name(struct gen_group *group);
uint32_t gen_group_get_opcode(struct gen_group *group);
struct gen_enum *gen_spec_find_enum(struct gen_spec *spec, const char *name);
-bool gen_group_header_is_header(struct gen_group *group, struct gen_field *field);
+bool gen_field_is_header(struct gen_field *field);
struct gen_field_iterator {
struct gen_group *group;
@@ -145,6 +145,7 @@ struct gen_type {
};
struct gen_field {
+ struct gen_group *parent;
struct gen_field *next;
char *name;
More information about the mesa-commit
mailing list