Home | History | Annotate | Download | only in arm64

Lines Matching defs:bits

26 int32_t Arm64Mir2Lir::EncodeImmSingle(uint32_t bits) {
35 // bits[19..0] are cleared.
36 if ((bits & 0x0007ffff) != 0)
39 // bits[29..25] are all set or all cleared.
40 uint32_t b_pattern = (bits >> 16) & 0x3e00;
45 if (((bits ^ (bits << 1)) & 0x40000000) == 0)
48 // bits: aBbb.bbbc.defg.h000.0000.0000.0000.0000
50 uint32_t bit7 = ((bits >> 31) & 0x1) << 7;
52 uint32_t bit6 = ((bits >> 29) & 0x1) << 6;
54 uint32_t bit5_to_0 = (bits >> 19) & 0x3f;
58 int32_t Arm64Mir2Lir::EncodeImmDouble(uint64_t bits) {
68 // bits[47..0] are cleared.
69 if ((bits & UINT64_C(0xffffffffffff)) != 0)
72 // bits[61..54] are all set or all cleared.
73 uint32_t b_pattern = (bits >> 48) & 0x3fc0;
78 if (((bits ^ (bits << 1)) & UINT64_C(0x4000000000000000)) == 0)
82 uint32_t bit7 = ((bits >> 63) & 0x1) << 7;
84 uint32_t bit6 = ((bits >> 61) & 0x1) << 6;
86 uint32_t bit5_to_0 = (bits >> 48) & 0x3f;
95 uint32_t bits = opcode_is_wide ? encoder->xskeleton : encoder->wskeleton;
96 return (bits >> 30);
195 // (s bits must not be all set)
197 // A pattern is constructed of size bits, where the least significant S+1
198 // bits are set. The pattern is rotated right by R, and repeated across a
205 // 1. If the value has all set or all clear bits, it can't be encoded.
217 // The fixed bits in the immediate s field.
226 // 2. If the value is two bits wide, it can be encoded.
242 // 3. If the sum of leading zeros, trailing zeros and set bits is
248 // 4. If the sum of leading ones, trailing ones and unset bits in the
277 * @details The input integer is split into 4 halfwords (bits 0-15, 16-31, 32-47, 48-63). The
282 * the number of halfwords with all bits unset (0) and m is the number of halfwords with all bits