mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-26 10:19:47 -04:00
4630a0d9f7
#429 charges psx_icache_fetch before every instruction whose runtime PC is uncached, in both emitters, and makes the BIOS emitter's cache-line start test use the runtime PC. The OpenBIOS check finds no uncharged KSEG1 site, so segment_aware_codegen passes with 10 known gaps; bios-kseg1-fetch-charge has not been in KNOWN_GAPS since the ledger's first commit in this series. The check stays as a regression guard: an uncharged site reports the id as a new gap. docs/SEGMENT_AWARE_CODE.md: - §5.6 describes the charge as landed, including the runtime-PC line-start fix. The game emitter already has the predicate, but emit_pre_icache tests the compile address: PR B must route both its psx_fetch_uncached() argument and the fetch tag through runtime_pc(), and D adds the KSEG1 variants they reach. - §7.1 lists ten open ids and records how A's id left the ledger. - §8 marks A merged, with its Beetle parity (shell entry -126 on OpenBIOS, -454 on SCPH-1001; the residuals are the IsC gap and SCPH-1001's KSEG1 kernel entry). D now only needs the KSEG1 variants; kseg1-fetch-charge stays open until D. The macOS oracle recipe is docs/beetle-macos.md (#431). - §1, §3.5 and the header say the BIOS undercharge is fixed. §10 is unchanged. - §3.1, §3.5 and §5.2 cite the emitter lines as they are after #429 (code_generator.cpp +6, full_function_emitter.cpp +10). FAITHFUL_TIMING_PLAN §5 gets a log entry for the rebase. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>