Lines Matching refs:bits

17 /* Return the bits of V if they fit into 64-bit. If V has fewer than
18 64 bits, the bit pattern is zero-extended to the left. */
23 case 1: return v.bits.u32;
24 case 8: return v.bits.u8;
25 case 16: return v.bits.u16;
26 case 32: return v.bits.u32;
27 case 64: return v.bits.u64;
40 case 1: fprintf(fp, "%08x", v.bits.u32); break;
41 case 8: fprintf(fp, "%02x", v.bits.u8); break;
42 case 16: fprintf(fp, "%04x", v.bits.u16); break;
43 case 32: fprintf(fp, "%08x", v.bits.u32); break;
44 case 64: fprintf(fp, "%016"PRIx64, v.bits.u64); break;
47 fprintf(fp, "%016"PRIx64, v.bits.u128[1]);
48 fprintf(fp, "%016"PRIx64, v.bits.u128[0]);
50 fprintf(fp, "%016"PRIx64, v.bits.u128[0]);
51 fprintf(fp, "%016"PRIx64, v.bits.u128[1]);
56 fprintf(fp, "%016"PRIx64, v.bits.u256[3]);
57 fprintf(fp, "%016"PRIx64, v.bits.u256[2]);
58 fprintf(fp, "%016"PRIx64, v.bits.u256[1]);
59 fprintf(fp, "%016"PRIx64, v.bits.u256[0]);
61 fprintf(fp, "%016"PRIx64, v.bits.u256[0]);
62 fprintf(fp, "%016"PRIx64, v.bits.u256[1]);
63 fprintf(fp, "%016"PRIx64, v.bits.u256[2]);
64 fprintf(fp, "%016"PRIx64, v.bits.u256[3]);
73 /* Return a value where all bits are set to undefined. */
80 case 1: new.bits.u32 = 0x01; break;
81 case 8: new.bits.u8 = 0xff; break;
82 case 16: new.bits.u16 = 0xffff; break;
83 case 32: new.bits.u32 = ~0; break;
84 case 64: new.bits.u64 = ~0ull; break;
85 case 128: new.bits.u128[0] = ~0ull;
86 new.bits.u128[1] = ~0ull;
88 case 256: new.bits.u256[0] = ~0ull;
89 new.bits.u256[1] = ~0ull;
90 new.bits.u256[2] = ~0ull;
91 new.bits.u256[3] = ~0ull;
100 /* Return a value where all bits are set to defined. */
107 case 1: new.bits.u32 = 0x0; break;
108 case 8: new.bits.u8 = 0x0; break;
109 case 16: new.bits.u16 = 0x0; break;
110 case 32: new.bits.u32 = 0x0; break;
111 case 64: new.bits.u64 = 0x0; break;
112 case 128: new.bits.u128[0] = 0x0;
113 new.bits.u128[1] = 0x0;
115 case 256: new.bits.u256[0] = 0x0;
116 new.bits.u256[1] = 0x0;
117 new.bits.u256[2] = 0x0;
118 new.bits.u256[3] = 0x0;
134 case 1: return v1.bits.u32 == v2.bits.u32;
135 case 8: return v1.bits.u8 == v2.bits.u8;
136 case 16: return v1.bits.u16 == v2.bits.u16;
137 case 32: return v1.bits.u32 == v2.bits.u32;
138 case 64: return v1.bits.u64 == v2.bits.u64;
139 case 128: return v1.bits.u128[0] == v2.bits.u128[0] &&
140 v1.bits.u128[1] == v2.bits.u128[1];
141 case 256: return v1.bits.u256[0] == v2.bits.u256[0] &&
142 v1.bits.u256[1] == v2.bits.u256[1] &&
143 v1.bits.u256[2] == v2.bits.u256[2] &&
144 v1.bits.u256[3] == v2.bits.u256[3];
151 /* Truncate the bit pattern in V1 to NUM_BITS bits */
162 uint64_t bits;
165 bits = get_bits64(v);
168 bits = v.bits.u128[0];
170 bits = v.bits.u128[1];
173 bits = v.bits.u256[0];
175 bits = v.bits.u256[3];
180 case 1: new.bits.u32 = bits & 0x01; break;
181 case 8: new.bits.u8 = bits & 0xff; break;
182 case 16: new.bits.u16 = bits & 0xffff; break;
183 case 32: new.bits.u32 = bits & ~0u; break;
184 case 64: new.bits.u64 = bits & ~0ll; break;
193 /* From 256 bits to 128 */
195 new.bits.u128[0] = v.bits.u256[0];
196 new.bits.u128[1] = v.bits.u256[1];
198 new.bits.u128[0] = v.bits.u256[2];
199 new.bits.u128[1] = v.bits.u256[3];
204 /* Cannot truncate to 256 bits from something larger */
226 uint64_t bits = left64(get_bits64(v));
229 case 8: new.bits.u8 = bits & 0xff; break;
230 case 16: new.bits.u16 = bits & 0xffff; break;
231 case 32: new.bits.u32 = bits & ~0u; break;
232 case 64: new.bits.u64 = bits & ~0ll; break;
235 new.bits.u128[0] = bits;
236 if (bits & (1ull << 63)) { // MSB is set
237 new.bits.u128[1] = ~0ull;
239 new.bits.u128[1] = 0;
242 new.bits.u128[1] = bits;
243 if (bits & (1ull << 63)) { // MSB is set
244 new.bits.u128[0] = ~0ull;
246 new.bits.u128[0] = 0;
252 new.bits.u256[0] = bits;
253 if (bits & (1ull << 63)) { // MSB is set
254 new.bits.u256[1] = ~0ull;
255 new.bits.u256[2] = ~0ull;
256 new.bits.u256[3] = ~0ull;
258 new.bits.u256[1] = 0;
259 new.bits.u256[2] = 0;
260 new.bits.u256[3] = 0;
263 new.bits.u256[3] = bits;
264 if (bits & (1ull << 63)) { // MSB is set
265 new.bits.u256[0] = ~0ull;
266 new.bits.u256[1] = ~0ull;
267 new.bits.u256[2] = ~0ull;
269 new.bits.u256[0] = 0;
270 new.bits.u256[1] = 0;
271 new.bits.u256[2] = 0;
283 if (v.bits.u128[1] != 0) {
284 new.bits.u128[0] = v.bits.u128[0];
285 new.bits.u128[1] = left64(v.bits.u128[1]);
287 new.bits.u128[0] = left64(v.bits.u128[0]);
288 if (new.bits.u128[0] & (1ull << 63)) { // MSB is set
289 new.bits.u128[1] = ~0ull;
291 new.bits.u128[1] = 0;
295 if (v.bits.u128[0] != 0) {
296 new.bits.u128[0] = left64(v.bits.u128[0]);
297 new.bits.u128[1] = v.bits.u128[1];
299 new.bits.u128[1] = left64(v.bits.u128[1]);
300 if (new.bits.u128[1] & (1ull << 63)) { // MSB is set
301 new.bits.u128[0] = ~0ull;
303 new.bits.u128[0] = 0;
312 uint64_t b1 = new.bits.u128[1];
313 uint64_t b0 = new.bits.u128[0];
315 new.bits.u256[0] = b0;
316 new.bits.u256[1] = b1;
318 if (new.bits.u256[1] & (1ull << 63)) { // MSB is set
319 new.bits.u256[2] = ~0ull;
320 new.bits.u256[3] = ~0ull;
322 new.bits.u256[2] = 0;
323 new.bits.u256[3] = 0;
326 uint64_t b1 = new.bits.u128[0];
327 uint64_t b0 = new.bits.u128[1];
329 new.bits.u256[2] = b0;
330 new.bits.u256[3] = b1;
332 if (new.bits.u256[2] & (1ull << 63)) { // MSB is set
333 new.bits.u256[0] = ~0ull;
334 new.bits.u256[1] = ~0ull;
336 new.bits.u256[0] = 0;
337 new.bits.u256[1] = 0;
355 case 8: new.bits.u8 = v1.bits.u8 | v2.bits.u8; break;
356 case 16: new.bits.u16 = v1.bits.u16 | v2.bits.u16; break;
357 case 32: new.bits.u32 = v1.bits.u32 | v2.bits.u32; break;
358 case 64: new.bits.u64 = v1.bits.u64 | v2.bits.u64; break;
359 case 128: new.bits.u128[0] = v1.bits.u128[0] | v2.bits.u128[0];
360 new.bits.u128[1] = v1.bits.u128[1] | v2.bits.u128[1];
362 case 256: new.bits.u256[0] = v1.bits.u256[0] | v2.bits.u256[0];
363 new.bits.u256[1] = v1.bits.u256[1] | v2.bits.u256[1];
364 new.bits.u256[2] = v1.bits.u256[2] | v2.bits.u256[2];
365 new.bits.u256[3] = v1.bits.u256[3] | v2.bits.u256[3];
383 case 8: new.bits.u8 = v1.bits.u8 & v2.bits.u8; break;
384 case 16: new.bits.u16 = v1.bits.u16 & v2.bits.u16; break;
385 case 32: new.bits.u32 = v1.bits.u32 & v2.bits.u32; break;
386 case 64: new.bits.u64 = v1.bits.u64 & v2.bits.u64; break;
387 case 128: new.bits.u128[0] = v1.bits.u128[0] & v2.bits.u128[0];
388 new.bits.u128[1] = v1.bits.u128[1] & v2.bits.u128[1];
390 case 256: new.bits.u256[0] = v1.bits.u256[0] & v2.bits.u256[0];
391 new.bits.u256[1] = v1.bits.u256[1] & v2.bits.u256[1];
392 new.bits.u256[2] = v1.bits.u256[2] & v2.bits.u256[2];
393 new.bits.u256[3] = v1.bits.u256[3] & v2.bits.u256[3];
411 case 8: new.bits.u16 = (v1.bits.u8 << 8) | v2.bits.u8; break;
412 case 16: new.bits.u32 = (v1.bits.u16 << 16) | v2.bits.u16; break;
413 case 32: new.bits.u64 = v1.bits.u32;
414 new.bits.u64 = (new.bits.u64 << 32) | v2.bits.u32; break;
417 new.bits.u128[0] = v2.bits.u64;
418 new.bits.u128[1] = v1.bits.u64;
420 new.bits.u128[0] = v1.bits.u64;
421 new.bits.u128[1] = v2.bits.u64;
426 new.bits.u256[0] = v2.bits.u128[0];
427 new.bits.u256[1] = v2.bits.u128[1];
428 new.bits.u256[2] = v1.bits.u128[0];
429 new.bits.u256[3] = v1.bits.u128[1];
431 new.bits.u256[0] = v1.bits.u128[0];
432 new.bits.u256[1] = v1.bits.u128[1];
433 new.bits.u256[2] = v2.bits.u128[0];
434 new.bits.u256[3] = v2.bits.u128[1];
452 case 16: new.bits.u8 = v.bits.u16 >> 8; break;
453 case 32: new.bits.u16 = v.bits.u32 >> 16; break;
454 case 64: new.bits.u32 = v.bits.u64 >> 32; break;
457 new.bits.u64 = v.bits.u128[1];
459 new.bits.u64 = v.bits.u128[0];
463 new.bits.u128[0] = v.bits.u256[2];
464 new.bits.u128[1] = v.bits.u256[3];
466 new.bits.u128[0] = v.bits.u256[0];
467 new.bits.u128[1] = v.bits.u256[1];
489 uint64_t bits = get_bits64(v);
492 case 8: new.bits.u8 = bits; break;
493 case 16: new.bits.u16 = bits; break;
494 case 32: new.bits.u32 = bits; break;
495 case 64: new.bits.u64 = bits; break;
498 new.bits.u128[0] = bits;
499 new.bits.u128[1] = 0;
501 new.bits.u128[0] = 0;
502 new.bits.u128[1] = bits;
507 new.bits.u256[0] = bits;
508 new.bits.u256[1] = 0;
509 new.bits.u256[2] = 0;
510 new.bits.u256[3] = 0;
512 new.bits.u256[0] = 0;
513 new.bits.u256[1] = 0;
514 new.bits.u256[2] = 0;
515 new.bits.u256[3] = bits;
528 new.bits.u256[0] = v.bits.u128[0];
529 new.bits.u256[1] = v.bits.u128[1];
530 new.bits.u256[2] = 0;
531 new.bits.u256[3] = 0;
533 new.bits.u256[0] = 0;
534 new.bits.u256[1] = 0;
535 new.bits.u256[2] = v.bits.u128[1];
536 new.bits.u256[3] = v.bits.u128[0];
554 case 8: if (v.bits.u8 == 0x80) sextend = 1; break;
555 case 16: if (v.bits.u16 == 0x8000) sextend = 1; break;
556 case 32: if (v.bits.u32 == 0x80000000) sextend = 1; break;
557 case 64: if (v.bits.u64 == (1ull << 63)) sextend = 1; break;
558 case 128: if (v.bits.u128[1] == (1ull << 63)) sextend = 1; break;
559 case 256: if (v.bits.u256[3] == (1ull << 63)) sextend = 1; break;
577 case 1: new.bits.u32 = 1 << bitno; break;
578 case 8: new.bits.u8 = 1 << bitno; break;
579 case 16: new.bits.u16 = 1 << bitno; break;
580 case 32: new.bits.u32 = 1u << bitno; break;
581 case 64: new.bits.u64 = 1ull << bitno; break;
585 new.bits.u128[0] = 1ull << bitno;
586 new.bits.u128[1] = 0;
588 new.bits.u128[0] = 0;
589 new.bits.u128[1] = 1ull << (bitno - 64);
593 new.bits.u128[0] = 0;
594 new.bits.u128[1] = 1ull << bitno;
596 new.bits.u128[0] = 1ull << (bitno - 64);
597 new.bits.u128[1] = 0;
604 new.bits.u256[0] = 1ull << bitno;
605 new.bits.u256[1] = 0;
606 new.bits.u256[2] = 0;
607 new.bits.u256[3] = 0;
609 new.bits.u256[0] = 0;
610 new.bits.u256[1] = 1ull << (bitno - 64);
611 new.bits.u256[2] = 0;
612 new.bits.u256[3] = 0;
614 new.bits.u256[0] = 0;
615 new.bits.u256[1] = 0;
616 new.bits.u256[2] = 1ull << (bitno - 128);
617 new.bits.u256[3] = 0;
619 new.bits.u256[0] = 0;
620 new.bits.u256[1] = 0;
621 new.bits.u256[2] = 0;
622 new.bits.u256[3] = 1ull << (bitno - 192);
626 new.bits.u256[0] = 0;
627 new.bits.u256[1] = 0;
628 new.bits.u256[2] = 0;
629 new.bits.u256[3] = 1ull << bitno;
631 new.bits.u256[0] = 0;
632 new.bits.u256[1] = 0;
633 new.bits.u256[2] = 1ull << (bitno - 64);
634 new.bits.u256[3] = 0;
636 new.bits.u256[0] = 0;
637 new.bits.u256[1] = 1ull << (bitno - 128);
638 new.bits.u256[2] = 0;
639 new.bits.u256[3] = 0;
641 new.bits.u256[0] = 1ull << (bitno - 192);
642 new.bits.u256[1] = 0;
643 new.bits.u256[2] = 0;
644 new.bits.u256[3] = 0;
670 case 8: new.bits.u8 <<= shift_amount; break;
671 case 16: new.bits.u16 <<= shift_amount; break;
672 case 32: new.bits.u32 <<= shift_amount; break;
673 case 64: new.bits.u64 <<= shift_amount; break;
692 case 8: new.bits.u8 >>= shift_amount; break;
693 case 16: new.bits.u16 >>= shift_amount; break;
694 case 32: new.bits.u32 >>= shift_amount; break;
695 case 64: new.bits.u64 >>= shift_amount; break;
716 new.bits.u8 >>= shift_amount;
717 msb = (v.bits.u8 & 0x80) != 0;
720 new.bits.u16 >>= shift_amount;
721 msb = (v.bits.u16 & 0x8000) != 0;
724 new.bits.u32 >>= shift_amount;
725 msb = (v.bits.u32 & (1u << 31)) != 0;
728 new.bits.u64 >>= shift_amount;
729 msb = (v.bits.u64 & (1ull << 63)) != 0;
752 * the lower 3 bits are set to indicate, less than, equal and greater then.
756 new.bits.u32 = 0xE;
760 new.bits.u64 = 0xE;