This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 01/10/2018 04:47 AM, Adhemerval Zanella wrote:
+/* Create a mask with high bit of each byte being 1, and the low 7 bits + being all the opposite of the input mask. It is used to mask off + undesirable bits from an aligned read from an unaligned pointer, + and also taking care to avoid match possible bytes meant to be + matched. For instance, on a 64 bits machine with a pointer alignment + of 3 the function returns 0x7f7f7f0000000000 (input meant to + be 0xffffff0000000000) for BE and 0x00000000007f7f7f for LE (input + meant to be 0x0000000000ffffff). */ +static inline op_t +highbit_mask (op_t m) +{ + return m & ~repeat_bytes (0x80); +}
The first line of the comment does not match the implementation, which would have to be something like "return (m ^ repeat_bytes (0x7f)) | repeat_bytes (0x80);" to match the comment. Also, I suggest replacing "~repeat_bytes (0x80)" with "repeat_bytes (0x7f)" as the latter is a bit simpler.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |