i965: fix unsigned long overflows for i386

bit-shifts on 32 bit unsigned longs overflow in several places.  The
intention was for 64 bit integers to be used.
This commit is contained in:
Mark Janes 2016-02-01 14:28:00 -08:00
parent 8776d3cb8e
commit ac0589b213
4 changed files with 12 additions and 12 deletions

View file

@ -47,7 +47,7 @@ union __gen_value {
static inline uint64_t static inline uint64_t
__gen_mbo(uint32_t start, uint32_t end) __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 static inline uint64_t
@ -56,7 +56,7 @@ __gen_field(uint64_t v, uint32_t start, uint32_t end)
__gen_validate_value(v); __gen_validate_value(v);
#if DEBUG #if DEBUG
if (end - start + 1 < 64) if (end - start + 1 < 64)
assert(v < 1ul << (end - start + 1)); assert(v < 1ull << (end - start + 1));
#endif #endif
return v << start; return v << start;
@ -97,7 +97,7 @@ __gen_offset(uint64_t v, uint32_t start, uint32_t end)
{ {
__gen_validate_value(v); __gen_validate_value(v);
#if DEBUG #if DEBUG
uint64_t mask = (~0ul >> (64 - (end - start + 1))) << start; uint64_t mask = (~0ull >> (64 - (end - start + 1))) << start;
assert((v & ~mask) == 0); assert((v & ~mask) == 0);
#endif #endif

View file

@ -47,7 +47,7 @@ union __gen_value {
static inline uint64_t static inline uint64_t
__gen_mbo(uint32_t start, uint32_t end) __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 static inline uint64_t
@ -56,7 +56,7 @@ __gen_field(uint64_t v, uint32_t start, uint32_t end)
__gen_validate_value(v); __gen_validate_value(v);
#if DEBUG #if DEBUG
if (end - start + 1 < 64) if (end - start + 1 < 64)
assert(v < 1ul << (end - start + 1)); assert(v < 1ull << (end - start + 1));
#endif #endif
return v << start; return v << start;
@ -97,7 +97,7 @@ __gen_offset(uint64_t v, uint32_t start, uint32_t end)
{ {
__gen_validate_value(v); __gen_validate_value(v);
#if DEBUG #if DEBUG
uint64_t mask = (~0ul >> (64 - (end - start + 1))) << start; uint64_t mask = (~0ull >> (64 - (end - start + 1))) << start;
assert((v & ~mask) == 0); assert((v & ~mask) == 0);
#endif #endif

View file

@ -47,7 +47,7 @@ union __gen_value {
static inline uint64_t static inline uint64_t
__gen_mbo(uint32_t start, uint32_t end) __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 static inline uint64_t
@ -56,7 +56,7 @@ __gen_field(uint64_t v, uint32_t start, uint32_t end)
__gen_validate_value(v); __gen_validate_value(v);
#if DEBUG #if DEBUG
if (end - start + 1 < 64) if (end - start + 1 < 64)
assert(v < 1ul << (end - start + 1)); assert(v < 1ull << (end - start + 1));
#endif #endif
return v << start; return v << start;
@ -97,7 +97,7 @@ __gen_offset(uint64_t v, uint32_t start, uint32_t end)
{ {
__gen_validate_value(v); __gen_validate_value(v);
#if DEBUG #if DEBUG
uint64_t mask = (~0ul >> (64 - (end - start + 1))) << start; uint64_t mask = (~0ull >> (64 - (end - start + 1))) << start;
assert((v & ~mask) == 0); assert((v & ~mask) == 0);
#endif #endif

View file

@ -47,7 +47,7 @@ union __gen_value {
static inline uint64_t static inline uint64_t
__gen_mbo(uint32_t start, uint32_t end) __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 static inline uint64_t
@ -56,7 +56,7 @@ __gen_field(uint64_t v, uint32_t start, uint32_t end)
__gen_validate_value(v); __gen_validate_value(v);
#if DEBUG #if DEBUG
if (end - start + 1 < 64) if (end - start + 1 < 64)
assert(v < 1ul << (end - start + 1)); assert(v < 1ull << (end - start + 1));
#endif #endif
return v << start; return v << start;
@ -97,7 +97,7 @@ __gen_offset(uint64_t v, uint32_t start, uint32_t end)
{ {
__gen_validate_value(v); __gen_validate_value(v);
#if DEBUG #if DEBUG
uint64_t mask = (~0ul >> (64 - (end - start + 1))) << start; uint64_t mask = (~0ull >> (64 - (end - start + 1))) << start;
assert((v & ~mask) == 0); assert((v & ~mask) == 0);
#endif #endif