Files
BFM-decomp/.run/probe_jtbl/rodata_verbatim.objdump
T
Drew T 5e78dccf07 feat(phase-29 §8e): jtbl 8-align pad-spec filter — the 4-giant unblock tooling (fleet-neutral)
- ROOT CAUSE PINNED (the session-2 half-pin was INVERTED; both probes were vacuous, R35):
  cc1 emits .align 3 before EVERY jump table; maspsx passes it VERBATIM (the :435 'drop' is
  an inventory-only pass); as bakes the pad SECTION-RELATIVE; link placement was never guilty
  (SUBALIGN(2) + ALIGN(.,4) place 4-mod-8 carve starts tight). Merging originally-separate
  TUs fires an intra-TU align where the original packed tight -> +4 at rodata 0xCC ->
  image-wide %lo shift. Honest probes persisted: .run/probe_jtbl/ (verdict.md + objdumps).
- NEW tools/jtbl_rodata_pads.py: post-maspsx filter replaces each rodata .align 3 with the
  ORIGINAL's exact pad bytes per a JTBL_PADS spec; fail-loud on table-count drift /
  non-align-3 / non-jtbl rodata content. Byte-proven: verbatim 0xE4 pad-at-0xCC ->
  filtered 0xE0 tight (= the merged carve span).
- jtbl_carve.py: spec-aware same-subseg merge (gap 0 or 4-with-zero-payload-word; else
  NON-CONTIGUOUS -> isolate), interval-arithmetic pad specs (committed values CARRIED,
  never re-derived), JTBL_PADS target-var emission into overlays.mk + revert() restore +
  stale-.o invalidation; the false 'maspsx drops .align' docstring corrected (H5).
- Makefile: $(if $(JTBL_PADS),| jtbl_rodata_pads.py ...) stage in build/src/%.o + file-scope
  empty default (env-shield). jtbl_family_bank.stub_file: duplicate-stub fail-loud (the
  earlier 'ladder failure' was a wrong-TU splice into a stale _a.c stub, byte-witnessed).
- R22 clean-fleet WITH the fix wired: 140/140 byte-identical, tools-health green
  (dedup 1846/0, C1 234205/234205), ZERO new banks -- fleet-neutral by construction.
- cookbook §8e (the jtbl alignment law) + §8a/§8a-pad corrections; decision-log R31 entry;
  SETUP.md tool row; .gitignore allowlist for the probe verdict artifacts.
2026-07-18 02:03:48 -06:00

23 lines
1.2 KiB
Plaintext

.run/probe_jtbl/tu_verbatim.o: file format elf32-tradlittlemips
Contents of section .rodata:
0000 50000000 50000000 50000000 50000000 P...P...P...P...
0010 50000000 50000000 50000000 50000000 P...P...P...P...
0020 50000000 50000000 50000000 50000000 P...P...P...P...
0030 50000000 50000000 50000000 50000000 P...P...P...P...
0040 50000000 50000000 50000000 50000000 P...P...P...P...
0050 50000000 50000000 50000000 50000000 P...P...P...P...
0060 50000000 50000000 50000000 50000000 P...P...P...P...
0070 50000000 50000000 50000000 50000000 P...P...P...P...
0080 50000000 50000000 50000000 50000000 P...P...P...P...
0090 50000000 50000000 50000000 50000000 P...P...P...P...
00a0 50000000 50000000 50000000 50000000 P...P...P...P...
00b0 50000000 50000000 50000000 50000000 P...P...P...P...
00c0 48000000 48000000 48000000 00000000 H...H...H.......
00d0 60670000 60670000 54690000 6c6a0000 `g..`g..Ti..lj..
00e0 146c0000 .l..
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 9] .rodata PROGBITS 00000000 00f6f0 0000e4 00 A 0 0 8
[10] .rel.rodata REL 00000000 017ac0 0001c0 08 I 12 9 4