Files
libretroadmin 53e972f3ce EE: the opcode tables, COP0, FPU, MMI, VU0 and the cache in C89
The R5900 interpreter ops are flat C names now, int plus the mnemonic
beside the recompiler's rec plus the mnemonic, declared with C linkage
in R5900OpcodeTables.h, which also carries OPCODE and the class lookups
as plain C. That lets the opcode tables, COP0, the FPU, MMI, the VU0
macro ops and the data cache build as C89. The tables keep their rows
of bare mnemonics, each one a macro for its entry, so the table audit
reads them unchanged. Cache.c drops the lambdas and reference members
for a pointer pair per line, and keeps the existing hit test as it is
(EnableEECache is never switched on). The IOP GTE's register helpers
become static, which they always should have been, and the instruction
lookup becomes a single walk shared by both entry points.

clinkage now also catches a C++ unit calling a C function through its
own declaration without extern "C". The arm64 recompiler did exactly
that for vu0Sync, and those units do not build on an x86 host, so they
are cross-built there when aarch64-linux-gnu-g++ is present; the Tests
workflow installs it. Cpu and vtlbdata get C linkage for MSVC, and the
interpreter, R5900OpcodeImpl and the recompiler sources stay C++ for now.
2026-11-10 17:03:42 +01:00
..
2026-08-26 16:16:59 +02:00