Lines Matching refs:lsb
338 inline uint64_t ExtractUnsignedBitfield64(int msb, int lsb, uint64_t x) {
339 VIXL_ASSERT((static_cast<size_t>(msb) < sizeof(x) * 8) && (lsb >= 0) &&
340 (msb >= lsb));
341 if ((msb == 63) && (lsb == 0)) return x;
342 return (x >> lsb) & ((static_cast<uint64_t>(1) << (1 + msb - lsb)) - 1);
346 inline uint32_t ExtractUnsignedBitfield32(int msb, int lsb, uint64_t x) {
347 VIXL_ASSERT((static_cast<size_t>(msb) < sizeof(x) * 8) && (lsb >= 0) &&
348 (msb >= lsb));
349 return TruncateToUint32(ExtractUnsignedBitfield64(msb, lsb, x));
353 inline int64_t ExtractSignedBitfield64(int msb, int lsb, uint64_t x) {
354 VIXL_ASSERT((static_cast<size_t>(msb) < sizeof(x) * 8) && (lsb >= 0) &&
355 (msb >= lsb));
356 uint64_t temp = ExtractUnsignedBitfield64(msb, lsb, x);
358 if ((temp >> (msb - lsb)) == 1) {
359 temp |= ~UINT64_C(0) << (msb - lsb);
366 inline int32_t ExtractSignedBitfield32(int msb, int lsb, uint64_t x) {
367 VIXL_ASSERT((static_cast<size_t>(msb) < sizeof(x) * 8) && (lsb >= 0) &&
368 (msb >= lsb));
369 uint32_t temp = TruncateToUint32(ExtractSignedBitfield64(msb, lsb, x));