i965: fix unsigned long overflows for i386
authorMark Janes <mark.a.janes@intel.com>
Mon, 1 Feb 2016 22:28:00 +0000 (14:28 -0800)
committerMark Janes <mark.a.janes@intel.com>
Mon, 1 Feb 2016 22:52:22 +0000 (14:52 -0800)
bit-shifts on 32 bit unsigned longs overflow in several places.  The
intention was for 64 bit integers to be used.

src/vulkan/gen75_pack.h
src/vulkan/gen7_pack.h
src/vulkan/gen8_pack.h
src/vulkan/gen9_pack.h

index b012032190eabd95a842156f76ec3da2091b8464..7b098894ee2dee2ec0850e45776977311ce4528f 100644 (file)
@@ -47,7 +47,7 @@ union __gen_value {
 static inline uint64_t
 __gen_mbo(uint32_t start, uint32_t end)
 {
-   return (~0ul >> (64 - (end - start + 1))) << start;
+   return (~0ull >> (64 - (end - start + 1))) << start;
 }
 
 static inline uint64_t
@@ -56,7 +56,7 @@ __gen_field(uint64_t v, uint32_t start, uint32_t end)
    __gen_validate_value(v);
 #if DEBUG
    if (end - start + 1 < 64)
-      assert(v < 1ul << (end - start + 1));
+      assert(v < 1ull << (end - start + 1));
 #endif
 
    return v << start;
@@ -97,7 +97,7 @@ __gen_offset(uint64_t v, uint32_t start, uint32_t end)
 {
    __gen_validate_value(v);
 #if DEBUG
-   uint64_t mask = (~0ul >> (64 - (end - start + 1))) << start;
+   uint64_t mask = (~0ull >> (64 - (end - start + 1))) << start;
 
    assert((v & ~mask) == 0);
 #endif
index a3ba30a9745dca20a1774a2553aee35d7425392e..7b104c3ab3c2508f280b67795ba0f74b4e96f4b8 100644 (file)
@@ -47,7 +47,7 @@ union __gen_value {
 static inline uint64_t
 __gen_mbo(uint32_t start, uint32_t end)
 {
-   return (~0ul >> (64 - (end - start + 1))) << start;
+   return (~0ull >> (64 - (end - start + 1))) << start;
 }
 
 static inline uint64_t
@@ -56,7 +56,7 @@ __gen_field(uint64_t v, uint32_t start, uint32_t end)
    __gen_validate_value(v);
 #if DEBUG
    if (end - start + 1 < 64)
-      assert(v < 1ul << (end - start + 1));
+      assert(v < 1ull << (end - start + 1));
 #endif
 
    return v << start;
@@ -97,7 +97,7 @@ __gen_offset(uint64_t v, uint32_t start, uint32_t end)
 {
    __gen_validate_value(v);
 #if DEBUG
-   uint64_t mask = (~0ul >> (64 - (end - start + 1))) << start;
+   uint64_t mask = (~0ull >> (64 - (end - start + 1))) << start;
 
    assert((v & ~mask) == 0);
 #endif
index 042e0290a74dd94ce501ba71706d95f6f60aa41d..3c014b96147c8bd059edf8d312cb1158f3114ddb 100644 (file)
@@ -47,7 +47,7 @@ union __gen_value {
 static inline uint64_t
 __gen_mbo(uint32_t start, uint32_t end)
 {
-   return (~0ul >> (64 - (end - start + 1))) << start;
+   return (~0ull >> (64 - (end - start + 1))) << start;
 }
 
 static inline uint64_t
@@ -56,7 +56,7 @@ __gen_field(uint64_t v, uint32_t start, uint32_t end)
    __gen_validate_value(v);
 #if DEBUG
    if (end - start + 1 < 64)
-      assert(v < 1ul << (end - start + 1));
+      assert(v < 1ull << (end - start + 1));
 #endif
 
    return v << start;
@@ -97,7 +97,7 @@ __gen_offset(uint64_t v, uint32_t start, uint32_t end)
 {
    __gen_validate_value(v);
 #if DEBUG
-   uint64_t mask = (~0ul >> (64 - (end - start + 1))) << start;
+   uint64_t mask = (~0ull >> (64 - (end - start + 1))) << start;
 
    assert((v & ~mask) == 0);
 #endif
index db54e9cf85b630f86b97fbcae2dfbdd46a661143..df295f4900a3eb9c8517bcb4fc09d1035bf4fec9 100644 (file)
@@ -47,7 +47,7 @@ union __gen_value {
 static inline uint64_t
 __gen_mbo(uint32_t start, uint32_t end)
 {
-   return (~0ul >> (64 - (end - start + 1))) << start;
+   return (~0ull >> (64 - (end - start + 1))) << start;
 }
 
 static inline uint64_t
@@ -56,7 +56,7 @@ __gen_field(uint64_t v, uint32_t start, uint32_t end)
    __gen_validate_value(v);
 #if DEBUG
    if (end - start + 1 < 64)
-      assert(v < 1ul << (end - start + 1));
+      assert(v < 1ull << (end - start + 1));
 #endif
 
    return v << start;
@@ -97,7 +97,7 @@ __gen_offset(uint64_t v, uint32_t start, uint32_t end)
 {
    __gen_validate_value(v);
 #if DEBUG
-   uint64_t mask = (~0ul >> (64 - (end - start + 1))) << start;
+   uint64_t mask = (~0ull >> (64 - (end - start + 1))) << start;
 
    assert((v & ~mask) == 0);
 #endif