On Mon, Jun 27, 2016 at 3:27 PM, Brian Paul <bri...@vmware.com> wrote: > On 06/27/2016 03:42 PM, Matt Turner wrote: >> >> --- >> src/compiler/glsl/ir_constant_expression.cpp | 11 +++-------- >> src/compiler/glsl/link_uniform_initializers.cpp | 3 +-- >> 2 files changed, 4 insertions(+), 10 deletions(-) >> >> diff --git a/src/compiler/glsl/ir_constant_expression.cpp >> b/src/compiler/glsl/ir_constant_expression.cpp >> index e79d5ef..7c6a17d 100644 >> --- a/src/compiler/glsl/ir_constant_expression.cpp >> +++ b/src/compiler/glsl/ir_constant_expression.cpp >> @@ -1573,18 +1573,13 @@ ir_expression::constant_expression_value(struct >> hash_table *variable_context) >> data.f[c] = CLAMP(op[0]->value.f[c], 0.0f, 1.0f); >> } >> break; >> - case ir_unop_pack_double_2x32: { >> + case ir_unop_pack_double_2x32: >> /* XXX needs to be checked on big-endian */ >> - uint64_t temp; >> - temp = (uint64_t)op[0]->value.u[0] | ((uint64_t)op[0]->value.u[1] >> << 32); >> - data.d[0] = *(double *)&temp; >> - >> + memcpy(&data.d[0], &op[0]->value.u[0], sizeof(double)); >> break; >> - } >> case ir_unop_unpack_double_2x32: >> /* XXX needs to be checked on big-endian */ >> - data.u[0] = *(uint32_t *)&op[0]->value.d[0]; >> - data.u[1] = *((uint32_t *)&op[0]->value.d[0] + 1); >> + memcpy(&data.u[0], &op[0]->value.d[0], sizeof(double)); >> break; >> >> case ir_triop_bitfield_extract: { >> diff --git a/src/compiler/glsl/link_uniform_initializers.cpp >> b/src/compiler/glsl/link_uniform_initializers.cpp >> index acf8222..98a2397 100644 >> --- a/src/compiler/glsl/link_uniform_initializers.cpp >> +++ b/src/compiler/glsl/link_uniform_initializers.cpp >> @@ -65,8 +65,7 @@ copy_constant_to_storage(union gl_constant_value >> *storage, >> break; >> case GLSL_TYPE_DOUBLE: >> /* XXX need to check on big-endian */ >> - storage[i * 2].u = *(uint32_t *)&val->value.d[i]; >> - storage[i * 2 + 1].u = *(((uint32_t *)&val->value.d[i]) + 1); >> + memcpy(&storage[i * 2].u, &val->value.d[i], sizeof(double)); >> break; >> case GLSL_TYPE_BOOL: >> storage[i].b = val->value.b[i] ? boolean_true : 0; >> > > For 2-7, Reviewed-by: Brian Paul <bri...@vmware.com>
Thank you. > Though, in patch 6, as long as you're there, I wonder if we should use > parenthesized (offset) in the macro bodies, just to be safe. Oh! Sure. Thanks for the suggestion. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev