glsl: Add unary ir_expression constructor

This commit is contained in:
Ian Romanick
2010-11-09 14:19:10 -08:00
parent 8e498050dc
commit 13f57d42b6
2 changed files with 21 additions and 0 deletions

View File

@@ -191,9 +191,22 @@ ir_assignment::ir_assignment(ir_rvalue *lhs, ir_rvalue *rhs,
}
ir_expression::ir_expression(int op, const struct glsl_type *type,
ir_rvalue *op0)
{
assert(get_num_operands(ir_expression_operation(op)) == 1);
this->ir_type = ir_type_expression;
this->type = type;
this->operation = ir_expression_operation(op);
this->operands[0] = op0;
this->operands[1] = NULL;
}
ir_expression::ir_expression(int op, const struct glsl_type *type,
ir_rvalue *op0, ir_rvalue *op1)
{
assert((op1 == NULL) && (get_num_operands(ir_expression_operation(op)) == 1)
|| (get_num_operands(ir_expression_operation(op)) == 2));
this->ir_type = ir_type_expression;
this->type = type;
this->operation = ir_expression_operation(op);

View File

@@ -832,6 +832,14 @@ enum ir_expression_operation {
class ir_expression : public ir_rvalue {
public:
/**
* Constructor for unary operation expressions
*/
ir_expression(int op, const struct glsl_type *type, ir_rvalue *);
/**
* Constructor for binary operation expressions
*/
ir_expression(int op, const struct glsl_type *type,
ir_rvalue *, ir_rvalue *);