genxml: Use llroundf() and store to appropriate type.
authorMatt Turner <mattst88@gmail.com>
Fri, 13 May 2016 20:25:41 +0000 (13:25 -0700)
committerMatt Turner <mattst88@gmail.com>
Mon, 16 May 2016 18:06:15 +0000 (11:06 -0700)
Both functions return uint64_t, so I expect the masking/shifting should
be done on 64-bit types.

Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
src/intel/genxml/gen_pack_header.py

index 9ef7122ae9e260cee5853766729a838c8ef21858..47870b30cea065e7aaa104c1af7fd30da02f250c 100644 (file)
@@ -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;
 }