/* * byte_bit_run_length_N[B], for 0 <= N <= 7, gives the length of the * run of 1-bits starting at bit N in a byte with value B, * numbering the bits in the byte as 01234567. If the run includes * the low-order bit (i.e., might be continued into a following byte), * the run length is increased by 8. */ #define t8(n) n,n,n,n,n+1,n+1,n+2,n+11 #define r8(n) n,n,n,n,n,n,n,n #define r16(n) r8(n),r8(n) #define r32(n) r16(n),r16(n) #define r64(n) r32(n),r32(n) #define r128(n) r64(n),r64(n) const byte byte_bit_run_length_0[256] = { r128(0), r64(1), r32(2), r16(3), r8(4), t8(5) }; const byte byte_bit_run_length_1[256] = { r64(0), r32(1), r16(2), r8(3), t8(4), r64(0), r32(1), r16(2), r8(3), t8(4) }; const byte byte_bit_run_length_2[256] = { r32(0), r16(1), r8(2), t8(3), r32(0), r16(1), r8(2), t8(3), r32(0), r16(1), r8(2), t8(3), r32(0), r16(1), r8(2), t8(3) }; const byte byte_bit_run_length_3[256] = { r16(0), r8(1), t8(2), r16(0), r8(1), t8(2), r16(0), r8(1), t8(2), r16(0), r8(1), t8(2), r16(0), r8(1), t8(2), r16(0), r8(1), t8(2),
OperandXMMREG RegisterAllocator::rSS(const OperandREF &ref, bool copy, bool ss) { return r128(ref, copy, ss); }