/* Bits 31, 24, 16, and 8 of this number are zero. Call these bits
the "holes." Note that there is a hole just to the left of
each byte, with an extra at the end:
-
+
bits: 01111110 11111110 11111110 11111111
- bytes: AAAAAAAA BBBBBBBB CCCCCCCC DDDDDDDD
+ bytes: AAAAAAAA BBBBBBBB CCCCCCCC DDDDDDDD
The 1-bits make sure that carries propagate to the next 0-bit.
The 0-bits provide holes for carries to fall into. */
/* Add MAGIC_BITS to LONGWORD. */
if ((((longword + magic_bits)
-
+
/* Set those bits that were unchanged by the addition. */
^ ~longword)
-
+
/* Look at only the hole bits. If any of the hole bits
are unchanged, most likely one of the bytes was a
zero. */