mirror of
https://github.com/spoopyghosty0/frameport.git
synced 2026-10-22 14:02:20 +02:00
Pinball FX2 VR (32-bit, through the a32 bridge) died ~2 s after its loading screen with "a32: block at 0xf68587a0 overflowed the code buffer" (exit 127): OpenSSL's sha1_block_data_order_armv8 (reached from RAND_poll) has ~60 SHA-1 crypto instructions in a row, each translated through the interpreter with its own exit stub, and the block loop only stopped at 96 instructions or half the code buffer, so the 64-entry stub table overflowed and fatal() ended the process. The loop now also ends a block while 8 stubs are left. Headless on the dev Frame the game now runs on past that point (menu-size swapchains, recenter, its save files written) instead of exiting. tests/programs/sha1ce.c (72 crypto instructions in a row + an unrolled SHA-1) failed with the old a32run and passes with the new one, JIT = interpreter. Triage signature a32-jit-overflow, PLAYBOOK row; frame.a32_bridge marks only Pinball FX2 VR "Update on Frame" (package_revisions).