mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-14 22:00:28 +01:00
ir_reader: Make assignment conditions optional.
You can now simply write (assign (xy) <lhs> <rhs>) instead of the verbose (assign (constant bool (1)) (xy) <lhs> <rhs>).
This commit is contained in:
parent
b74ff382a4
commit
bbafd2b849
2 changed files with 13 additions and 11 deletions
|
|
@ -281,9 +281,6 @@ void ir_print_visitor::visit(ir_assignment *ir)
|
|||
|
||||
if (ir->condition)
|
||||
ir->condition->accept(this);
|
||||
else
|
||||
printf("(constant bool (1))");
|
||||
|
||||
|
||||
char mask[5];
|
||||
unsigned j = 0;
|
||||
|
|
|
|||
|
|
@ -538,20 +538,25 @@ ir_reader::read_rvalue(s_expression *expr)
|
|||
ir_assignment *
|
||||
ir_reader::read_assignment(s_expression *expr)
|
||||
{
|
||||
s_expression *cond_expr, *lhs_expr, *rhs_expr;
|
||||
s_expression *cond_expr = NULL;
|
||||
s_expression *lhs_expr, *rhs_expr;
|
||||
s_list *mask_list;
|
||||
|
||||
s_pattern pat[] = { "assign", cond_expr, mask_list, lhs_expr, rhs_expr };
|
||||
if (!MATCH(expr, pat)) {
|
||||
ir_read_error(expr, "expected (assign <condition> (<write mask>) "
|
||||
s_pattern pat4[] = { "assign", mask_list, lhs_expr, rhs_expr };
|
||||
s_pattern pat5[] = { "assign", cond_expr, mask_list, lhs_expr, rhs_expr };
|
||||
if (!MATCH(expr, pat4) && !MATCH(expr, pat5)) {
|
||||
ir_read_error(expr, "expected (assign [<condition>] (<write mask>) "
|
||||
"<lhs> <rhs>)");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ir_rvalue *condition = read_rvalue(cond_expr);
|
||||
if (condition == NULL) {
|
||||
ir_read_error(NULL, "when reading condition of assignment");
|
||||
return NULL;
|
||||
ir_rvalue *condition = NULL;
|
||||
if (cond_expr != NULL) {
|
||||
condition = read_rvalue(cond_expr);
|
||||
if (condition == NULL) {
|
||||
ir_read_error(NULL, "when reading condition of assignment");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
unsigned mask = 0;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue