Cross-reference scan by raw immediate: the method cannot tell

Sought the moby class loader by counting raw u16 occurrences of each chunk offset
in .text. moby_classes 0xc0 hits 49,230 times, tie_classes 0x1e80 hits 111 --
and that contrast means nothing.

Small u16 values are simply common: the most frequent value in .text occurs
1,834,535 times. A two-byte value that is frequent by construction beats a rarer
one regardless of what either references, so the comparison has no shared
denominator. Rule 3a again, one level below where it has bitten before -- not the
measurement being wrong but the comparison being uninterpretable.

Recorded as a methodological negative rather than a finding. Doing it properly
means counting immediates only where the instruction decoder says they are
immediates, which is what tools/overlay-anchors exists for.

No test added: a test asserting a meaningless comparison would make the next
reader trust it.
This commit is contained in:
2026-10-14 05:15:07 +02:00
parent 743107e864
commit 27891ce5b4
+21
View File
@@ -1939,3 +1939,24 @@ recorded for `moby_anim`.
Not concluded: what the 238 entries *are*. The float reading is suggestive, not Not concluded: what the 238 entries *are*. The float reading is suggestive, not
established -- it was read at one stride, on one level, and rule 3a applies. established -- it was read at one stride, on one level, and rule 3a applies.
### Cross-reference scan by raw immediate: does not discriminate
The natural next probe is to search `.text` for immediates matching each chunk's
offset. Run over all 27 levels (0x2d70260 bytes, 23.8M u16 values):
moby_classes 0x00c0 49,230 occurrences
tie_classes 0x1e80 111 occurrences
**This comparison is meaningless and must not be quoted as evidence.** The two
offsets differ in magnitude, and small values are simply common: the single most
frequent u16 in `.text` occurs 1,834,535 times, so a two-byte value that is
common by construction will beat a rarer one no matter what it references. The
whole scan is confounded by value frequency, which is rule 3a again, one level
below where it has bitten before -- not the measurement being wrong but the
*comparison* having no shared denominator.
Doing it properly means decoding instructions and counting immediates only where
they are immediates, which is what `tools/overlay-anchors` is for. Until that
exists the answer is not "moby_classes is referenced more" or "less", it is
"this method cannot tell".