… | |
… | |
161 | // we take advantage of the fact that 0x80 is the sign bit |
161 | // we take advantage of the fact that 0x80 is the sign bit |
162 | // to generate more efficient code on many cpus |
162 | // to generate more efficient code on many cpus |
163 | //assert (sint8 (P_UPTODATE) < 0); |
163 | //assert (sint8 (P_UPTODATE) < 0); |
164 | //assert (sint8 (-1 & ~P_UPTODATE) >= 0); |
164 | //assert (sint8 (-1 & ~P_UPTODATE) >= 0); |
165 | |
165 | |
166 | if (expect_false (sint8 (flags_) >= 0)) |
166 | if (ecb_expect_false (sint8 (flags_) >= 0)) |
167 | update_ (); |
167 | update_ (); |
168 | |
168 | |
169 | // must be true by now (gcc seems content with only the second test) |
169 | // must be true by now (gcc seems content with only the second test) |
170 | ecb_assume (sint8 (flags_) < 0); |
170 | ecb_assume (sint8 (flags_) < 0); |
171 | ecb_assume (flags_ & P_UPTODATE); |
171 | ecb_assume (flags_ & P_UPTODATE); |