On Fri, Jul 27, 2012 at 10:49:23AM -0700, Kenneth Graunke wrote: > From: Ian Romanick <ian.d.roman...@intel.com> > > This matches the typeless constructors for unop and binop > ir_expressions. > > Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> > Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> > --- > src/glsl/ir.cpp | 17 +++++++++++++++++ > src/glsl/ir.h | 2 ++ > 2 files changed, 19 insertions(+) > > diff --git a/src/glsl/ir.cpp b/src/glsl/ir.cpp > index b0e38d8..5faf34a 100644 > --- a/src/glsl/ir.cpp > +++ b/src/glsl/ir.cpp > @@ -236,6 +236,23 @@ ir_expression::ir_expression(int op, const struct > glsl_type *type, > this->operands[3] = op3; > } > > +ir_expression::ir_expression(int op, ir_rvalue *op0, ir_rvalue *op1, > + ir_rvalue *op2, ir_rvalue *op3) > +{ > + assert(op0->type->is_scalar()); > + assert((op0->type == op1->type) > + && (op0->type == op2->type) > + && (op0->type == op3->type)); > + > + this->ir_type = ir_type_expression; > + this->type = glsl_type::get_instance(op0->type->base_type, 4, 1); > + this->operation = ir_expression_operation(op);
You're hardcoding ir_quadop_vector's properties here. A comment saying so could be useful, if other quadops with different properties happen someday. In fact, you're hardcoding them so hard passing "op" may not make sense. A static method ir_expression *ir_expression::build_quadop_vector perhaps? OG. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev