Both functions return uint64_t, so I expect the masking/shifting should be done on 64-bit types. --- src/intel/genxml/gen_pack_header.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/intel/genxml/gen_pack_header.py b/src/intel/genxml/gen_pack_header.py index 9ef7122..47870b3 100644 --- a/src/intel/genxml/gen_pack_header.py +++ b/src/intel/genxml/gen_pack_header.py @@ -131,7 +131,7 @@ __gen_sfixed(float v, uint32_t start, uint32_t end, uint32_t fract_bits) assert(min <= v && v <= max); #endif - const int32_t int_val = roundf(v * factor); + const int64_t int_val = llroundf(v * factor); const uint64_t mask = ~0ull >> (64 - (end - start + 1)); return (int_val & mask) << start; @@ -150,7 +150,7 @@ __gen_ufixed(float v, uint32_t start, uint32_t end, uint32_t fract_bits) assert(min <= v && v <= max); #endif - const uint32_t uint_val = roundf(v * factor); + const uint64_t uint_val = llroundf(v * factor); return uint_val << start; } -- 2.7.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev