Lines Matching refs:group

66         struct v3d_group *group;
79 v3d_group_get_name(struct v3d_group *group)
81 return group->name;
85 v3d_group_get_opcode(struct v3d_group *group)
87 return group->opcode;
209 struct v3d_group *group;
211 group = xzalloc(sizeof(*group));
213 group->name = xstrdup(name);
215 group->spec = ctx->spec;
216 group->group_offset = 0;
217 group->group_count = 0;
218 group->variable = false;
221 group->parent = parent;
223 &group->group_offset,
224 &group->group_count,
225 &group->group_size,
226 &group->variable);
229 return group;
400 if (ctx->group->nfields == ctx->group->fields_size) {
401 ctx->group->fields_size = MAX2(ctx->group->fields_size * 2, 2);
402 ctx->group->fields =
403 (struct v3d_field **) realloc(ctx->group->fields,
404 sizeof(ctx->group->fields[0]) *
405 ctx->group->fields_size);
408 ctx->group->fields[ctx->group->nfields++] = create_field(ctx, atts);
412 set_group_opcode(struct v3d_group *group, const char **atts)
419 group->opcode = strtoul(atts[i + 1], &p, 0);
489 ctx->group = create_group(ctx, name, atts, NULL);
492 set_group_opcode(ctx->group, atts);
494 ctx->group = create_group(ctx, name, atts, NULL);
495 get_register_offset(atts, &ctx->group->register_offset);
496 } else if (strcmp(element_name, "group") == 0) {
497 struct v3d_group *previous_group = ctx->group;
501 struct v3d_group *group = create_group(ctx, "", atts,
502 ctx->group);
503 previous_group->next = group;
504 ctx->group = group;
542 struct v3d_group *group = ctx->group;
544 ctx->group = ctx->group->parent;
547 spec->commands[spec->ncommands++] = group;
553 for (int i = 0; i < group->nfields; i++) {
554 group->fields[i]->start += 8;
555 group->fields[i]->end += 8;
559 spec->structs[spec->nstructs++] = group;
561 spec->registers[spec->nregisters++] = group;
567 qsort(group->fields, group->nfields, sizeof(*group->fields),
573 } else if (strcmp(name, "group") == 0) {
574 ctx->group = ctx->group->parent;
576 assert(ctx->group->nfields > 0);
577 struct v3d_field *field = ctx->group->fields[ctx->group->nfields - 1];
720 struct v3d_group *group = spec->commands[i];
722 if (opcode != group->opcode)
729 for (int j = 0; j < group->nfields; j++) {
730 struct v3d_field *field = group->fields[j];
742 return group;
750 v3d_group_get_length(struct v3d_group *group)
753 for (int i = 0; i < group->nfields; i++) {
754 struct v3d_field *field = group->fields[i];
763 struct v3d_group *group,
768 iter->group = group;
786 return iter->field_iter < iter->group->nfields;
793 return iter->group->group_offset + (group_iter *
794 iter->group->group_size);
800 if (iter->group->variable) {
802 (v3d_group_get_length(iter->group) * 8);
804 return (iter->group_iter + 1) < iter->group->group_count ||
805 iter->group->next != NULL;
812 if (iter->group->variable)
815 if ((iter->group_iter + 1) < iter->group->group_count) {
818 iter->group = iter->group->next;
836 iter->field = iter->group->fields[iter->field_iter++];
927 v3d_spec_find_struct(iter->group->spec,
960 if (strlen(iter->group->name) == 0) {
976 v3d_print_group(struct clif_dump *clif, struct v3d_group *group,
981 v3d_field_iterator_init(&iter, group, p);