diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/glsl/ir.cpp | 13 | ||||
-rw-r--r-- | src/glsl/ir.h | 8 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/glsl/ir.cpp b/src/glsl/ir.cpp index 308b7c2010..1f5e2ebdcb 100644 --- a/src/glsl/ir.cpp +++ b/src/glsl/ir.cpp @@ -192,8 +192,21 @@ 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); diff --git a/src/glsl/ir.h b/src/glsl/ir.h index 960cd8bab4..99fdaa3b09 100644 --- a/src/glsl/ir.h +++ b/src/glsl/ir.h @@ -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 *); |