-
Notifications
You must be signed in to change notification settings - Fork 603
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Large-scale PowerPC recompiler rework #641
base: main
Are you sure you want to change the base?
Commits on Aug 29, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 4c16397 - Browse repository at this point
Copy the full SHA 4c16397View commit details -
Configuration menu - View commit details
-
Copy full SHA for f523b21 - Browse repository at this point
Copy the full SHA f523b21View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0265108 - Browse repository at this point
Copy the full SHA 0265108View commit details -
Configuration menu - View commit details
-
Copy full SHA for b1b46f3 - Browse repository at this point
Copy the full SHA b1b46f3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5b2bc7e - Browse repository at this point
Copy the full SHA 5b2bc7eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 625874a - Browse repository at this point
Copy the full SHA 625874aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 101a2ef - Browse repository at this point
Copy the full SHA 101a2efView commit details -
Configuration menu - View commit details
-
Copy full SHA for e53c6ad - Browse repository at this point
Copy the full SHA e53c6adView commit details -
Configuration menu - View commit details
-
Copy full SHA for d1fe1a9 - Browse repository at this point
Copy the full SHA d1fe1a9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 27f70d5 - Browse repository at this point
Copy the full SHA 27f70d5View commit details -
Configuration menu - View commit details
-
Copy full SHA for db60ea6 - Browse repository at this point
Copy the full SHA db60ea6View commit details -
PPCRec: Reworked IML builder to work with basic-blocks
Intermediate commit while I'm still fixing things but I didn't want to pile on too many changes in a single commit. New: Reworked PPC->IML converter to first create a graph of basic blocks and then turn those into IML segment(s). This was mainly done to decouple IML design from having PPC specific knowledge like branch target addresses. The previous design also didn't allow to preserve cycle counting properly in all cases since it was based on IML instruction counting. The new solution supports functions with non-continuous body. A pretty common example for this is when functions end with a trailing B instruction to some other place. Current limitations: - BL inlining not implemented - MFTB not implemented - BCCTR and BCLR are only partially implemented Undo vcpkg change
Configuration menu - View commit details
-
Copy full SHA for ce8dc55 - Browse repository at this point
Copy the full SHA ce8dc55View commit details -
Configuration menu - View commit details
-
Copy full SHA for a5f6faa - Browse repository at this point
Copy the full SHA a5f6faaView commit details -
PPCRec: Unify BCCTR and BCLR code
Instead of having fixed macros for BCCTR/BCCTRL/BCLR/BCLRL we now have only one single macro instruction that takes the jump destination as a register parameter. This also allows us to reuse an already loaded LR register (by something like MTLR) instead of loading it again from memory. As a necessary requirement for this: The register allocator now has support for read operations in suffix instructions
Configuration menu - View commit details
-
Copy full SHA for 8d972d2 - Browse repository at this point
Copy the full SHA 8d972d2View commit details -
PPCRec: Fix single segment loop not being detected
Also removed associatedPPCAddress field from IMLInstruction as it's no longer used
Configuration menu - View commit details
-
Copy full SHA for 874e376 - Browse repository at this point
Copy the full SHA 874e376View commit details -
Configuration menu - View commit details
-
Copy full SHA for 93f5615 - Browse repository at this point
Copy the full SHA 93f5615View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9dc8207 - Browse repository at this point
Copy the full SHA 9dc8207View commit details -
Configuration menu - View commit details
-
Copy full SHA for d308252 - Browse repository at this point
Copy the full SHA d308252View commit details -
Configuration menu - View commit details
-
Copy full SHA for 832b761 - Browse repository at this point
Copy the full SHA 832b761View commit details -
Configuration menu - View commit details
-
Copy full SHA for 53139cd - Browse repository at this point
Copy the full SHA 53139cdView commit details -
Configuration menu - View commit details
-
Copy full SHA for ac22a38 - Browse repository at this point
Copy the full SHA ac22a38View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 91f9727 - Browse repository at this point
Copy the full SHA 91f9727View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2535cf4 - Browse repository at this point
Copy the full SHA 2535cf4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8df0281 - Browse repository at this point
Copy the full SHA 8df0281View commit details -
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)
Configuration menu - View commit details
-
Copy full SHA for 37256ac - Browse repository at this point
Copy the full SHA 37256acView commit details -
PPCRec: Avoid complex optimizations in backend
It's better to do it in a lowering pass so that the backend code can be kept as simple as possible
Configuration menu - View commit details
-
Copy full SHA for ff09940 - Browse repository at this point
Copy the full SHA ff09940View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for c4b9fff - Browse repository at this point
Copy the full SHA c4b9fffView commit details -
Configuration menu - View commit details
-
Copy full SHA for a1c8f6f - Browse repository at this point
Copy the full SHA a1c8f6fView commit details -
Configuration menu - View commit details
-
Copy full SHA for b4f2e02 - Browse repository at this point
Copy the full SHA b4f2e02View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3ba9460 - Browse repository at this point
Copy the full SHA 3ba9460View commit details -
PPCRec: Simplify PPC and IML logic instructions
Also implement PPC NAND instruction
Configuration menu - View commit details
-
Copy full SHA for e86fa57 - Browse repository at this point
Copy the full SHA e86fa57View commit details -
Configuration menu - View commit details
-
Copy full SHA for b367689 - Browse repository at this point
Copy the full SHA b367689View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0577eff - Browse repository at this point
Copy the full SHA 0577effView commit details -
Configuration menu - View commit details
-
Copy full SHA for 59bd84b - Browse repository at this point
Copy the full SHA 59bd84bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 154aef0 - Browse repository at this point
Copy the full SHA 154aef0View commit details -
Configuration menu - View commit details
-
Copy full SHA for df74b99 - Browse repository at this point
Copy the full SHA df74b99View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7c76738 - Browse repository at this point
Copy the full SHA 7c76738View commit details -
PPCRec: Further work on support for typed registers in RA
Additionally there is no more range limit for virtual RegIDs, making the entire uint16 space available in theory
Configuration menu - View commit details
-
Copy full SHA for b1c6646 - Browse repository at this point
Copy the full SHA b1c6646View commit details -
Configuration menu - View commit details
-
Copy full SHA for b4f2f91 - Browse repository at this point
Copy the full SHA b4f2f91View commit details -
Configuration menu - View commit details
-
Copy full SHA for e5717fb - Browse repository at this point
Copy the full SHA e5717fbView commit details -
Configuration menu - View commit details
-
Copy full SHA for b685a08 - Browse repository at this point
Copy the full SHA b685a08View commit details -
Configuration menu - View commit details
-
Copy full SHA for cc730b4 - Browse repository at this point
Copy the full SHA cc730b4View commit details
Commits on Sep 1, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 450c0a5 - Browse repository at this point
Copy the full SHA 450c0a5View commit details
Commits on Oct 17, 2024
-
PPCRec: Add RA support for instructions with register constraints
Also make interval tracking more fine grained and differentiate between input and output edges of each instruction
Configuration menu - View commit details
-
Copy full SHA for dcbaa5a - Browse repository at this point
Copy the full SHA dcbaa5aView commit details
Commits on Oct 19, 2024
-
Configuration menu - View commit details
-
Copy full SHA for a0ad48c - Browse repository at this point
Copy the full SHA a0ad48cView commit details -
PPCRec: Support for arbitrary function calls in the IR
Used for MFTBU/MFTBL instruction
Configuration menu - View commit details
-
Copy full SHA for 8614150 - Browse repository at this point
Copy the full SHA 8614150View commit details -
Configuration menu - View commit details
-
Copy full SHA for 97ef952 - Browse repository at this point
Copy the full SHA 97ef952View commit details -
Configuration menu - View commit details
-
Copy full SHA for aa904b6 - Browse repository at this point
Copy the full SHA aa904b6View commit details
Commits on Oct 20, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 002a03d - Browse repository at this point
Copy the full SHA 002a03dView commit details
Commits on Oct 23, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 608757d - Browse repository at this point
Copy the full SHA 608757dView commit details -
Configuration menu - View commit details
-
Copy full SHA for f1fa494 - Browse repository at this point
Copy the full SHA f1fa494View commit details -
Configuration menu - View commit details
-
Copy full SHA for e34a273 - Browse repository at this point
Copy the full SHA e34a273View commit details
Commits on Oct 25, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 5949e62 - Browse repository at this point
Copy the full SHA 5949e62View commit details -
Configuration menu - View commit details
-
Copy full SHA for 70c99fd - Browse repository at this point
Copy the full SHA 70c99fdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 96d7c75 - Browse repository at this point
Copy the full SHA 96d7c75View commit details
Commits on Oct 26, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 636b63f - Browse repository at this point
Copy the full SHA 636b63fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 126a682 - Browse repository at this point
Copy the full SHA 126a682View commit details
Commits on Oct 27, 2024
-
Configuration menu - View commit details
-
Copy full SHA for f309d5d - Browse repository at this point
Copy the full SHA f309d5dView commit details
Commits on Oct 28, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 099d1d4 - Browse repository at this point
Copy the full SHA 099d1d4View commit details -
Configuration menu - View commit details
-
Copy full SHA for e332726 - Browse repository at this point
Copy the full SHA e332726View commit details
Commits on Oct 29, 2024
-
Configuration menu - View commit details
-
Copy full SHA for a05b655 - Browse repository at this point
Copy the full SHA a05b655View commit details
Commits on Oct 30, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 83569ae - Browse repository at this point
Copy the full SHA 83569aeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8219a5f - Browse repository at this point
Copy the full SHA 8219a5fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9187044 - Browse repository at this point
Copy the full SHA 9187044View commit details