Lines Matching refs:group
73 struct v3d_group *group;
88 v3d_group_get_name(struct v3d_group *group)
90 return group->name;
94 v3d_group_get_opcode(struct v3d_group *group)
96 return group->opcode;
220 struct v3d_group *group;
222 group = xzalloc(sizeof(*group));
224 group->name = xstrdup(name);
226 group->spec = ctx->spec;
227 group->group_offset = 0;
228 group->group_count = 0;
229 group->variable = false;
232 group->parent = parent;
234 &group->group_offset,
235 &group->group_count,
236 &group->group_size,
237 &group->variable);
240 return group;
411 if (ctx->group->nfields == ctx->group->fields_size) {
412 ctx->group->fields_size = MAX2(ctx->group->fields_size * 2, 2);
413 ctx->group->fields =
414 (struct v3d_field **) realloc(ctx->group->fields,
415 sizeof(ctx->group->fields[0]) *
416 ctx->group->fields_size);
419 ctx->group->fields[ctx->group->nfields++] = create_field(ctx, atts);
423 set_group_opcode(struct v3d_group *group, const char **atts)
430 group->opcode = strtoul(atts[i + 1], &p, 0);
500 ctx->group = create_group(ctx, name, atts, NULL);
503 set_group_opcode(ctx->group, atts);
505 ctx->group = create_group(ctx, name, atts, NULL);
506 get_register_offset(atts, &ctx->group->register_offset);
507 } else if (strcmp(element_name, "group") == 0) {
508 struct v3d_group *previous_group = ctx->group;
512 struct v3d_group *group = create_group(ctx, "", atts,
513 ctx->group);
514 previous_group->next = group;
515 ctx->group = group;
553 struct v3d_group *group = ctx->group;
555 ctx->group = ctx->group->parent;
558 spec->commands[spec->ncommands++] = group;
564 for (int i = 0; i < group->nfields; i++) {
565 group->fields[i]->start += 8;
566 group->fields[i]->end += 8;
570 spec->structs[spec->nstructs++] = group;
572 spec->registers[spec->nregisters++] = group;
578 qsort(group->fields, group->nfields, sizeof(*group->fields),
584 } else if (strcmp(name, "group") == 0) {
585 ctx->group = ctx->group->parent;
587 assert(ctx->group->nfields > 0);
588 struct v3d_field *field = ctx->group->fields[ctx->group->nfields - 1];
745 struct v3d_group *group = spec->commands[i];
747 if (opcode != group->opcode)
754 for (int j = 0; j < group->nfields; j++) {
755 struct v3d_field *field = group->fields[j];
767 return group;
775 v3d_group_get_length(struct v3d_group *group)
778 for (int i = 0; i < group->nfields; i++) {
779 struct v3d_field *field = group->fields[i];
788 struct v3d_group *group,
793 iter->group = group;
811 return iter->field_iter < iter->group->nfields;
818 return iter->group->group_offset + (group_iter *
819 iter->group->group_size);
825 if (iter->group->variable) {
827 (v3d_group_get_length(iter->group) * 8);
829 return (iter->group_iter + 1) < iter->group->group_count ||
830 iter->group->next != NULL;
837 if (iter->group->variable)
840 if ((iter->group_iter + 1) < iter->group->group_count) {
843 iter->group = iter->group->next;
861 iter->field = iter->group->fields[iter->field_iter++];
952 v3d_spec_find_struct(iter->group->spec,
985 if (strlen(iter->group->name) == 0) {
1001 v3d_print_group(struct clif_dump *clif, struct v3d_group *group,
1006 v3d_field_iterator_init(&iter, group, p);