Lines Matching defs:bit

49 //-------------Non-zero bit search methods used by RegMask---------------------
162 int bit = _A[i] & -_A[i]; // Extract low bit
163 // Convert to bit number, return hi bit in pair
164 return OptoReg::Name((i<<_LogWordBits)+find_lowest_bit(bit)+1);
171 // Clear out partial bits; leave only bit pairs
175 bits &= ((bits & 0x55555555)<<1); // 1 hi-bit set for each pair
176 bits |= (bits>>1); // Smear 1 hi-bit into a pair
183 // Smear out partial bits; leave only bit pairs
187 bits |= ((bits & 0x55555555)<<1); // Smear lo bit hi per pair
188 bits |= ((bits & 0xAAAAAAAA)>>1); // Smear hi bit lo per pair
196 // Assert that the register mask contains only bit pairs.
200 int bit = bits & -bits; // Extract low bit
201 // Low bit is not odd means its mis-aligned.
202 if( (bit & 0x55555555) == 0 ) return false;
203 bits -= bit; // Remove bit from mask
204 // Check for aligned adjacent bit
205 if( (bits & (bit<<1)) == 0 ) return false;
206 bits -= (bit<<1); // Remove other halve of pair
213 // Return TRUE if the mask contains a single bit
216 int bit = -1; // Set to hold the one bit allowed
219 if( bit != -1 ) return false; // Already had bits, so fail
220 bit = _A[i] & -_A[i]; // Extract 1 bit from mask
221 if( bit != _A[i] ) return false; // Found many bits, so fail
224 // True for both the empty mask and for a single bit
233 int bit = -1; // Set to hold the one bit allowed
236 if( bit != -1 ) return false; // Already had bits, so fail
237 bit = _A[i] & -(_A[i]); // Extract 1 bit from mask
238 if( (bit << 1) != 0 ) { // Bit pair stays in same word?
239 if( (bit | (bit<<1)) != _A[i] )
240 return false; // Require adjacent bit pair and no more bits
242 if( bit != _A[i] ) return false; // Found many bits, so fail
245 return false; // Require 1 lo bit in next word
249 // True for both the empty mask and for a bit pair
262 int bit = _A[i] & -_A[i]; // Extract low bit
263 // Convert to bit number, return hi bit in pair
264 return OptoReg::Name((i<<_LogWordBits)+find_lowest_bit(bit)+(size-1));
271 // Clear out partial bits; leave only aligned adjacent bit pairs
283 sets |= (sets>>1); // Smear 1 hi-bit into a set
296 // Smear out partial bits to aligned adjacent bit sets
309 sets |= (sets<<1); // Smear 1 lo-bit into a set
327 // Assert that the register mask contains only bit sets.
331 int bit = bits & -bits; // Extract low bit
332 // Low bit is not odd means its mis-aligned.
333 if ((bit & low_bits_mask) == 0) return false;
334 // Do extra work since (bit << size) may overflow.
335 int hi_bit = bit << (size-1); // high bit
336 int set = hi_bit + ((hi_bit-1) & ~(bit-1));
351 int bit = -1; // Set to hold the one bit allowed
354 if (bit != -1)
356 bit = _A[i] & -_A[i]; // Extract low bit from mask
357 int hi_bit = bit << (size-1); // high bit
359 int set = hi_bit + ((hi_bit-1) & ~(bit-1));
361 return false; // Require adjacent bit set and no more bits
363 if (((-1) & ~(bit-1)) != _A[i])
367 int set = bit>>24;
375 // True for both the empty mask and for a bit set