Far-Pointer Spill Funnel
Signals & AudioTen banked pointers crowd a register funnel, park on the stack, survive a clobbering call, and reconnect to their original far-data targets.
Self-running — verified CRC 7F3B.
Click the screen, then play. (Tab away and it pauses.)
The pressure under test
A 65816 far pointer occupies a four-byte imaginary-register quad. This probe creates ten runtime-derived, non-rematerializable far pointers, keeps all of them live across a real 32-bit multiply call, then dereferences every pointer from ROM bank 1.
Measured pressure: greedy register allocation creates seven four-byte Imag32 spill slots. They expand to 28 byte stores and 28 byte reloads.
Standing producer gate: all eight LDImm destinations are hardware A/X/Y registers; no malformed imaginary-register destination returned.
Result: host, a16, and xy16 all return 0x7F3B on MAME and bsnes-jg. No new compiler defect was found.
What the ROM shows
Colored pointer ribbons enter a narrow yellow register funnel. Magenta branches represent values parked outside the funnel; recovered far-data samples choose the ribbons' exit paths. The display is driven by the same pressure kernel as the differential gate.
Compiler stress-test #131, Round 7. Source and full test record live in llvm-mos-65816.