_hwRead128 declared its 16-byte `result` uninitialized. A 128-bit
read of a page-0x0F register that is neither a FIFO nor the
SBUS_PS1 range nor 0x1000f300 — e.g. INTC_STAT at 0x1000F000 —
breaks out of the switch WITHOUT writing `result`, then falls
through to `return r128_load(&result)`, returning uninitialized
stack. The value is layout-dependent: it happened to read zero on
a 16K-page host but returned stack garbage on the 4K-page CI
runner, which surfaced as a nondeterministic EE JIT-vs-interp
divergence in the GE-14 LqFaultPathLandsInResidentQuad coherence
test (the interp returned leftover t6, the fastmem thunk leftover
q0). The FIFO paths fully overwrite `result`, so zero-init only
affects the break-without-write fall-throughs: garbage -> 0.
Shared upstream code, latent there too (games don't LQ a hw reg).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Guest memory is now mapped into a shared memory/file mapping, for use
with fastmem.
64-bit and 128-bit arguments are passed by register/value instead of by
reference/address.
LDL/LDR/SDL/SDR now use 64-bit GPRs instead of SSE.
These have no meaning in x64 (apart from throwing compiler warnings),
and we don't do 32-bit anymore. Also saves needing to include
`Pcsx2Defs.h` in files which don't otherwise need it.
All work done by Refraction, I'm just the commit guy for this.
Note: Missing Visual Studio 2012 / 2010 project files and Linux makefile additions.
Note2: PSX games don't work yet :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5921 96395faa-99c1-11dd-bbfe-3dabce05a288