Home | History | Annotate | Download | only in arm64

Lines Matching defs:bits

28 int32_t Arm64Mir2Lir::EncodeImmSingle(uint32_t bits) {
37 // bits[19..0] are cleared.
38 if ((bits & 0x0007ffff) != 0)
41 // bits[29..25] are all set or all cleared.
42 uint32_t b_pattern = (bits >> 16) & 0x3e00;
47 if (((bits ^ (bits << 1)) & 0x40000000) == 0)
50 // bits: aBbb.bbbc.defg.h000.0000.0000.0000.0000
52 uint32_t bit7 = ((bits >> 31) & 0x1) << 7;
54 uint32_t bit6 = ((bits >> 29) & 0x1) << 6;
56 uint32_t bit5_to_0 = (bits >> 19) & 0x3f;
60 int32_t Arm64Mir2Lir::EncodeImmDouble(uint64_t bits) {
70 // bits[47..0] are cleared.
71 if ((bits & UINT64_C(0xffffffffffff)) != 0)
74 // bits[61..54] are all set or all cleared.
75 uint32_t b_pattern = (bits >> 48) & 0x3fc0;
80 if (((bits ^ (bits << 1)) & UINT64_C(0x4000000000000000)) == 0)
84 uint32_t bit7 = ((bits >> 63) & 0x1) << 7;
86 uint32_t bit6 = ((bits >> 61) & 0x1) << 6;
88 uint32_t bit5_to_0 = (bits >> 48) & 0x3f;
97 uint32_t bits = opcode_is_wide ? encoder->xskeleton : encoder->wskeleton;
98 return (bits >> 30);
197 // (s bits must not be all set)
199 // A pattern is constructed of size bits, where the least significant S+1
200 // bits are set. The pattern is rotated right by R, and repeated across a
207 // 1. If the value has all set or all clear bits, it can't be encoded.
219 // The fixed bits in the immediate s field.
228 // 2. If the value is two bits wide, it can be encoded.
244 // 3. If the sum of leading zeros, trailing zeros and set bits is
250 // 4. If the sum of leading ones, trailing ones and unset bits in the
279 * @details The input integer is split into 4 halfwords (bits 0-15, 16-31, 32-47, 48-63). The
284 * the number of halfwords with all bits unset (0) and m is the number of halfwords with all bits