Lines Matching refs:instructions
62 exec_list *instructions);
65 _mesa_ast_to_hir(exec_list *instructions, struct _mesa_glsl_parse_state *state)
67 _mesa_glsl_initialize_variables(instructions, state);
73 state->toplevel_ir = instructions;
91 ast->hir(instructions, state);
93 detect_recursion_unlinked(state, instructions);
94 detect_conflicting_assignments(state, instructions);
672 do_assignment(exec_list *instructions, struct _mesa_glsl_parse_state *state,
762 instructions->push_tail(var);
763 instructions->push_tail(new(ctx) ir_assignment(deref_var, rhs));
767 instructions->push_tail(new(ctx) ir_assignment(lhs, deref_var));
773 get_lvalue_copy(exec_list *instructions, ir_rvalue *lvalue)
780 instructions->push_tail(var);
783 instructions->push_tail(new(ctx) ir_assignment(new(ctx) ir_dereference_variable(var),
791 ast_node::hir(exec_list *instructions,
794 (void) instructions;
884 get_scalar_boolean_operand(exec_list *instructions,
893 ir_rvalue *val = expr->hir(instructions, state);
970 ast_expression::hir(exec_list *instructions,
1001 * to multiple IR instructions.
1039 op[0] = this->subexpressions[0]->hir(instructions, state);
1040 op[1] = this->subexpressions[1]->hir(instructions, state);
1042 result = do_assignment(instructions, state,
1051 op[0] = this->subexpressions[0]->hir(instructions, state);
1061 op[0] = this->subexpressions[0]->hir(instructions, state);
1075 op[0] = this->subexpressions[0]->hir(instructions, state);
1076 op[1] = this->subexpressions[1]->hir(instructions, state);
1088 op[0] = this->subexpressions[0]->hir(instructions, state);
1089 op[1] = this->subexpressions[1]->hir(instructions, state);
1108 op[0] = this->subexpressions[0]->hir(instructions, state);
1109 op[1] = this->subexpressions[1]->hir(instructions, state);
1121 op[0] = this->subexpressions[0]->hir(instructions, state);
1122 op[1] = this->subexpressions[1]->hir(instructions, state);
1140 op[0] = this->subexpressions[0]->hir(instructions, state);
1141 op[1] = this->subexpressions[1]->hir(instructions, state);
1176 op[0] = this->subexpressions[0]->hir(instructions, state);
1177 op[1] = this->subexpressions[1]->hir(instructions, state);
1186 op[0] = this->subexpressions[0]->hir(instructions, state);
1204 op[0] = get_scalar_boolean_operand(instructions, state, this, 0,
1216 instructions->push_tail(tmp);
1219 instructions->push_tail(stmt);
1240 op[0] = get_scalar_boolean_operand(instructions, state, this, 0,
1252 instructions->push_tail(tmp);
1255 instructions->push_tail(stmt);
1281 op[0] = get_scalar_boolean_operand(instructions, state, this, 0, "LHS",
1283 op[1] = get_scalar_boolean_operand(instructions, state, this, 1, "RHS",
1291 op[0] = get_scalar_boolean_operand(instructions, state, this, 0,
1302 op[0] = this->subexpressions[0]->hir(instructions, state);
1303 op[1] = this->subexpressions[1]->hir(instructions, state);
1312 result = do_assignment(instructions, state,
1327 op[0] = this->subexpressions[0]->hir(instructions, state);
1328 op[1] = this->subexpressions[1]->hir(instructions, state);
1338 result = do_assignment(instructions, state,
1348 op[0] = this->subexpressions[0]->hir(instructions, state);
1349 op[1] = this->subexpressions[1]->hir(instructions, state);
1354 result = do_assignment(instructions, state,
1365 op[0] = this->subexpressions[0]->hir(instructions, state);
1366 op[1] = this->subexpressions[1]->hir(instructions, state);
1371 result = do_assignment(instructions, state,
1386 op[0] = get_scalar_boolean_operand(instructions, state, this, 0,
1444 instructions->push_tail(tmp);
1447 instructions->push_tail(stmt);
1473 op[0] = this->subexpressions[0]->hir(instructions, state);
1482 result = do_assignment(instructions, state,
1494 op[0] = this->subexpressions[0]->hir(instructions, state);
1508 result = get_lvalue_copy(instructions, op[0]->clone(ctx, NULL));
1510 (void)do_assignment(instructions, state,
1520 result = _mesa_ast_field_selection_to_hir(this, instructions, state);
1526 op[0] = subexpressions[0]->hir(instructions, state);
1527 op[1] = subexpressions[1]->hir(instructions, state);
1739 * therefore add instructions to the instruction list), they get dropped
1750 * instructions->tail_pred will point to the last instruction in the
1762 if (previous_tail_pred == instructions->tail_pred) {
1773 previous_tail_pred = instructions->tail_pred;
1776 result = ast->hir(instructions, state);
1796 ast_expression_statement::hir(exec_list *instructions,
1809 expression->hir(instructions, state);
1818 ast_compound_statement::hir(exec_list *instructions,
1825 ast->hir(instructions, state);
1877 instructions should have been emitted
1880 * we are emitting unnecessary instructions.
2467 ast_declarator_list::hir(exec_list *instructions,
2538 (void) this->type->specifier->hir(instructions, state);
2880 /* Process the initializer and add its instructions to a temporary
2960 instructions->push_head(var);
2963 instructions->append_list(&initializer_instructions);
2981 ast_parameter_declarator::hir(exec_list *instructions,
3085 instructions->push_tail(var);
3136 ast_function::hir(exec_list *instructions,
3150 (void) instructions;
3299 ast_function_definition::hir(exec_list *instructions,
3303 prototype->hir(instructions, state);
3358 ast_jump_statement::hir(exec_list *instructions,
3369 ir_rvalue *const ret = opt_return_value->hir(instructions, state);
3408 instructions->push_tail(inst);
3419 instructions->push_tail(new(ctx) ir_discard);
3446 state->loop_nesting_ast->rest_expression->hir(instructions,
3461 instructions->push_tail(set_break_var);
3468 instructions->push_tail(jump);
3475 /* Jump instructions do not have r-values.
3482 ast_selection_statement::hir(exec_list *instructions,
3487 ir_rvalue *const condition = this->condition->hir(instructions, state);
3519 instructions->push_tail(stmt);
3528 ast_switch_statement::hir(exec_list *instructions,
3534 this->test_expression->hir(instructions, state);
3568 instructions->push_tail(state->switch_state.is_fallthru_var);
3572 instructions->push_tail(new(ctx) ir_assignment(deref_is_fallthru_var,
3581 instructions->push_tail(state->switch_state.is_break_var);
3585 instructions->push_tail(new(ctx) ir_assignment(deref_is_break_var,
3590 test_to_hir(instructions, state);
3594 body->hir(instructions, state);
3606 ast_switch_statement::test_to_hir(exec_list *instructions,
3613 test_expression->hir(instructions,
3622 instructions->push_tail(state->switch_state.test_var);
3623 instructions->push_tail(new(ctx) ir_assignment(deref_test_var, test_val));
3628 ast_switch_body::hir(exec_list *instructions,
3632 stmts->hir(instructions, state);
3639 ast_case_statement_list::hir(exec_list *instructions,
3643 case_stmt->hir(instructions, state);
3650 ast_case_statement::hir(exec_list *instructions,
3653 labels->hir(instructions, state);
3665 instructions->push_tail(reset_fallthru_on_break);
3675 instructions->push_tail(test_fallthru);
3683 ast_case_label_list::hir(exec_list *instructions,
3687 label->hir(instructions, state);
3694 ast_case_label::hir(exec_list *instructions,
3709 ir_rvalue *const label_rval = this->test_value->hir(instructions, state);
3753 instructions->push_tail(set_fallthru_on_test);
3770 instructions->push_tail(set_fallthru);
3813 ast_iteration_statement::hir(exec_list *instructions,
3824 init_statement->hir(instructions, state);
3827 instructions->push_tail(stmt);
3866 ast_type_specifier::hir(exec_list *instructions,
3922 return this->structure->hir(instructions, state);
3929 ast_struct_specifier::hir(exec_list *instructions,
3959 decl_list->type->specifier->hir(instructions, state);
4032 ast_uniform_block::hir(exec_list *instructions,
4102 instructions->append_list(&declared_variables);
4110 exec_list *instructions)
4121 foreach_list(node, instructions) {