mirror of
https://github.com/libretro/parallel-ps2.git
synced 2026-11-11 23:42:41 -10:00
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.