Commit graph

17 commits

Author SHA1 Message Date
Exzap
2fe2799d96 PPCRec: Clean up some outdated code 2025-04-26 00:24:43 +02:00
Exzap
89f8f9bd2a PPCRec: Implement MCRF, rework DCBZ 2025-04-26 00:24:43 +02:00
Exzap
f55b842773 PPCRec: Dead code elimination + reintroduce pre-rework optimizations 2025-04-26 00:22:37 +02:00
Exzap
1cc458c543 PPCRec: Implement MFCR and MTCRF 2025-04-26 00:22:37 +02:00
Exzap
9dd4f9b9a3 PPCRec: FPRs now use the shared register allocator 2025-04-26 00:22:37 +02:00
Exzap
e9c161c508 PPCRec: Initial support for typed registers 2025-04-26 00:22:37 +02:00
Exzap
429413d88e PPCRec: Use IMLReg in more places, unify and simplify var names 2025-04-26 00:22:36 +02:00
Exzap
ce9a48b987 PPCRec: Rework CR bit handling
CR bits are now resident in registers instead of being baked into the instruction definitions. Same for XER SO, and LWARX reservation EA and value.

Reworked LWARX/STWCX, CRxx ops, compare and branch instructions. As well as RC bit handling. Not all CR-related instructions are reimplemented yet.

Introduced atomic_cmp_store operation to allow implementing STWCX in architecture agnostic IML

Removed legacy CR-based compare and jump operations
2025-04-26 00:22:36 +02:00
Exzap
f305a2ba17 PPCRec: Rework carry bit and generalize carry IML instructions
Carry bit is now resident in a register-allocated GPR instead of being backed directly into IML instructions

All the PowerPC carry ADD* and SUB* instructions as well as SRAW/SRAWI have been reworked to use more generalized IML instructions for handling carry

IML instructions now support two named output registers instead of only one (easily extendable to arbitrary count)
2025-04-26 00:22:36 +02:00
Exzap
a51a8bb7d5 PPCRec: New compare and cond jump instrs, update RA
Storing the condition result in a register instead of imitating PPC CR lets us simplify the backend a lot. Only implemented as PoC for BDZ/BDNZ so far.
2025-04-26 00:22:36 +02:00
Exzap
d420622da7 PPCRec: Make register pool for RA configurable 2025-04-26 00:22:35 +02:00
Exzap
c4fb7b74f8 PPCRec: Make LSWI/STWSI more generic + GPR temporaries storage 2025-04-26 00:22:35 +02:00
Exzap
d724dded8e PPCRec: Clean up unused flags 2025-04-26 00:22:35 +02:00
Exzap
0f1d7532a1 PPCRec: Remove now unused PPC_ENTER and jumpMarkAddress 2025-04-26 00:22:35 +02:00
Exzap
0622631868 PPCRec: Move X64 files into subdirectory and rename 2025-04-26 00:22:35 +02:00
Exzap
411a83799c PPCRec: Move IML register allocator 2025-04-26 00:22:35 +02:00
Exzap
231b5c5dc3 PPCRec: Move IML optimizer file 2025-04-26 00:22:35 +02:00
Renamed from src/Cafe/HW/Espresso/Recompiler/PPCRecompilerImlOptimizer.cpp (Browse further)