From: Eric Anholt Date: Fri, 26 Mar 2010 19:07:44 +0000 (-0700) Subject: Add constructors for immediate hir constants. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3c36b2df7c854d23b2be9580e416fb04079a1bef;p=mesa.git Add constructors for immediate hir constants. This will make ast_to_hir for inc/dec easier. --- diff --git a/ir.cpp b/ir.cpp index 06eb19691e7..4c1f307e8af 100644 --- a/ir.cpp +++ b/ir.cpp @@ -74,6 +74,34 @@ ir_constant::ir_constant(const struct glsl_type *type, const void *data) memcpy(& this->value, data, size * type->components()); } +ir_constant::ir_constant(float f) + : ir_rvalue() +{ + this->type = glsl_type::float_type; + this->value.f[0] = f; +} + +ir_constant::ir_constant(unsigned int u) + : ir_rvalue() +{ + this->type = glsl_type::uint_type; + this->value.u[0] = u; +} + +ir_constant::ir_constant(int i) + : ir_rvalue() +{ + this->type = glsl_type::int_type; + this->value.i[0] = i; +} + +ir_constant::ir_constant(bool b) + : ir_rvalue() +{ + this->type = glsl_type::bool_type; + this->value.b[0] = b; +} + ir_dereference::ir_dereference(ir_instruction *var) : ir_rvalue() diff --git a/ir.h b/ir.h index c52efe61781..a69f932c5a8 100644 --- a/ir.h +++ b/ir.h @@ -481,6 +481,10 @@ public: class ir_constant : public ir_rvalue { public: ir_constant(const struct glsl_type *type, const void *data); + ir_constant(bool b); + ir_constant(unsigned int u); + ir_constant(int i); + ir_constant(float f); virtual void accept(ir_visitor *v) {