Files
hakmem/core
Moe Charm (CI) 73da7ac588 Fix C0 (8B) next pointer overflow and optimize with bitmask lookup
Problem: Class 0 (8B stride) was using offset 1 for next pointer storage,
but 8B stride cannot fit [1B header][8B next pointer] - it overflows by 1 byte
into the adjacent block.

Fix: Use offset 0 for C0 (same as C7), allowing the header to be overwritten.
This is safe because:
1. class_map provides out-of-band class_idx lookup (header not needed for free)
2. P3 skips header write by default (header byte is unused anyway)

Optimization: Replace branching with bitmask lookup for zero-cost abstraction.
- Old: (class_idx == 0 || class_idx == 7) ? 0u : 1u  (branch)
- New: (0x7Eu >> class_idx) & 1u  (branchless)

Bit pattern: C0=0, C1-C6=1, C7=0 → 0b01111110 = 0x7E

Performance results:
- 8B:  85.19M → 85.61M (+0.5%)
- 16B: 137.43M → 147.31M (+7.2%)
- 64B: 84.21M → 84.90M (+0.8%)

Thanks to ChatGPT for spotting the g_tiny_class_sizes vs tiny_nextptr.h mismatch!

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 15:04:06 +09:00
..
2025-11-11 21:49:05 +09:00