Merge zizzer:/bk/newmem
into zeep.pool:/z/saidi/work/m5.newmem --HG-- extra : convert_revision : fd6464c9883783c7c2cbefba317f4a0f20dd24cb
This commit is contained in:
@@ -112,4 +112,29 @@ replaceBits(T& val, int first, int last, B bit_val)
|
||||
val = insertBits(val, first, last, bit_val);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the bit position of the MSB that is set in the input
|
||||
*/
|
||||
inline
|
||||
int
|
||||
findMsbSet(uint64_t val) {
|
||||
int msb = 0;
|
||||
if (!val)
|
||||
return 0;
|
||||
if (bits(val, 63,32)) msb += 32;
|
||||
val >>= 32;
|
||||
if (bits(val, 31,16)) msb += 16;
|
||||
val >>= 16;
|
||||
if (bits(val, 15,8)) msb += 8;
|
||||
val >>= 8;
|
||||
if (bits(val, 7,4)) msb += 4;
|
||||
val >>= 4;
|
||||
if (bits(val, 3,2)) msb += 2;
|
||||
val >>= 2;
|
||||
if (bits(val, 1,1)) msb += 1;
|
||||
return msb;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endif // __BASE_BITFIELD_HH__
|
||||
|
||||
Reference in New Issue
Block a user