diff options
author | Ian Romanick <ian.d.romanick@intel.com> | 2010-11-09 14:19:10 -0800 |
---|---|---|
committer | Ian Romanick <ian.d.romanick@intel.com> | 2010-11-19 15:00:25 -0800 |
commit | 13f57d42b6929f50d8ef8b4123f46a61c46fde7b (patch) | |
tree | d42f595a2bcfecbfa83a9bb2497eed1b4adba9d8 | |
parent | 8e498050dc1a1285c2218fdf4ea506c1cdcd9dd8 (diff) |
glsl: Add unary ir_expression constructor
-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 *); |