diff options
author | marha <marha@users.sourceforge.net> | 2013-09-18 08:03:04 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-09-18 08:03:04 +0200 |
commit | 7f669a708bd35bdf8e842f762ec68f9ad0ec0486 (patch) | |
tree | 332fc6d6e6f70503d717249e4e387bf3eea29637 /mesalib/src/glsl/ir_constant_expression.cpp | |
parent | a7d3f63ee5e292379ed6d6eba0c65512205a4786 (diff) | |
download | vcxsrv-7f669a708bd35bdf8e842f762ec68f9ad0ec0486.tar.gz vcxsrv-7f669a708bd35bdf8e842f762ec68f9ad0ec0486.tar.bz2 vcxsrv-7f669a708bd35bdf8e842f762ec68f9ad0ec0486.zip |
libX11 mesa pixman xserver git update 18 Sep 2013
xserver commit 8010d3a48bd0b224dcb0883e39c2351ad364d846
libX11 commit 5dcb40f28d59587597d2ff6e6ac64c71cfe6ff7b
pixman commit 58a79dfe6d1fd62c2b66c69fdb64f6b8ecf61da5
mesa commit a3b51a22f71819236baa6bbda9d0d050914b149d
Diffstat (limited to 'mesalib/src/glsl/ir_constant_expression.cpp')
-rw-r--r-- | mesalib/src/glsl/ir_constant_expression.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/mesalib/src/glsl/ir_constant_expression.cpp b/mesalib/src/glsl/ir_constant_expression.cpp index a67470bf3..4579ef209 100644 --- a/mesalib/src/glsl/ir_constant_expression.cpp +++ b/mesalib/src/glsl/ir_constant_expression.cpp @@ -394,6 +394,7 @@ ir_expression::constant_expression_value(struct hash_table *variable_context) switch (this->operation) { case ir_binop_lshift: case ir_binop_rshift: + case ir_binop_ldexp: case ir_binop_vector_extract: case ir_triop_csel: case ir_triop_bitfield_extract: @@ -1376,6 +1377,15 @@ ir_expression::constant_expression_value(struct hash_table *variable_context) break; } + case ir_binop_ldexp: + for (unsigned c = 0; c < components; c++) { + data.f[c] = ldexp(op[0]->value.f[c], op[1]->value.i[c]); + /* Flush subnormal values to zero. */ + if (!isnormal(data.f[c])) + data.f[c] = copysign(0.0, op[0]->value.f[c]); + } + break; + case ir_triop_fma: assert(op[0]->type->base_type == GLSL_TYPE_FLOAT); assert(op[1]->type->base_type == GLSL_TYPE_FLOAT); |