Lines Matching +full:high +full:- +full:bit
1 /* SPDX-License-Identifier: GPL-2.0 */
19 * by subtracting 0x01010101, and seeing if any of the high bits of each
22 * significant), so it is 0x00 - 0x01 == 0xff. For all other
23 * byte values, either they have the high bit set initially, or when
24 * 1 is subtracted you get a value in the range 0x00-0x7f, none of which
25 * have their high bit set. The expression here is
26 * (x - 0x01010101) & ~x & 0x80808080), which gives 0x00000000 when
29 * byte to a true match due to carries. For little-endian this is
31 * we're interested in, but big-endian needs method 2 to find which
34 * calculating ~(((x & ~0x80808080) - 0x80808080 - 1) | x | ~0x80808080).
37 * byte, and the '| x' part ensures that bytes with the high bit set
38 * produce 0x00. The addition will carry into the high bit of each byte
40 * which was the most significant bit set and divide by 8 to find how
49 addi r10, r3, -4
52 bne- 3f