pan/bi: Add branch constant field to IR

The offsets used for branches need some extra bits twiddled, so add a
field to the clause to indicate this is happening. This is not ambiguous
since a clause can only have a single branch.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260>
This commit is contained in:
Alyssa Rosenzweig 2020-05-28 12:53:22 -04:00 committed by Marge Bot
parent f1298ae336
commit 627872ef7f
2 changed files with 9 additions and 0 deletions

View file

@ -479,6 +479,9 @@ bi_print_clause(bi_clause *clause, FILE *fp)
for (unsigned i = 0; i < clause->constant_count; ++i)
fprintf(fp, "%" PRIx64 " ", clause->constants[i]);
if (clause->branch_constant)
fprintf(fp, "*");
fprintf(fp, "\n");
}
}

View file

@ -376,6 +376,12 @@ typedef struct {
uint64_t constants[8];
unsigned constant_count;
/* Branches encode a constant offset relative to the program counter
* with some magic flags. By convention, if there is a branch, its
* constant will be last. Set this flag to indicate this is required.
*/
bool branch_constant;
/* What type of high latency instruction is here, basically */
unsigned clause_type;
} bi_clause;