Files
psxrecomp/runtime/tests
Alex Vanderveen 9dad1b7ee2 Merge upstream master into feat/rbengine-bak (PR #175)
Conflict: recompiler/src/pgxp_hook_emitter.cpp, 13 hunks.

Both sides independently fixed the same defect — a PGXP hook appended on
the same line as a trailing `#endif` is swallowed by the preprocessor as
extra tokens and silently discarded, so the MULT/DIV/MFLO/MFHI hooks
never ran.

Took upstream's resolution:

  - Local fix hard-coded a trailing-"#endif" test at function entry and
    spliced "\n{}\n" around the emission.
  - Upstream factors the test into
    emission_ends_on_preprocessor_directive(), which scans the last line
    properly (leading whitespace, any directive, not just #endif) and is
    EXPORTED. code_generator.cpp:1709 and strict_translator.cpp — both
    arriving in this same merge — call it to guard their own same-line
    appenders, so the local version would have left those two callers
    with an undefined symbol.

The local side also newline-guarded the START of the emission. Dropping
that is safe: every block-cycles emission literal already begins with
'\n' (gte_stall, gte_read, the muldiv set/stall blocks), so a directive
never lands mid-line there.

Verified: recompiler builds; emitter_directive_line_test and
lwlr_load_delay_forward pass; generated code for mult/mflo puts
PGXP_MULDIV, PGXP_ALU and the trailing disassembly comment each on their
own line after #endif; the PR #172 deferred-load/PGXP scoping fix still
holds; spu.c compiles against this game's build and test_spu_pitch_zero
passes all 14 assertions.

Pre-existing on this branch, unrelated to the merge: 7 ctest failures
(dirty_text_admission_guards, aot_overlay_discovery,
mod_owned_display_controls, launcher_vulkan_option,
mod_load_acceleration, overlay_decodable_fallback, vk_present_wait_stage)
— all inspect files this merge does not touch.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-23 03:18:57 -04:00
..
2026-07-29 03:18:10 -04:00
2026-07-29 03:18:10 -04:00
2026-07-29 03:18:10 -04:00
2026-08-17 11:40:25 -04:00
2026-07-29 03:18:10 -04:00
2026-08-17 22:25:49 -04:00
2026-08-17 22:25:49 -04:00
2026-08-17 22:25:49 -04:00
2026-08-17 22:25:49 -04:00
2026-07-29 03:18:10 -04:00
2026-07-29 03:18:10 -04:00